[テクニカル インフォメーション ]

最終更新日 2017/08/30
  プログラムを書いていて考えた事や 諸々の事を書いていきたいと思います。
    * 2017/08/30 タスクトレイにアイコンを表示するプログラムについて。
    * 2017/03/25 エクスプローラーのタイトルバー表示される文字数について。
    * 2017/02/25 CabwcPos の Hook 機能について。
    * 2017/02/05 ボタンに移動 の機能について。
    * 2016/09/25 プログラムのユニコード化について。
    * 2016/08/30 32ビット整数値の限界。
    * 2016/08/25 Windows 10 の ウィンドウ枠について。
    * 2016/04/20 SHBrowseForFolder API について。
    * 2016/04/10 ShellExecuteEx API について。
    * 2016/03/25 ファイル時間について。
    * 2015/09/25 Windows 10 での *.HLP ファイル。
    * 2015/08/20 4 行で作る スタートメニュー。
    * 2015/07/25 スタートメニュー作成用 ExecMenu について。
    * 2015/05/25 DPI スケーリング について。
    * 2015/02/25 フォルダー表示の 左上アイコンのコンテキストメニューについて。
    * 2015/01/30 ファイル フォルダーの 更新 作成 日時参照 について。
    * 2014/12/20 フォルダーの 作成 更新 参照 ( アクセス ) 日時 について。
    * 2014/08/25 説明テキストで使用している排他的トグル動作について。
    * 2014/08/11 立ち上げ時から管理者権限で立ち上げるには。
    * 2014/05/10 クラス名とタイトルの指定方法について。
    * 2014/04/10 ドライブの準備時間 について。
    * 2014/03/02 CabwcPos Ver.1.200 について。
    * 2014/01/20 Vista から 導入された UAC について。
    * 2013/11/15 アクティブなウィンドウのマウスホイールでのスクロールについて。
    * 2013/10/20 インアクティブウィンドウでのマウススクロールホイール使用について。
    * 2013/09/30 Win XP からサポートの HID スタックから直接読み取りについて。
    * 2013/08/25 パソコンのオーディオボリュームコントロールについて。
    * 2013/06/25 自分がフォアグランドにならない動作について。
    * 2013/06/01 デスクトップに新しく作成表示されるウィンドウについて。
    * 2013/05/05 ドライブを指定して USB 接続機器をディスコネクトする 機能について。
    * 2013/04/02 立ち上がる時にアクティブウィンドウを参照するプログラムについて。
    * 2013/03/02 マウスのサイドボタンに任意のプログラムを割り振る BwFwHook について。
    * 2013/02/09 SbFolder の Windows 8 でのメニュー表示色対応について。
    * 2013/01/30 Windows 8 の USBメモリー等の安全な取り外しについて。
    * 2012/11/27 Windows 95 / 98 / ME の 送る からの コマンドライン対応について。
    * 2012/10/18 の ClipName 3.300 からの インストールファイル *.INF ( セットアップ情報 ) について。
    * 2012/08/31 子ウィンドウとしてのコントロールのサブクラス化について。
    * 2012/01/17 ファイル名として認められない文字を使用した URL ファイルについて。
    * 2011/11/08 からの インストールファイル *.INF ( セットアップ情報 ) について。 ( 2012/10/03 追記 )
    * 2011/09/10 本日 アップした ExecSlct について。
    * 2011/09/05 ClipSaver 用 リスト保存ファイルにパスワードを設定出来る様にした事について。
    * 2011/05/16 配布アーカイバ形式を ZIP 形式に変更した事について。
    * 2010/12/12 他のプログラムをクリップボードをコマンドラインにして立ち上げられるプログラムについて。
    * 2010/02/20 ドライブを列挙するプログラムについて。
    * 2010 年からのWindows 2000 検証について。
    * 06/03 2009 SbFolder の キーボード操作対応について
    * 04/01 2009 プログラムのリンク オプション 変更について
    * 08/13 2008 SbFolder について
    * 07/13 2008 GetWinTx について
    * 10/20 2007 ClipName.DLL の Date Time について
    * 05/08 2007 ClipSaver の ,;, 以降を代入 の設定オプションについて
    * 04/18 2007 ファイル ( フォルダー ) を メニューにして表示するプログラムについて
    * 12/13/2005 常駐型 プログラムについて
    * 05/14/2005 応答のない ( ハングアップした ) プログラムへの対応について
    * 01/18/2005 プログラムのコマンドライン について
    * 12/26/2004 SetDetail CabFixer OnlyDetl の アップについて
   * 10/28/2003 ClipSaver.DLL Ver 1.200 の機能拡張 と サイズ に ついて
   * 05/17/2003 K_Launch Ver 2.1000 について
   * 05/07/2003 DIalUpDs Ver 1. 020 について
   * 04/15/2003 SbFolder 2.303 に関しての コンパイルオプション について
   * 06/28/2002 ターゲット Window の アクティベート色について
   * 03/06/2002 SbFolder の リアルタイムメニュー変更に関して
    * 10/01/2001 ClipName の 複数選択時の 右コンテキストメニューについて
   * 09/14 2001 SbFolder の 左利き用 Reverse M Botton バージョンについて
   * 07/23/2001 からのクリップボードに書き込む全てのプログラム バージョンアップについて
   * 04/29/2001 ExitWndw について
   * 01/19/2001 ClipSaver Version Up について
   * 12/01/2000 SetDetail CabFixer & SbFolder Version Up について
   * 11/16/2000 11/10 前後のプログラム Version Up について
   * 08/04/2000 SetDetail の改訂について
   * 06/02/2000 SbFolder 2.04
   * 02/24/2000 ClipSaver 2.14 について

  * 2017/08/30 タスクトレイにアイコンを表示するプログラムについて。
こと Windows 10 だけの事でもないのですが Windows 10 もずいぶん落ち着いてきて 見た目も変わりなく動いていますが  まだ時々 エクスプローラーが エラーで イベント ID :1002 1000 で落ちる事が起こってるようです。このエラーは 多少反応が 無くなり 自動的にエクスプローラーは 立ち上がって リカバーしてシステムが落ちる事は無いのですが 画面が書き換わり  タスクトレイに有ったアイコンが消えたり プログラムマネージャー等も 再起動したりして ウィンドウハンドルが変わったり しているようです。此の辺りは 以前のブルースクリーンで システムの再起動になっていたのかもしれません。
プログラムのうち 常駐してタスクトレイにアイコンを表示するプログラムは タスクトレイにアイコンが表示されたのを確認して 内部の設定保持で 自分は アイコンを表示している事にしている訳で 勝手にアイコンを消されてしまうと その状況で今度は タスクトレイのアイコンが消せない(消したつもりでもエラーになってしまい) アイコンを表示している事になり いつまでたってもアイコンが表示出来なくなり タスクトレイアイコンしか出さないプログラムは 自分自身の設定も出来ず 終了もままならなくなってしまいます。
又 プログラムマネージャー や タスクバー のウィンドウ ( Shell_TrayWnd )を確認しながら動いている プログラムも ハンドルが変わると これらにとんでもないメッセージを送りつけたりする可能性が生じます。 ( プログラムマネージャー や Shell_TrayWnd は殆ど とんでもない メッセージは受け付けない様ですが。)
したがって エクスプローラー が落ちてシステムは無事引き続き動いていても 常駐しているプログラムは何らかの 内部と  外部との調整修正をする必要が有りそうです。まあ プログラムも おかしくなったら再起動させれば良いのですが  おかしくなった事の確認と 終了できない物の再起動は難しい事になります。

  * 2017/03/25 エクスプローラーのタイトルバー表示される文字数について。
エクスプローラー ( フォルダー表示ウィンドウ ) のタイトルバーのアイコンの右クリックでフォルダー コンテキスト メニューを出す CabULCmu.exe は タイトルバーにファイルのパス名を表示する のオプションをチェックしている状態で 此の表示を利用して フルパスから フォルダー認識をしています。
CabULCmu.exe のフォルダーメニューを 立ち上げる所のコードを改善する為に 全てユニコードで扱う事にして コードを修正しだしたのですが 以前から気になっていた深いフォルダーの時に 失敗して表示出来ない事をこの際だから 解析しておこうとして調べてみると タイトルバーにファイルのパス名を表示させても 此までは 長いパス名でも表示 されるスペースが無くて切れて見えないだけだろうと思っていましたが そうではなくて Windows XP 7 10 共に あまり長いパスは はっきりした意識を持って文字数を 95 + 1 に切って表示している事が解りました。此は C:\ ・・・ から始まって 全角 半角関係無しに 95文字 + 最後の ゼロ区切りで 統一です。此は何処にも書いては ないのですが 最初からの既定の事実だったのかも知れません。
そんな訳で 95文字を超えるフォルダーは タイトルバーテキストからは 正確に認識出来ないのでこれ以下のフォルダー コンテキストメニューを出す事は出来ませんし プログラムのバッファーも 192 Bytes 用意するだけで事足りる様です。 まあ 文字数 95 ですから実用的には 殆ど問題は無いとは思いますが 全てのフォルダー対応では無い事は 認識して おかないといけないようです。

  * 2017/02/25 CabwcPos の Hook 機能について。
話が若干 プログラム的な事柄ですが 現れた現象からの事ですからこちらに書いておこうかと思います。
CabwcPos の主目的は 新しく開かれる フォルダーウィンドウ ( エクスプローラー ) の位置を 以前有った所とサイズに する機能です。この為 新しく開かれる ウィンドウ を確認するのに CabFixer では タイマーで確認していましたが タイマーだと タイマーインターバルをそう短くするする訳にもいかないので どうしても打てば響く様な反応を得るのが 難しいので CabwcPos では システムが 元々用意している 変化を予め捉えられる Hook を使用する事にしました。 CabwcPos.exe が CabwcPos.dll とセットになっているのは 此の Hook を掛ける為です。そして CabwcPos が使用しているのは ウィンドウが 作成 アクティベート 移動された サイズが変更 最大化 最小化 等が された時に メーッセージを出してくれる CBT Hook と呼ばれる物です。
これらは システムが 今からしようとしている時に 搬出されるので 非常に早いタイミングで来るし 又それまでは プログラムは 何もしなくていいので負荷の掛からない物です。此を使用するのは都合の良い事は多いのですが ウィンドウが作成されるメッセージは子ウィンドウまで含めた全てのウィンドウで 来てしまうのと 非常に早いタイミングで来るのでまだ形が整っておらずに 可視で無い事が殆どです。取りあえず 子ウィンドウは必要ないので フィルダーを掛けます。此は まあ ウィンドウスタイルが 子ウィンドウでない事と キャプション(タイトルバー)を持っている事で選択したのですが Windows 10 で ある種の 映像再生ソフトを フルスクリーンで起動再生すると子ウィンドウでなくてキャプションが有るウィンドウで可視にならない物を たぶん マウスムーブのメッセージの数だけ作成している事が解りました。 此だと1秒に20回以上 メッセージが送られて来てしまいます。作成されたウィンドウはある程度待って ( 今の所 200ms ぐらいですが ) 可視になるか判断して 可視にならない時には 何もしない事になりますが 1秒に20回以上 送られて来てしまうと 此を待つだけで 手一杯で 他の自分自身のメッセージは 何時処理出来るかな と言う事になって 殆ど無反応状態になってしまいます。ただ 自分のスレッドは 放棄して待っているだけですから 他には殆ど悪さはしません。
最終的には ウィンドウ作成時のフィルターを厳しくして それで漏れる様な物は ウィンドウのアクティベートの 方で拾う事で 却って今まで漏れていた物も拾える様になり 余分なメッセージ処理も無くなり 反応も早くなりました。 反応も良くなり落ち着いた動作が出来る様になったので 他の出来る オプションも加えました。
上記 動作と メッセージ解析の為に KHdebug に新機能を入れたので あまり通常の方には関係がないと思いますが プログラムティップス に有る KHdebug もそのうち改訂アップをしたいと思います。

  * 2017/02/05 ボタンに移動 の機能について。
コントロールパネルのマウスのプロパティ→ポインタ オプション→動作 ポインタを自動的に既定のボタン上に移動する の 機能は CabFixer が持っている ボタンに移動 と同様な物です。全く 同じ機能なら CabFixer に付加したりはせずに このまま使用するのが良いかと思います。違う 機能が欲しいので CabFixer に実装しています。
同じように見える機能ですが マウスのプロパティ の方は 開かれた直後だけなのに CabFixer は そのウィンドウが アクティブになった時にはいつも この 既定のボタン上に移動 します。又 既定のボタンもより 範囲を広げて 直下のボタンだけで無く子ウィンドウ全体に広げています。此の様な事で私は CabFixer の ボタンに移動 を使用して いるのですが 逆に 多少のやり過ぎの不便も感じていました。それは 下の アクティブでないウィンドウのテキスト窓 に入力しようとして 此をクリックすると ボタンに移動 機能が働いて マウスカーソルを移動してしまうのです。 テキスト を選択しようとして無意識にボタンを押すと OK ボタンだった等という予想しない事が起きてしまいます。
此の様な事が頻繁に起きる作業の場合は 設定から ボタンに移動 のチェックを外していましたが やはり手間が かかってしまいます。それで 最初の立ち上げ時は除いて マウスカーソルが アクティブになったウィンドウの 子ウィンドウ上に有った時には ボタンに移動 の機能をしない様にプログラムをする事にしました。この機能を 実装すると かなり 使用上のイライラが 減る様になり 此まで何でしなかったのかが 疑問なぐらいです。

  * 2016/09/25 プログラムのユニコード化について。
此処にあるプログラムは Windows 98 からか そのベースをWindows 98 に持つ物が多いので プログラムの内部では ANSI ( 実質的には SJIS ) で作ってきました。
Windows 2000 から ウィンドウズ内部動作では UNICODE になっています。この為 プログラムも 内部的には UNICODE で動作する方が Windows とのテキストをやり取りする時には 親和性の観点からは ウィンドウ内部の変換も無くなって効率も良いようです。
ただ 既存の プログラム内部を変えるとなると 結構ハードルも高い感じがします。又 保存データや コンフィグレーションデータを 新たにする事を考えると しにくい物もあります。
ただ 此までは ANSI ←→ UNICODE 変換でそれ程違和感は無かったのですが Windows 10 が出て ツールチップスとか等で結構 ANSI に無い文字を使用して来ている様で ANSI でコピーすると文字化けを する物も多くなって来ている様です。
こんな事を考えると内部的には UNICODE で Keep するというのもこれからは良いかもしれませんし 文字列の 扱いを考えると バッファサイズは 大きくなる可能性は有りますが常に 2バイトずつの UNICODE の方が プログラム的には 扱いが楽になるかも知れません。
この UNICODE の事は Windows 2000 が出た時に これからのプログラムは内部的には UNICODE 対応を する事を勧めますとの MS の勧告も出ていましたが 現在 遅くに失した感はありますが出来る物から 又 矛盾が出やすい物から 内部的動作を UNICODE 動作に変えていきたいと思います。
ただ 私も常用している テキストエディターでも 内部的に ANSI Keep と UNICODE Keep が有るくらいで 全く さくっと切り替えられる物でもない様です。

  * 2016/08/30 32ビット整数値の限界。
今更 此を改めて書くのも 何だとは思いましたが 結構計算方法によっては オーバーフローしたりしなかったり と実感した物ですから 何となく書き留めておく気になりました。
かなり以前の話ですが プログラムの処理系のデフォールトの整数値が 16bit から 32bit になった時には 此で殆どの事は整数計算で事が済むと思ったものでした。現在でも 表示桁等を考えれば 32bit 整数で ほぼ事が足りて十分の事の方が多いのではないかと思っています。
ただ この所の 記憶装置の記憶域とか ネットワークの速度とかの 爆発的な増加を考えたり 此らを内部で計算して 平均したり割合計算をするとなると気を付けていないと落とし穴が出るかも知れません。
表示桁だけなら 32bit 整数で 40億ですから 表示は出来ますが 整数計算をする時には浮動小数点計算と違って 値は切り捨て 切り捨てで進みますから計算の基本は ( A * B ) / C かけ算 割り算の順序になります。この ( A * B ) が 32bit 整数を超えたら オーバーフロー です。平均を出す時でも ( A + B + ・・・・ ) / サンプル数 と なり ( A + B + ・・・・ ) が 32bit 整数を超えたら オーバーフロー です。サンプル数 100個なら 40Mb 平均までと 言う事になり 4Gb とはずいぶんな大きな差になってしまいます。ファイルなら 40Mb ぐらいは当たり前の様に 有るでしょうし 気の利いたネットワーク や USB2 でも 40Mb/sec ぐらいは出るかも知れません。
そんな事を考えると USB3 や 10Gbit ネットワーク等は とうの昔に 32ビット整数値の限界を超えてしまって そういう用途には 64bit 整数を使いなさいと言う事でしょうか。ただ 0〜127までしか変化しない用途に 64bit 整数と 言うのもいかがかとも思いますし CPU にもクイック値 ( 8bit整数 ) が有るのもうなずけます。

  * 2016/08/25 Windows 10 の ウィンドウ枠について。
ネットでも既に話題になっているようですが Windows 10 の ウィンドウ枠の表示は 1ピクセル枠の表示と Win8 と同様の太い枠 表示が有る様で 1ピクセル枠の表示の物は 1ピクセル枠の外側に表示されない何ピクセルかの枠が 有る様で 此処がサイズ変更ゾーンになっていて ウィンドウを隙間無く並べたつもりでも隙間が出来てしまいます。
それでは 太い枠 表示を使えばとも思いますが あのフラットの表示は如何かなと思うし 色の自由度も違い アクティブ ウィンドウが解りにくいので 1ピクセル枠の表示を我慢して使用しているのが現状です。期待の新星 Anniversary Update で この辺の表示が変わらないかと期待していたのですが全く以前と同じでした。
Windows 10 ( Windows 8 かも ) から MS はウィンドウの使い方の方針を オーバーラップから 一画面 1ウィンドウ に 変えたのかも知れません。( AeroSnap 等もその流れの中に有る物かもしれません。) 常にウィンドウを最大化して 使用する方は此の方式で全く違和感無く使用出来るとは思いますが 私の様に ウィンドウは有る程度並べてオーバーラップ させながら 他の物を参照しながら使用するにはずいぶん不便です。Windows 10 が全てを 此1つで 使用するから この仕様で良いと考えているなら ならずいぶん デスクトップ使用を ないがしろにした仕様だと思われます。 ( せめてカスタマイズの自由度を上げるとかして欲しかった。)
とは言っても直らなかった物にあれこれ言っているより もうズーッとこの仕様なのだ と言う事で 今後 プログラムも 考えて行きたいと思います。

  * 2016/04/20 SHBrowseForFolder API について。
色々な所にコピーしたりする時に コピー先 フォルダーを選択 指定するのに 結構な頻度で フォルダー選択ダイアログを 使用する事と思います。この時 殆どは ウィンドウの API の一環である SHBrowseForFolder を使用して 此の ダイアログを出します。此は 定型で大変に便利な物ですが フォルダーの選択といいながら 内部的には以下のファイルまで 確認している様で フォルダー以下のファイルの多い時や ファイルのサイズが大きい物を含むフォルダーでは非常に遅く なってしまいます。又 最近は Defender のリアルタイムスキャンが入るので ますます遅くなって来ています。 大きな 動画ファイルをネットワーク上に保存しているフォルダー等を選択する時など 殆どロック状態で 応答無しに なって まさしく お手上げ状態になってしまいます。
こんな時には フォルダー選択ダイアログ の TreeView からその都度選ぶより 此の TreeViewは ストップ 若しくは 経由をやめて 最近の経歴からとか 他でコピーした フォルダー名 だけで指定したり フォルダーのドラッグドロップで 直に 指定した方がよほど 速く決定出来る様になるかと思います。やはり 場所と用途を考えて 何を使用するか 機能を 動かす 動かさない の オプションを考えて 切替機能を 付加した方が良さそうです。

  * 2016/04/10 ShellExecuteEx API について。
この話は どちらかと言うと Programing Tips 向きの話かも知れませんが それ程長くないし単独の ページにも なりそうも無いので 此処に書いておく事にしました。
確認と 新たな事項がないかと思って MSDN ( Microsoft Developer Network ) の ShellExecuteEx の項目を見ていると 若干気になる事が書いてあるのを発見しました。
ShellExecuteEx は他のプログラムをプログラムの中から立ち上げるのに頻繁に使用する API で 此処のプログラムの 中でも結構使用頻度の高い API です。その MADN の中で
立ち上げる プログラムが using Component Object Model (COM), COM should be initialized before ・・・ In that case, COM should be initialized と言う条文が なぜか有りました。COM を使用する プログラムを立ち上げる 時には COM should be initialized だそうです。此まで 自分で COM を使用する時には CoInitialize をするのは 当然ですが ShellExecuteEx で立ち上げる時でも するべきだと書いて有ります。又 would not require COM it is good practice to always initalize COM before using this function. 使わないかも知れない時でもしておくのも 良い習慣だと言う事でしょうか。と言う事は ShellExecuteEx を使用する 特に頻繁に使用する ランチャー系の プログラムは CoInitialize を 統一して始めにしておいた方が良い事になります。
次に SEE_MASK_NOCLOSEPROCESS での hProcess The calling application is responsible for closing the handle when it is no longer needed. と言う事で 自分で 此をしないと リソースリークが出て来るかも知れません。 と言うより出るという事でしょうか。
どちらにしても 新たに注意する事が増えて来た様で気を付けないといけない事が増えました。

  * 2016/03/25 ファイル時間について。
この話は どちらかと言うと Programing Tips 向きの話かも知れませんが 全体的なインフォーメーションにも 近いので こちらに書く事にしました。
ファイル時間 と言えば ファイルの 更新時間 作成時間 が通常は関連しますが より身近なのはいつ変えられたかの 更新時間だろうと思います。此が 新しい 古いで どちらを選択するか決める事は多いだろうと思います。更新ソフト プログラムも 殆ど此に頼って動作している事だろうと思います。
ウィンドウのシステムでは 古くは FAT FAT32 共に 秒は 2秒毎 1/1000 秒の単位は 0 で無し NTFS では 1/1000 秒単位で 記憶出来る事になっています。それでは NTFS の 1/1000 秒単位の有るファイルを FAT32 の所にコピーしたら どうなるかと言うと 1/1000 秒単位を切り上げて 2秒毎 の時間になります。したがって NTFS → FAT にコピーした 時には コピーされたファイルの方が最大 1.999 秒新しい時間が付く事になります。FAT → NTFS の時には FAT と 同じ時間となります。したがって この FAT のファイルを NTFS の元のファイルに上書きコピーすると元の ファイルは 1.999 秒新しい時間が付く可能性が有ります。此処までは ウィンドウのシステムを使用している時の話です。
ただ この頃は ファイルは直に ウィンドウのシステム下に置かれる物では無くなって ネットワーク上のストレージに 置かれたり その USB上に置かれたり ルーターの USB コネクター上のメモリーやら HDD 上に置かれたり 色々なシステム 上に置かれる事も出てきました。
そんな中で 今回話題にしたいのは あるルーター( ASUS )の USB コネクターに繋いだ USB メモリー USB HDD の ファイル時間の挙動が ウィンドウのシステム下 とずいぶん違っている事です。USB メモリー HDD 共に FAT NTFS との フォーマットに関わりなく 秒単位は 1 秒単位 1/1000 秒は切り捨ての 000 秒時間になります。此は FATからのコピーは ファイル時間は 同じ NTFS からのコピーは コピーされた物は最大 999 ms 古いと言う事になります。この事は ファイル時間 をみて更新コピーをするプログラムは何らかの対処をしないと 常に更新コピーをする事になりかねません。 今回は此の辺りの気になっている事を書くに留めますが 此処 ソフトの小物たちの プログラムの中でも何個かは 引っかかって来る物が有りそうです。此からは プログラムをするに当たってファイルの置かれる環境によっては この時間を確かめて 考慮しないと 不具合が出て来る事も有りそうです。

  * 2015/09/25 Windows 10 での *.HLP ファイル。
Windows 10 も正式リリースされて 2ヶ月程経ちますが Windows Vista 〜 8.1 まで有った KB917607 ( 以前の HLP ファイルリーダー WinHlp32.exe ) はまだ出て来ていません。HLP ファイルは 公式的には Microsoft 内ではサポート外となってしまった様です。したがって KB917607 は出てこないかも知れません。Windows 8.1 でも WinHlp32.exe がまともに動作するのは 2015/06/15 以降の KB917607 ですからあまりやる気を感じません。
かといって 古いソフトでも Windows 10 で問題なく使用出来るのに HLP が読めないのは 不自由です。結構 ウェブ上でも 話題にはなって Q & A にもなっている様です。そんな中で Windows XP の WinHlp32.exe が Windows 10 でも何の問題も 無く使用出来る事が解りました。( 灯台もと暗し ) Windows Vista〜8.1 の KB917607 での Windows フォルダーに インストールされる WinHlp32.exe では何か動作に制限が有るのか うまく動きません。今更 Windows XP の WinHlp32.exe と 言っても入手出来ないかも知れません。Windows XP のインストールディスク の i386 の中にある WINHELP.EX_ ( 此は単なる CAB 圧縮ファイルです。) を解凍すれば WinHlp32.exe が得られます。この場で 此を配布していいのかどうか解りませんが 無ければ不便でしょうから WINHLPXP.CAB ( i386 の WINHELP.EX_ を解凍し易い様に名前だけを変えた物です。) として置いておきます。解凍したら WinHlp32.exe を Windows フォルダーに置けば 自動的に *.HLP と関連付けられて HLP を読む事が出来る様になります。他のフォルダーに 置く時には WinHlp32.exe の名前を WinHlpXP.exe とかに変えないといけないようです。( WinHlp32.exe は特殊な名前の様です。) そして *.HLP との関連付けは自分でして下さい。
取りあえず Microsoft のサポート外かも知れませんが +.HLP を読める様になります。此処 ソフトの小物たち に有る物で Windows 10 でもきちんと働くのに ヘルプファイルを書き換えていない事で Windows 10 対応と言いにくい物でも 此で Windows 10 対応と 言う事にしたいと思います。

  * 2015/08/20 4 行で作る スタートメニュー。
Windows 10 で スタートメニュー は復活したのですが 全てのプログラムに展開しても 全体の様子を把握するのも 難しく アルファベット順に並んではいるのですが何が有るかを探すのも時間がかかる事も多く 又 その場所の フォルダーを開けるのも不便です。
そんな訳でスタートメニュー関連のフォルダーを開けるのとスタートメニューの中のリンクを直に開く為の 設定を SbFolder 用にして使用している物を書いておきます。

@個人メニュー
C:\Users\UserName\AppData\Roaming\Microsoft\Windows\Start Menu\Programs
@共通メニュー
C:\ProgramData\Microsoft\Windows\Start Menu\Programs
@デスクトップ
C:\Users\UserName\Desktop

( フォルダー位置は Windows 10 8 用です。UserName に自分のログイン名を入れて下さい。@デスクトップ以下はおまけです。)
と書いたテキストファイルを何処でも良いので SbStartMu.txt 等の名前で保存します。
SbFolder.exe のショートカットを作り プロパティーに
・・・・\SbFolder.exe /-R-H ・・・\SbStartMu.txt ( /-R:経歴ファイルに入れない -H:隠しファイルは対象外 )
と 入れた物を立ち上げれば簡易スタートメニューになります。デスクトップとかクイック起動等にピン留め するのが良いかと思います。こうすれば 直にプログラムを立ち上げる事も出来ますし各メニューのフォルダー も開く事が出来ますし 何個かの項目を一度に処理する事も出来ます。唯一のネックはアイコンが出ない事ですが その分サクサク動きます。

  * 2015/07/25 スタートメニュー作成用 ExecMenu について。
Windows 10 の仕様も殆ど決定して スタートメニューの様子も固定された様です。印象としては Windows 8.1 + 文字の スタートメニュー と言う所で 結局あまり使用しない下の方( 奥の方 ) に有るアイテムは確認して立ち上げるのは Windows VISTA 以前のスタートメニューの方が 何が何処にあるか ポップアップメニューの下に有る物を確認しながら 追って行くのには 適していた様な気がします。
私は 本来 スタートメニュー と言うのは究極のランチャーの1つだと思っているので メニューアイテムの位置が都合に よって変わったり隠れたりするのは かえって使い勝手が悪くなるのではないかと思います。いつもの所にいつもの物が 有って立ち上げられる 結構そういう位置関係で 覚えているのではないかと思います。
今まで 主目的は 送るメニューに入れて立ち上げプログラムを指定する ExecSlct が有りました。此は ランチモードにすれば メニュー型ランチャー としても 軽快に動きますが メニュー設定をテキストエディターで ExecSlct 用に編集するのは 結構面倒で 数が多くなると時間も相当かかってしまい 挫けます。又 ExecSlct 自体も全てのメニューアイテムをアイコンまで 確認して作成してから メニューを出すのでアイテム数が何百にもなると表示まで 時間がかかってしまいます。
そんな訳で 有るフォルダー以下の ( 想定はスタートメニュー と デスクトップ ) ショートカットを検索してフォルダー構造は そのままにショートカットを解析した物を ExecSlct の設定メニューにする ExecMenu と言う補助プログラムをアップ しました。此だと 私の環境で 500個ぐらい有る 個人用スタートメニューを 作るのに 3秒程度で出来てしまいます。 此と All User の スタートメニュー を加えれば ExecSlct に スタートメニューを代行させる事が出来ます。
ExecSlct 自体は 700個ぐらいのメニューアイテム全てを アイコンの展開も含めて終了するのを待つのは Windows 7 までだと 1秒程度ですむのですが Windows 8 10 だと延々と 30秒以上やっていて実用的では有りません。( 何でこんなに遅いのか 理解に苦しみます。) それで 文字とポップアップは最初に作成して アイコンの展開はメニューを描く時にその都度する事にして 又 一度 展開したアイコン は二度としない事にして 最初の立ち上げスピードを大幅アップしました。立ち上がりは劇的にアップ しましたが メニューが出てから Windows 8 10 だと下のサブメニューメニューアイテムが多いとアイコンを1つ1つ描いているのが 見えるぐらい遅い時が有るのは やはり 理解に苦しみます。
とにかく 出来た物を クイック起動に入れれば 此で 以前のスタートメニュー擬きは出来ましたが ExecSlct のメニュー設定用 ファイルは絶対的な物ではなく 単なるテキストファイルです。切ったり はったり 削除したり 新たに加えたり 順序を変えたり するのは自由です。新たに デスクトップアイテムを加えたりも出来ます。そんな事で 今回から ExecSlct に ExecSysItem.txt を同梱しました。此をどこかに挿入すれば 此のアイテムもメニューの中に出る様になります。
[ 2016/04/30 追記 ] Windows 8 10 だと下のサブメニューメニューアイテムが多いとアイコンを1つ1つ描いているのが 見えるぐらい遅い時が有るのは EXE ファイルからアイコンを抽出する時に Windows Defender のリアルタイム保護が それぞれの EXE ファイルに掛かる為だろうと推測されます。

  * 2015/05/25 DPI スケーリング について。
此の関連にについては 以前 ウィンドウズ 8 ( 10 ) 対応コードへの プログラムチップ でも若干述べてはいたのですが Windows 10 IP 10122 で DPI スケーリング の適用 が変わったと思われる所も有るので 新たに書いておこうと思います。
Windows 10 は此で色々な器具に使ってもらおうとしている様で 画面サイズも 解像度もまちまちでしょうから OS 自体が 積極的に DPI スケーリング を行い DPI仮想化によるスケーリングの方向も 必然だろうとも思います。此は exe ファイルか ショートカットの [プロパティ] をクリックし、[互換性] タブをクリックし、[高 DPI 設定では画面のスケーリングを無効にする] チェック ボックスをオンするか exe ファイルが DPI スケーリング は対応しているから自分ですると 宣言しなければ 必ず OS が DPI スケーリング を行うと言う事になります。
此処 ソフトの小物たちに有る フォームを表示する プログラムは 若干数を除き プログラムチップの フォームのサイズとコントロールの配置 に多少 関連事項を 書いた様に フォームのサイズを決める時に システム UI の 基本フォントのサイズを取得してそのサイズの倍率がけをして 決めています。したがって UI の 基本フォントのサイズ は 画面によって適切な大きさにされているので フォームのサイズは それにより変わり 基本的にプログラム自身で DPI スケーリング機能を持っている事になります。その為 OS に DPI スケーリングをしてもらう必要はなく してもらうとかえって ぼやけてしまったり 大きくなり過ぎてしまったりする事に なります。当面は 此処に有る ソフトは 高 DPI 設定では画面のスケーリングを無効にする で 運用される方が良いと思います。
ただ プロパティ から 此を各々セットするのも結構手間ですから 追々 プログラム的に DPI スケーリング は対応していると 宣言を入れていこうかと考えています。試験的に コードを入れた所 300 Bytes 程度余分にかかりました。今までと同じ事をする 為に 余分な事をするのもどうかと考えたりもするのですが DPI スケーリング へのソフトの対応 は Vista が出た時に MSDN の 方で 互換性の推奨事項として出て そろそろ避けられない事だとは思いますが デスクトップだけで使用する為の プログラムに各々これらの宣言を入れ込むぐらいなら 又 開発が終了して アップも期待出来ない以前から使用しているソフトも 有る訳ですから 各々で対応するよりも デスクトップ使用の時は 全面的に OS は DPI スケーリング をしない様なオプションを 付加していただいた方が合理的ではないかと思ったりもします。

  * 2015/02/25 フォルダー表示の 左上アイコンのコンテキストメニューについて。
フォルダー表示ウィンドウ ( エクスプローラー ) は そのフォルダーに何が有るかを表す ウィンドウズにとっては 一番基本的な ベースのウィンドウだろうと思います。私もとりあえずはその関係のフォルダーウィンドウを開いて そこから始める事が多いのではないかと思います。
そんな フォルダー表示ウィンドウ ( エクスプローラー ) ですが Vista から タイトルバーの一番左のアイコンの 機能が変わってしまいました。Windows XP までは 此の左上アイコンは 表示している フォルダー その物で アイコンの ドラッグ ドロップも出来るし 此のアイコンの右クリックは此のフォルダーに対するコンテキストメニューを出す様に なっていました。此が 何でそうしたのか解りませんが Vista からは単なるタイトルバーの模様扱いになってしまいました。 出来る事は 他の部分のタイトルバーと同じで メニューも単なる 移動 だの 最大化 だの 閉じる だのの システムメニュー しか出なくなってしまいました。表示しているフォルダーに対する右コンテキストメニューを表示させる為には 左の ナビゲーションウィンドウ( TreeView ウィンドウ ) での自分か 一段上に戻った所の自分で 右クリックしてコンテキスト メニューを出させるしか無くなってしまいました。確かに左の部分にナビゲーションウィンドウを表示して 常に表示 フォルダーまで展開する としておけば まあ問題は無いのですが ナビゲーションウィンドウは展開するのがずうっと たどって行くので深い時にはかなりの幅も高さもとり やっと見えるのは隠れ掛けた フォルダーが自分自身 又 ネットー ワーク等の時は延々と展開して落ち着くまでに非常に時間もかかってしまいます。
私も仕方なくその様な方法を採っていましたが 場所も取るし 遅いし と言う事で エクスプローラーでのフォルダーの コンテキストメニューをフォルダーパスを指定すれば 比較的安定して出す ( 拝借する ) 事が プログラム上で出来る様に なったのを機にフォルダー表示ウィンドウのタイトルバー上 左上アイコンの右クリックメニューで此のフォルダーに 対するコンテキストメニューを出す様なプログラムを作成しました。あくまで コンテキストメニュー 自体は エクスプローラーの中でまだ開いていない アイコンの物ですから XP までの様に 自分が開いている前提の物ではなく メニュー項目も若干おかしな時も有るのですが あまりおかしな所はプログラム的に修正して表示しています。
此のプログラム CabULCmu を使用する様になって Vista 〜 8 ( 10 ) まで左にナビゲーションウィンドウ( TreeView ウィンドウ ) を 表示していた設定を全てやめにしました。フォルダー表示ウィンドウは小さく表示出来るし 表示する速度も速くなりました。
結局は 良くなったとは言っても Windows XP が出来る事が 同じ様に出来る様になったという事だけで 此の辺りの フォルダー表示 ウィンドウ ( エクスプローラー ) の仕様は Windows XP 以前の方が優れていたのではないかと思ったりもします。
[ 03 / 05 の追記 ] Windows XP は意味が無いと思っていましたが 若干出るメニュー内容に違いがあり 削除が加わっています。したがって 何らかの形で その都度使い分けられる様にすると 開いているフォルダーから削除が出来て 便利になるかも知れません。
又 同じ 情報を得て動く BwFwButn OnScroll も 此の コンテキストメニュー実装の付加コードは 1.5 Kb ぐらいなので切替の 出来る様にして付加して行こうかなと思います。

  * 2015/01/30 ファイル フォルダーの 更新 作成 日時参照 について。
此処にあるソフトの幾つかは ファイルやフォルダーの 更新 作成日時を表示したり 内部で比べたり 利用したり している物がいくつかあります。2014年 年末までは 此までの FAT の型式と合わせる為と 前から使用していた為に 内部的には DOSDATE DOSTIME の形で処理をしていましたが さすがに FAT はそろそろ古い と言う事で 新たに SYSTEMTIME 型式に変えました。此の方が内部型式は 単なる WORD の並びになり計算や表示はループ処理が出来て楽に なります。又 NTFS では 1000ms 単位まで記録する事が出来るので 此も考慮に入れる事が出来る様になります。 最近の LHAComp と 本日の ClipName の Date Time は此を反映して 1000ms 単位までにしています。通常は 1000ms 単位は 目にしないと思いますが ファイルの古い新しいの判断は 1ms 単位まで有りますから 何かの参考になるかも 知れません。ただ 先に述べた様に 此は NTFS の話で FAT FAT32 共に以前の DOS 型式記録ですから 2秒単位で それ以下は無しです。残念ながら 多くのと言うか殆どの デジカメ等の カードメモリーを使用する物は カードを FAT でフォーマットしますから 此の 2秒単位の呪縛から逃れる事は出来ません。

  * 2014/12/20 フォルダーの 作成 更新 参照 ( アクセス ) 日時 について。
ファイルの 作成 更新 参照 ( アクセス ) 日時 と言うのは通常のプロパティーの事で割と解りやすいものですが フォルダーの作成日時は直感的だしプロパティーでも出るので解りやすいのですが フォルダーの更新 参照 ( アクセス ) 日時 は プロパティーにもでないので何となく解りにくい感じです。
通常は フォルダーのプロパティーを開くと 作成日時しか出ないのですが 内部的には 更新 参照 ( アクセス ) 日時も変わっています。此は NTFS の場合で FAT の場合は 作成日時しか正確でない様です。
フォルダーの更新日時はそのフォルダーの中身が変わると 例えば フォルダー や ファイルが作られる 削除 されると 変わる様です。ファイルの上書き保存や 子フォルダー以下のフォルダーファイルの新設 削除も更新時間には ならない様です。参照 ( アクセス ) 日時 はそのフォルダーを開いただけでは変わらず あまりはっきりしませんが 殆ど更新日時と連動している様です。フォルダーのプロパティーにも 作成日時 しか出ませんし フォルダーを コピーすると 全ては作成時間に統一されてしまいます。ただ フォルダー を移動した時には全ての時間は以前の 時間を持ち越して移動される様です。実質的にはあまり意味の無い話になりましたが参考までに書いてみました。

  * 2014/08/25 説明テキストで使用している排他的トグル動作について。
此処にあるソフトの中の説明テキストやヘルプの中で 排他的動作 や 排他的トグル動作 と書いてある部分が何個か見られるかと 思います。特に 排他的トグル動作 と言う言葉は はっきりした定義が有る訳では無く いい文言が無いので 勝手に使用している のですが これらの事を いつかは説明しておかなければならないとは思っていました。
プログラムを立ち上げる時に コマンドライン SW で動作を規定する事は良くあります。コマンドライン SW を入れるのは ショートカットのプロパティーで入れる事になるのですが此を入れたショートカットを再度編集して 此の SW を除くのは 結構面倒な事です。そんな事で プログラムを立ち上げる時に同時に Shift キーを押していれば 此の SW と同じ機能が 出る様な仕様にしているプログラムが何個か有ると思います。それでは コマンドライン SW が入っている ショートカットを 立ち上げる時に Shift キーを押しているとどうなるか この時 コマンドライン SW をキャンセル出来れば同じショートカットを 編集せずに 2通りに使用出来ます。此の様に コマンドライン SW で指定するか Shift キー で指定するか どちらか一方の 時には 指定機能 どちらも指定していない時 又は どちらも指定している時も 通常機能で立ち上がる方が便利に使用出来ます。
此の様な事をプログラミングで行う時に 排他的論理和 ( XOR ) を使用すると簡単に実現出来るので 排他的動作 や 排他的トグル動作 ( ON OFF 動作 ) と言う 文言を使用して説明しています。特に コマンドライン SW が多数有り 立ち上げ時の 同時押し キーも何個か有る時には ビット毎の排他的OR で処理するとコード効率がかなり良くなり殆ど1回でその後の動作が 規定出来る様になるので 問題の出ない限り使用していこうかと思います。

  * 2014/08/11 立ち上げ時から管理者権限で立ち上げるには。
此処にあるソフトの中で最初から立ち上げて他のプログラムに何かをする物がいくつかあります。
その中で CabwcPos は 操作対象が フォルダーウィンドウ限定なので特に問題にはならないのですが CabFixer OnScroll BwFwButn は操作対象がどういう物か特定出来ず ( 色々な物を相手にする ) ので 2014/01/20 のテクニカル インフォメーション に書いた様に自分が通常の権限で立ち上がっている時に 相手が管理者権限で動いている時には動作が限定されて期待された動作が出来なくなります。
管理者権限で動いている物は意外と多く ( インストーラー等も此です。) 相手にするプログラムによって 挙動がそれぞれ違うのは あまり嬉しくないという事で最初から立ちあげって他のプログラムに何かをする物については 管理者権限で 立ち上げる方がいいのではないかと思う様になりました。( Windows Vista 以降の話です。)
ただ スタートアップで 管理者権限 で立ち上げるのは テクニカル インフォメーション で書いた様に難しく ( ほぼ失敗します。 ) 此を確認も無くするのは タスクスケジューラーから立ち上げるのが確実で トリガーは ログイン 若しくは立ち上げで 全般タグの中で 最上位の特権で実行する にセットして実行するのが良いのではないかと思います。
こうしておけば相手によって挙動が変わる事も無くなります。但し 管理者権限 で立ち上げた物から立ち上げられたプログラムは 暗黙の内に 管理者権限 で立ち上がりますから CabFixer のデスクトップメニューや BwFwButn のコマンドから立ち上げられた物は 管理者権限 で立ち上がってきますから 逆に他での挙動が ( 通常の権限でのプログラムとの兼ね合いが ) 変わってくるかも知れません。

  * 2014/05/10 クラス名とタイトルの指定方法について。
此処にある何個かのプログラムは デスクトップにあるウィンドウを コマンドラインで指定する時に クラス名と タイトル名で指定する方法を採っています。此はコマンドライン指定では妥当な方法だと思いますが クラス名は ともかく タイトル名の指定方法で柔軟性が有る物は 文字列の部分一致方法を採っている ClsClose の指定方法しか 有りません。ウィンドウを指定する時にクラス名はそのクラスで変わりませんから指定する時に柔軟性は必要ないと 考えられますが ( かえって柔軟性が有る方が指定以外も入ってしまって指定しにくいかも知れません。) タイトルの 方は比較的長いものも多く 又 同じウィンドウでも変わる事も多いと想われます。( 例えば エディター等では ( 更新 ) と出たり プログラムによっては修正した時に * が付くとかです。)
そんな事で タイトルで指定する柔軟性を関係するプログラムで上げていこうかと想います。今まではまさしくタイトル 文字列でしたが 具体的には 含まれる文字列 ( 部分一致 ) で良い事にして 大文字 小文字を区別しない方が使い易いかも 知れません。又 時に よっては 排除文字列を指定出来た方が良い事も有るでしょうし 今まではタイトル文字を指定しない 時には タイトルは 何でも OK でしたが タイトルが無い物を 指定出来た方が良い時も有るでしょう。
柔軟性を上げるとウィンドウの取り違いが多くなる事の懸念も有るかも知れませんが そんな時には 以前の様に長くて 全てを指定したタイトルにすれば良い事ですし 部分一致で試用してみると 今までの様に All or Nothing 的な 指定方法 より タイトルに何らかを指定出来るので より確実な指定が出来る様になっていると感じます。

  * 2014/04/10 ドライブの準備時間 について。
事 コンピュータ物で ドライブの付いている 特に CD や DVD 等の リムーバルディスクの付いている物の宿命でしょうか 此のディスクを確認に行った時に此が準備が終わらずに応答を返さないと此処で固まってしまって結構待たされた 経験は 何方もお持ちだと思います。此は コンピュータ だけでなく テレビ録画の HD 付き BR / DVD レコーダー 単なる CD / DVD プレーヤー等にも当てはまる事で 私などは待たされるのが嫌で CD や DVD を入れるタイミングや 順序を 考えたりしています。
一番典型的に解るのは 新しく DVD や CD を入れてすぐにマイコンピュータを開いてみて下さい。ドライブの準備が 出来て此が応答を返すまで マイコンピュータの中はグレーのままで 同じプロセスで開くエクスプローラー( フォルダー 表示ウィンドウ ) は他の事が出来なくなってしまいます。特に CD DVD BR 等の Multi ドライブで 規格も何でも 読めます能力の ドライブは ああでも無い こうでもないと 私の環境では 準備に 40秒以上かかるようです。
この様な 事を待たない為にと SbFolder には /-M と言うコマンドラインオプションを付けています。此は SbFolder が ドライブメニューから始まる時には リムーバルディスクの内容はチェックしないと言うオプションで 此により 準備中のドライブ 又は 応答の遅いリムーバブルディスク が有ってもすぐに HDD のメニューだけは正しく出して始める 事が出来る様になります。( もちろん 確認しなかった ドライブのメニューはグレーになってはいますがマウスカーソルが 置かれて指定されれば確認に行きます。) /-M が無い時には 先程の マイコンピュータ状態で 作業中ドライブが有れば かなりの間 作業中 で固まった様に反応を待つ事も出てしまいます。
此の /-M オプションは 此で良かったのですが 経歴ファイルの反応を良くする為に メニューが出ている間に予め 経歴ファイルを調べておく先出しルーティンが 経歴項目に此の準備期間中のドライブが有ると 結局此をズーッと待つ事に なり メインのメニューが新たにすぐにポップアップしない ( いつかはするのですが ) 事になってしまうのに気が 付きました。
まあ 予め リムーバルディスク を入れて置けば良い話ですが 常にそういう順序と言うのは 出来ない話だろうと思いますし 最初に言った様に コンピュータ物でドライブの付いている製品についてはあきらめるしか無いのでしょうか。 認識時間 1秒とかの DVD ドライブが有ると助かるかなとも思いますが 電源オプションで ハード ディスクの電源を切る に 入っている時の HDD からの リカバリーも結構時間がかかりますから無理な話かも知れません。CD DVD 等の リムーバル ディスクドライブも ディスクが入って認識済みになっていても ファームウェアーはより勝手にパワーダウンさせて お休みさせていて 立ち上げるのに時間のかかる事も有るようですから。

  * 2014/03/02 CabwcPos Ver.1.200 について。
02/10 に Windows 7 8 の フォルダー表示のウィンドウ ( エクスプローラー ) の 最後に 閉じた位置とサイズを 記憶して 次に開く時にそれを再現する CabwcPos を新たにアップしまして 此が Windows 7 8 で軽快に作動し結構 有効な物でしたが その後 必要な事を整理すると 新しく フォルダー表示のウィンドウが開かれる時の動作 又 此が閉じられる時の位置とサイズを記憶すればそれで動作は完結するとの結論に達しました。( まあ はっきり 言って 当たり前の事です。) ところが 閉じられる時の位置とサイズは システムは 閉じる前に此のウィンドウを デスクトップの見えない所に移動しているので 此の 位置を記憶する訳にはいきません。したがって どうしても 見えて 現存しているうちに位置とサイズを記憶しておかなければならないので Ver 1.000 では予め定期的に プラス 機会を見てデスクトップの状態を探っていたのですが メッセージを予め取得する方法を見ていると 各ウィンドウの サイズが変更された時もメッセージを取得出来る方法が有りました。此を使用すると 開かれた時 閉じられた時 サイズが変えられた時 が全て取得出来る様になり 予め定期的にと 機会を見てデスクトップの状態を探る必要も 無くなり メッセージを待つだけの動作で事が済む様になりました。したがって常駐している時に 必要の無い時には メッセージを待つだけで何もしなくてよい事になり システムへの負荷も大幅に軽減出来る様になりました。 又 余分な 機会を伺う コードも無くなったので サイズももう一段小さくなりました。

   * 2014/01/20 Vista から 導入された UAC について。
Windows Vista から UAC ( User Account Control ) と言う セキュリティ向上の為の仕組みが導入されました。 此は 此で良い事ですが この機能によって此処にある 他のプログラムに何かをする ( ウィンドウの位置を移動するとか テキストをリクエストするとか ) 何個かのプログラムの内で相手が 管理者レベルで動いている時には リジェクト されてしまい本来の機能を完結出来なくなる物が出てきてしまいました。此は此で そういうウィンドウズの仕様だとあきらめれば 良いのかもしれませんが 此を回避する方法も有り 他の管理者レベルで動いているプログラムに何かをする時に 此の UAC 機能に よって リジェクト された時には 自分も立ち上がる時に 管理者として実行 されれば 通常どうり作動する事になります。
又 管理者レベルで動いている プログラム ( ランチャー等 )から立ち上げられたプログラムは 管理者レベルを引き継いで実行 される様です。したがって 適宜 右クリックメニューの 管理者として実行 とか ショートカットの プロパティー の 互換性タブ の 管理者として此のプログラムを実行 チェックボックス 等を使用するのも良いかも知れません。但し UAC の設定にもよりますが 確認のダイアログが出る事になるのは避けられません。したがって 最初に 立ち上げる物で スタートアップで常駐させる物を 管理者として実行 させるのは多少工夫が要るかも知れません。

   * 2013/11/15 アクティブなウィンドウのマウスホイールでのスクロールについて。
ウィンドウがアクティブな時にはマウスホイールでスクロール出来る。此はごく当たり前の常識です。ただ スクロールさせる物が 1つだったり スクロールさせたい物がフォーカスを持っていれば問題は無いのですが ウィンドウによっては 2 ペイン だったり 3 ペインだったりして アクティブな時はマウスホイールを廻しても フォーカスを持っているコントロールがスクロールする様に出来ています。
ソフトによっては 左のペインの TreeView で選択した物が 右ペインの リスト や ListView に反映される物が 結構有るかと思います。( Regedit や イベントビューア やら システムツールは 殆どこの形を取っていると思います。) この時 左ペインで選択した内容が右ペインに出るのですが リストされた項目がたくさん有ってスクロールしないと下の方が 見え無い事も良くあります。此の下の方を見る為に スクロールホイールを廻しても 選択した後にフォーカスを持っているのは 左ペインですから スクロールするのは左ペインです。
インアクティブな時には OnScroll 機能でマウスカーソルの有る方がスクロールしたのに アクティブな時にはかえって 不便を感じる様になってしまいました。まあ そんな時のために Tab キーでのフォーカスの切り替えが有るのでしょうが 単に下の方を見るだけの スクロールの為に Tab キーを押すのも冗長かなとも思います。
そんな考えから アクティブな時もマウスカーソル直下のウィンドウにはスクロール信号を送るオプションを 付けました。此なら アクティブ インアクティブ にかかわらずマウスカーソル位置の物を スクロールさせる事が出来ます。 ただ システムが出すスクロール信号を止める訳では無いので アクティブな時は マウスカーソルが直上に無くても フォーカス の有るウィンドウはスクロールしてしまいます。
又 プログラム的にはアクティブな時にマウスカーソルが 直上に有る フォーカスを持っているウィンドウには システムがスクロール信号を送るので 此の スクロール信号を送らないのが筋で 最初はその様にコードも書いたのですが 此を無視して何時でもマウスカーソルが直上に有るウィンドウにスクロール信号を送る様にすると マウスカーソルが 直上に有る フォーカスウィンドウ は 2倍速スクロールになるので それも捨てがたく ( どんなウィンドウでも 2倍速になる 訳でも無くてこの辺は そのソフトの作りによるのですが ) 最初に有ったフォーカス確認コードは 敢えて無くしています。
マウスの操作だけで ながら的に一覧する時にはなかなか楽になったかな と思います。( 所謂 何処でも 何でも スクロール と言う所でしょうか。)

   * 2013/10/20 インアクティブウィンドウでのマウススクロールホイール使用について。
マウスのスクロールホイールは大変便利な物で ソフトも殆ど此に対応しています。( 横スクロールについては まだまだだと思いますが。) ウィンドウを並べたり一部重ねたりしながら一方を参照しながら作業していると 此の下にあるウィンドウをスクロールしたいと言う必要は結構ある事だと思います。そんな時通常だと ホイールによるスクロールはアクティブウィンドウにしか効きませんから 一度下の物をアクティブにして スクロールして 又 作業中のウィンドウをアクティブにすると言う繰り返しになります。
ある種のマウスドライバーが オプションで マウスカーソル下のウィンドウをインアクティブでもスクロールする と言う機能が 特定マウスに限ったドライバーで有ったと記憶します。そんな機能を汎用に実現出来るソフトも 有るのですが 今回 BwFwButm で使用した マウスの状態を直に取得出来る XP から実装された機能で マウス メッセージをフックしなくても スクロールホイール機能が使用出来る事が解ったので 此をプログラムして OnScroll を作成しました。マウスメッセージをフックして下流に流さない操作は していない ( 出来ない ) ので アクティブ ウィンドウも同時にスクロールする事も有るのですが ( 此の辺りは 個々のソフトの作りと構造によるかと思いますが テキストエディター や NotePad 等を 2つ並べて 内容を比べる時等には アクティブな物と インアクティブな物が 同時に スクロールするので かえって便利な時も有ります。) メッセージフックより扱いがずいぶん楽になるし反応も良いので こちらも良いのではないかと思います。 どちらにしてもマウスカーソルだけそこに持って行ってホイールを廻せば OK なので アクティブな時は フォーカスを 変えなければならないのが インアクティブな時はマウスオーバーだけで出来るので オーディオミキサー等の ボリュームコントロール等を変えるのにはかえって便利になる様な気がします。
此の辺のプログラムに興味の有る方は プログラムティップス もご覧になって下さい。

  * 2013/09/30 Win XP からサポートの HID スタックから直接読み取りについて。
前出の 2013/03/02 BwFwHook は 戻る 進む ボタンメッセージを 他のプログラムが使用した後の一番最後で取得してしたので先に使用したプログラムが有るとボタンメッセージは 流れて来なくて反応は出来ません。此は此で 戻る 進む をサポートしたブラウザー上 等には良いとは思ったのですが 出来る物 出来ない物が 自分のコントロール上に無いのは不便な事もあり他の方法も考えていました。
そんな時に Windouws XP から サポートされだした ヒューマン インターフェイス デバイス (HID) スタックから 直接読み取られて メッセージを送ってくれる WM_INPUT を使用する アイディア に行き着きました。( Windows 自体は 新しいキーボードや 高解像度マウスを プログラムが直に扱える様に この API を設定したようです。)
此を使用すると マウスの 戻る 進む ボタンメッセージ を直に取り扱う事が出来 又 一番 上流 でキャッチ 出来るので 必ず反応をするプログラムも作成可能になります。又 メッセージのフックも無くなるので プログラムの 扱いも簡単になります。但し サポートする Window は XP からになってしまいますが 現実的には もう特に問題も 無いかと思います。
此で処理するとフォアグラウンドのウィンドウがどんな物で有ろうと指定コマンドを出す事が出来るので プログラム的にはずいぶんすっきりするのですが 直接読み取りは 単に読み取りだけで このメッセージを下流に流す 流さないの抑制作用は全く有りません。したがって 他のプログラムが反応する様な 要らない時まで反応してしまう 事が有るので 逆に 抑制フィルターを指定出来る様にしました。
反応の早さやキビキビ感を考えると新しい方法の BwFwButn が 良いのですが Windows 2000 の事を考えて当分 BwFwHook も残しておこうかと思います。

  * 2013/08/25 パソコンのオーディオボリュームコントロールについて。
 パソコンのオーディオボリュームコントロール と言えばミキサーパネルからWave や SW シンセサイザー CD Line 等 各々の入力レベルを調整して 最終的には スピーカーのメイン音量を決める。と言うのが通常の方法ですが 音楽の MP3 WMA OGG ACC だの 映像の MOV MPG MP4 WMV M2TS だの色々な種類の物を再生し出すと殆どは Wave 経由で 音量は その都度変わるし 又 プレーヤーが変われば音量が その都度変わる。又 プレーヤーによっては ボリューム コントロールも色々な仕方が有るようです。
この頃の プレーヤー は音量は自分の内部的な ボリュームコントロールで行いグローバルなミキサーは変えなく なってきている物が多いようです。又 Windows Vista からは グローバルなミキサーも変わり同じ Wave でも プログラム毎に現れる様になり XP までの様に 1つの Wave ボリュームコントロールでは無くなった様です。 この為 以前の Wave ボリュームコントロール は仮想化されて此をコントロールしても音量は変わらなくなってきて います。此ならある プレーヤー の時は常に同じ音量で問題は無いのですが 新しい物でもプレーヤーによってはまだ グローバルなメインボリュームと自分のボリュームコントロールと連動と言うのも有るようです。
結局 オーディオボリュームコントロールを調節しなければならない訳で Wave が1つで共通して行っている XP 以前は 調節機会がより多くなります。ミキサーパネルを出すのも結構な手間ですしスライダーをいつもの場所に置くのも 気を遣う と言う様な訳で オーディオボリュームをコマンドライン指定でセット出来るプログラムを作る事に しました。但し Win Vista からはミキサーコントロールは仮想化されて仕組みが変わっていますから今までの mmsystem API でのプログラムではコントロールは動かせるのですが効果は有りません。( 音量は変わりません。) まあ 使用機会の多い Win XP 以前 用と言う事で良いのではないかと思います。

  * 2013/06/25 自分がフォアグランドにならない動作について。
 通常 ウィンドウは何らかの子ウィンドウのコントロールを持ち何らかの機能をする様に作られているのですが 何かをさせたり機能を切り替えたりする時にはマウスの左右クリックとかキー入力とかが必要な訳で此の様な時には 普通のやり方だと自分がアクティブ ( フォアグランド ) になる事になります。自分が アクティブ になると言う 事は アクティブ から インアクティブ になるウィンドウが有る訳で この インアクティブ になると 様子が変わって しまう ウィンドウが多々あります。
例えば フォルダー表示のエクスプローラーの名前の変更の窓はインアクティブになった瞬間に閉じてしまいますし インアクティブ になって 再度 アクティブになった時には フォーカスの有るコントロールが失われるとか フォーカス は以前の物を取り戻しても キャレットの位置が違うとか選択範囲は失われるとか 以前の状態がそのまま 再現される保証も無いし そのまま再現されるのは希でしょう。
此の様なウィンドウにテキストを貼り付けるには 予め クリップボードにテキストをコピーしておいて貼り付ける事も 考えられますが 予めが出来ていなかったり 貼り付けるテキストが複数だったとかした場合にはお手上げになって しまいます。
此までの ClipSaver でも 出来るだけ 以前を再現するように フォーカスコントロール キャレット位置 選択範囲を 相手が アクティブ な時に記憶して 再度相手を アクティブにした時に 同じ様な状態になるようにはしている のですが 全く同じように再現するには限界も有り さすがに入力ウィンドウを閉じられた物には無力になって しまいます。
此の様な時のために 今まで コントロールキー + リストの上でのマウスカーソルのムーヴという方法で自分が アクティブでなくても貼り付ける事は出来ましたが それ程使い勝手もスムースでなく まあいざとなれば出来る 程度の物でした。
本日の ClipSaver から この自分がアクティブにならなくてもフォームのコントロールを操作出来るように オプションで 内部タイマーをセットして機能させる様にしました。もちろん 自分がアクティブになれない訳ですから メニューは出せませんし場所も変えられませんが 相手をズーッとアクティブにしておいて 必要な所に必要な数だけ はリストを出す事が出来る様になりました。

   2013/06/01 デスクトップに新しく作成表示されるウィンドウについて。
 此処 ソフトの小物たちに有る プロフラムで デスクトップに新たに表示されるウィンドウを認識して此を相手に 何かをするソフトがいくつかあります。例えば SetDetail CabFixer BwFwHook TaskSwck 等です。これらのソフトは 何らかの手段でデスクトップに表示されるウィンドウを認識しようとする訳ですが 新しく デスクトップに現れる ウィンドウは通常は最初フォアグラウンドウィンドウとして出てきます。( フォアグラウンドウィンドウで無い物も 現実にはあり得るのですが ) ただ フォアグラウンドウィンドウ として出てきても 見えるとは限りません。 不可視のウィンドウでもフォアグラウンドウィンドウとして現存出来ますし 又 フォアグラウンドウィンドウ として 有るのに まだウィンドウの内部は 出来ていないと言う事もあり フォアグラウンドウィンドウとして認識されて 全てが終わって 表示されるまでに 10秒以上かかる事も有るようです。
ご存じの様に Windows は Multi Task OS ですから それそれの Task はタイムスライスで実行されています。 Windows ME ( 98 ) まではこのタイムスライスもいい加減で 各タスクが切りの良いところまで使用できた様なの ですが Windows NT 2000 になってから タイムスライス はきっちり切り替わる様になり 新たに作成表示される ウィンドウも途中のまま 他のプログラムに順番が回って来てしまします。
こんな時に この作成中のウィンドウを認識すると まだ 子ウィンドウも出来ていない 可視にもなっていない と言う事もあり得ます。此の様なウィンドウを相手にするのに 出来るだけ早い時期に相手にする候補に相当するか どうかを判断して余分な待ちをしない様に見切りたい所です。この見切りを間違えると今度は 本来は不可視の ウィンドウを 延々と意味無く待って 自分の他の機能が滞ったり 早く見切りすぎて肝心な相手を見落としたり します。
結局 色々なタイムディレイが有るのですが 即判断するのは難しく 確かなのは最初に取得したウィンドウスタイルは 後の事を考えて CreateWindow をされているので その ウィンドウスタイルで大まかに判断して 有る程度したら 子ウィンドウの存在を確認して 候補なら可視になるのを有る程度の時間待つと言う動作にするのが間違いもなく かえって無駄な待ちも無くなる事になる様です。
全ての存在するウィンドウを調べると 可視でもなく 子ウィンドウを持ち システムメニューまで持つ物も有る 様ですがそういう物は表に( フォアグラウンドに )現れて来ないと言う前提で考えれば 全般的には 間違いも 少なくなり 余分な待ちは無くなって この部分での引っかかりも無くなったのではないかと思います。
此の様な話は テクニカル インフォメーション よりも プログラミングチップスの方が良かったかも知れません。

   * 2013/05/05 ドライブを指定して USB 接続機器をディスコネクトする 機能について。
 ブロードバンドルーターのファームウェアーをアップしたらそれまでは USB メモリータイプの機器しか認識 出来なかったのに HD タイプのストレージも認識出来る様になりました。此はちょうど良かったと言う事で 余った SSD を入れた物をルーターに繋いでLAN全体のデータストレージとして使い出しました。スピードも 以前より速くなり都合は良くなったのですが 容量が大きくなった分だけ ルーター廻しの遅さも気になりだし 結局 大きなデータを書き込む時には USB 接続で取り扱う事になりました。
ただ この HD に見える USB ストレージ を Windows 7 8 で取り扱うと タスクトレイの通知領域に USB 記憶装置を 挿入しても ハードウェアの安全な取り外し のアイコンが出なくて 書き込みが終わっていればいきなり外しても 良いと言われても何となく不安がつきまといます。USB メモリー等のリムーバルメディアとして認識される物は 以前から有る EjctClse でも取り外しの準備が出来るのですが HD ディスクとして認識されるドライブでは安全な取り外し をするためにやはり何らかのプログラムが有った方が良いだろうと言う事で ドライブレターを指定して USB 接続の 場合はディスコネクト出来る USBremove をアップしました。
ディスコネクトする前に読み書きしていないか確認して バッファもフラッシュしてから作業に入るのでかなり 安全です。又 プログラム的には リムーバル HD( Fix ) FD CD-ROM に見える物にも対応しています。

   * 2013/04/02 立ち上がる時にアクティブウィンドウを参照するプログラムについて。
 通常のと言うか普通の独立したプログラムは自分自身が立ち上がって何らかの動作をして終わるかそのまま 居続ける訳ですが 此とは別に 相手有っての動作をするプログラムのうち 自分が呼ばれた時に デスクトップにある アクティブウィンドウを見て動作をするタイプのプログラムも有ります。
此処の ソフトの小物たちで言えば ClipName や ClsFoldr CabFixer TaskSwch 等でそれぞれ色々な方法で 立ち上がった時や 動作をする前に アクティブウィンドウを取得する様にしています。
CabFixer や TaskSwch 等は 常駐している物ですから タスクトレイでの マウスムーブ やタイマー等で現在の 状態を取得しています。ClipName や ClsFoldr は フォルダーの右コンテキストメニューから呼ばれる事が 前提で この時には アクティブウィンドウは 表示フォルダーになります。
それでは 此の様なプログラムをランチャーの様なソフトから立ち上げるにはどうしたら良いのでしょうか。 スタートメニューからは出来ません。スタートメニューはメニューを立ち上げた時にはタスクバーが アクティブウィンドウになってしまいます。ランチャーもプログラムの一種ですから何か動作をさせるには 特別な工夫をしない限り 自分がアクティブにならなくてはいけません。自分がアクティブになって 他の プログラムを立ち上げる直前に自分が動作を起こす前のウィンドウをアクティブにしておけば この様な 用途に対応できますが 自分が動作を起こす前のウィンドウを常に把握するのは自身は常駐型になり 何らかの 情報を常に取得していなければならず ランチャープログラムには若干の負荷かなと思います。

   * 2013/03/02 マウスのサイドボタンに任意のプログラムを割り振る BwFwHook について。
 私自身は普段から サイドに 2個 ボタンの付加された ( デフォールトでは 戻る 進む ボタン ) マウスを使用して います。別に ブラウザの 戻る 進む に利用する訳ではなく 此のボタンにそれぞれ タスクスイッチャー機能の プログラムと他のテキストコピー用のプログラムを割り振って使用しています。特に タスクスイッチャー機能を サイドボタンから起動出来るのはデスクトップが ウィンドウで重なり合ってぐちゃぐちゃになっている時には非常に 有用で これ無しではいらいらして作業効率が落ちてしまう程です。
此の機能は もう 15 年ぐらい前でしょうか Logcool の サイドボタン ( 1つしか無かった ) マウスに マウス ドライバーを入れるとタスクスイッチ機能が使用出来る様になったのが最初だと記憶しています。
その後 マイクロソフトとロジクールは サイドボタンが普通に2個ついたマウスを発売していましたが日本のメーカー は なぜか なかなかサイドボタン付きのが無い時代が長く 結局 マイクロソフトとロジクールを選択するしか無い事が 多かった様な気がします。
マイクロソフトはインテリポイント 5.2 ぐらいで サイドボタンにユーザーが決めた任意のタスク ( プログラム ) を 立ち上げる機能を付けたので長い間 マイクロソフトマウスを使用していました。ロジクールの方はいつのまにか サイドボタンの機能割り当てから プログラム立ち上げ機能が無くなってしまったようです。
ただ 此処 2年ぐらい前から マイクロソフトはマウス事業から殆ど撤退の様相を見せています。確かにマウス ドライバー インテリポイントはそれなりに アップして Windows 8 対応にもなっているし サイドボタンへの 機能のアサインもそのまま残ってはいるのですが 何となくインテリキーボードと統合されそうな感じだし インテリポイントもどんどん肥大化して インストールするのに 30〜40Mb と言うのはベラボーな気もしますし ( サイズは ロジクールも同様 ) 何しろ肝心なマウスが無くなってきました。残った コンフォートマウス 6000 を使用しても 全く コンフォートでなく作業が中断されそうな感じです。古い サンワのマウスが サイドボタン 割り振り機能が有ったので ここの所使用していたのですが 古くなったので買い換えようにも 新しい物は 割り振り 機能が無くなって来ている様です。
そんな状況でしたが この頃の Buffalo と エレコム のマウスは サイドボタン を きっちり付けてきている物が 多くなって 使いやすそうな雰囲気です。Buffalo も エレコム も ドライバー と言うか ユーティリティー を用意して サイドボタンに何かをアサイン出来ると宣伝していますが 肝心な ユーザーが決めるプログラムの項目が無くて 割り振り出来るサイドボタンで notepad を立ち上げてもね とも思ったり マジに 立ち上げたい プログラム名を notepad,exe と変えて Windous フォルダーに入れておこうかなと思ったりもしていました。
そんな マウス選びのもやもやを解消するには もう自分で作るしかない。と思い立ったので プログラムを 始めました最初は何からメッセージを取得すれば良いか色々迷いましたが 試行錯誤の末 確かに 戻る 進む メッセージをプログラム上で取得する事が出来る様になりました。但し ブラウザや 戻る 進む をサポートしている プログラムがフォアグラウンドにある時には 此のメッセージは これらが使用して下流に流れてきません。 又 気をつけて見ていると 戻る 進む は押した時のマウスカーソルの下にあるウィンドウをアクティブ ( フォアグラウンド ) にしてから メッセージを送る事が解りました。したがって マウスカーソルを ブラウザ上ではなく此を避けた所で押せばブラウザがアクティブで有ってもサイドボタンを押した時にブラウザを インアクティブにしてくれるので すぐにメッセージを取得して 使用出来ると言う事で 無理をしないでこの状態のまま 使用する事にして ブラウザのアクティブな時には 本来の 戻る 進む その他の時には 指定した 立ち上げ機能 と都合良く使い分ける事にしようと方針が決まりました。
決まった 後は プログラムをするだけですから それ程規模の大きな プログラムでは無いので コーディング自体は 大した手間では無かったのですが 安定して ON OFF 出来る様にするのに 又 結構 試行錯誤が必要でした。
こういうプログラムは ウィンドウズの違いが大きく出そうだなと思いながら 使用してみると わずかな 調整で 非常に安定して動作する事が解りました。又 色々なメーカーのマウスを( もちろん 2 サイドボタンマウス ) 取っ替え引っ替え使用してみると 全く再立ち上げも無しで連続して同じように使用出来る事も解りました。
ウィンドウズの違いも XP Vista 7 8 と ( 残念ながら 2000 では確認出来ませんが ) 何のトラブルもなくそのまま 通りました。( こんなにすんなり全てのウィンドウズで OK 確認出来るのも珍しい事です。) 使用感も全く同様でウィンドウズの違いを感じさせません。
上記の様な結果だったので 現在 私の持っている全てのコンピューターから マウスドライバー ユーティリティー の類は全て アンインストールしてしまいました。それでも 此の BwFwHook を入れておく事で メーカーが違う マウスで ボタンが 戻る 進む さえサポートしていれば繋ぐだけでいつも 同じ様に使用出来る事になりました。
これからは マウス選びは 見ただけで 良さげな 2 サイドボタンマウスを選択するだけだと思うと 大変にすっきりします。
此の改良版 BwFwButn の事もその後 前の方で書いています。

   * 2013/02/09 SbFolder の Windows 8 でのメニュー表示色対応について。
 Windows 8 になってから プログラムチップスに書いた様に メニューの淡色範囲が変わった様で この為 SbFolder でファイルを現す部分のメニューが通常の黒ではなくて 薄い色の淡色表示になってしまいました。此でも特に動作には問題は無いのですが 淡色表示だと常識としても 何となく選択出来ない様な印象なので 通常の黒文字にしたい所です。
プログラム的には 此までは SbFolder は ポップアップメニュー以外は全て メニューとしては淡色では無いけれども 無効と言う扱いにして 選択されたのも 終了するのも 全て プログラム的に コントロールしていましたが Windows 8 で 淡色表示を避ける為に有効なメニューに変えた事で 此のメニューを選択されると全体が終了されて しまう事になるので内部的な プログラムは結構変わりました。とは言っても 新しい 物は 見た目も 動作も殆ど 変わりません。
個人的には 選択も 終了もプログラムでコントロール出来る以前の方が都合は良かったのですが変わってしまった 物には対応して行かなければいけないのでしょうが なぜ今更 此の様な動作仕様に変えたのかの必然性が解りません。

   * 2012/01/30 Windows 8 の USBメモリー等の安全な取り外しについて。
 Windows 7 8 共に 意識的に設定しない限り USBメモリー等の安全な取り外しのアイコンはタスクトレイに表示は されないのですが プログラム的に 此のドライブを取り外しをすると Windows 7 では タスクトレイにアイコンが 無いにもかかわらず  "安全に取り外せます。" のメッセージが出たのですが Windows 8 になってから出現しなく なってしまいました。
又 1つの機器で 複数の ドライブをアサインする メモリーリーダーも 各々のカードは 取り外せているのに どのバージョンのウィンドウでも タスクトレイからのメッセージは出ません。
この様な事情で 一応 切断確認を確かめる為には何らかのメッセージを出した方が良いのではないかと言う事で EjctClse にオプションで プログラム的に切り離せた時には メッセージを付ける事にしました。
まあ 何もしないで引き抜くより 今までも EjctClse で取り出せば OK だったのですが メッセージが出た方が より 安心かもしれません。
又 此までは メディアが 読み出し 書き込み をしている時にも 此を オーバーライドして 取り出し動作を始めたのですが そのような時には 動作をしないで 警告メッセージ を出すだけにして より安全性を高めました。

   * 2012/11/27 Windows 95 / 98 / ME の 送る からの コマンドライン対応について。
 本日アップした LHAComp は 2001/10/11 のテクニカルインフォメーション にも関連した Windows 95 / 98 / ME からの送るからのコマンドライン で長いファイル名や 途中にスペースが 有る場合等に起こる 8.3 形式の場合に 此を展開してから代入する事の対応の必要性は少ないと考えられるので 8.3 形式 から ロングパス名への変換コードを無くしました。
此は そろそろ 95 / 98 / ME への対応は必要ないだろうと考えられるのと 送る から LHAComp を使用する 機会も そう多くはないと思われるので NT 系のウィンドウの方を主体にする事にしました。
したがって Windows 95 / 98 / ME で LHAComp を どうしても 送る から使用すると言う方は 古いバージョン ( 2012/07/25 Ver 2.214 ) の物を残しておいて下さい。( 本日のバージョンでも 95 / 98 / ME で 送るから使用出来ない訳ではなく 8.3 形式のファイル名であった時にこの名前で 圧縮 解凍 してしまうと言う話です。)
Windows NT 系 2000 / XP / Vista / 7 / 8 の方は ただ 本体サイズが小さくなっただけで何の問題もなく 送る から 通常の名前で使用出来る事に変わりは有りません。
[ 12 / 02 ] FileNOer も同じ様に 8.3 形式 から ロングパス名への変換コードを無くしましたがこちらは 8.3形式 でもファイル自体は認識出来て そこから自身の名前を変えてしまうので 実質的には何の問題も無いと思われます。

   * 2012/10/18 の ClipName 3.300 からの インストールファイル *.INF ( セットアップ情報 ) について。
 本日の ClipName Ver 3.300 に同梱している レジストリー関連付け操作の為の セットアップ情報ファイル ClipName.inf から 若干 此の inf ファイルの動きを変えて ClipName.inf だけはやはり windows\inf フォルダーに コピーする事にしました。
此は 今までの inf ファイルを動かさない方法だと 此の inf ファイルを削除されるとレジストリー関連付けの アンインストールが出来なくなってしまう為 より削除されにくい windows\inf フォルダーにコピーしておく 事にしました。此で インストールしたフォルダーごと削除されても レジストリー関連付け はプログラムの追加と削除 から確実にアンインストール出来ます。又 コピーされた inf ファイルはこの時点でwindows\inf フォルダーから 削除されます。
以前の2011/11/08 からの インストールファイル *.INF で既に関連付けをインストールされている方は今まで通り ClipName.exe ClipName.dll ClipName.chm を上書きすれば OK です。( ClipName.inf は以前の物を残しておいて 下さい。)
もし 疑問が残る様だったり 後の事を考えるなら 全てのファイルを上書きして右クリックメニューのインストール からもう一度関連付けを再設定していただいても良いと思います。( ClipName.inf ファイルの指定位置が windows\inf に変わるだけです。以前のファイルでアンインストールする必要は有りません。)

   * 2012/08/31 子ウィンドウとしてのコントロールのサブクラス化について。
 08/29 にアップした EmpFolder ですが検索結果を表示する 子ウィンドウのリスト は此まで手間をかけるのも 何だから と言う事でそのままの規定のメッセージで使用していました。
まあ 此は此で普通に使用できるのですが 結構検索結果も多く ( 200 個とか ) なると選択するのに一個一個 では時間がかかりマウスで押しっぱなしでずーっと選択する方が便利で有る事は間違い有りません。
この機能を実装するには 通常のリストボックスメッセージレベルではダメで途中でメッセージを横取りして それで実現すると言う事になります。所謂 プログラム的には サブクラス化すると言う事です。 一度 コードを追加すればマウスの動きや キー入力等必要に応じて 実装するだけですからずいぶん使い勝手が 良くなります。
本来は プログラムチップス レベルの話なのかも知れませんが まあ しましたという話で それ程のチップでも ない様な気もするのでこちらの テクニカルインフォメーションに書き留めました。
目次戻る

   * 2012/01/17 ファイル名として認められない文字を使用した URL ファイルについて。
 通常はファイルやフォルダーの名前を入力して決定した時には ファイル名には次の文字は使えません: \ / : * ? " < > | とか出てこれらの文字のファイルや フォルダーは作成する事が出来ない事になっていますが IE のお気に入りをみて下さい。おかしな文字の 名前を持った お気に入りファイル ( URL ) は有りませんか。
ある URL をお気に入りに追加する時に入って来る 名前のデフォールトはタイトルに書いてある文言ですごく 長かったりファイルに使用出来ない文字を含んでいたりします。それをそのまま追加するとファイル名は そのまま入ってしまいます。それはそれで後で IE で開く時には問題は無いのですが プログラムで此の URL ファイルの中を調べようとするとファイルに使用出来ない文字を含んでいるので指定した名前のファイルは 無いと言う事でオープン出来ないのです。ウィンドウズの IE 等は此を開く事が出来るので rundll32.exe shdocvw.dll,OpenURL は何らかの操作をしている物と思われます。ただ ファイル検索等で 使用するファイルの列挙ではファイルに使用出来ない文字を含んでいるファイルもそのまま列挙します。 又 此の様なファイル名のファイルは殆ど ショートファイル名も合わせて列挙してきます。 此のショートファイル名だとファイルのオープンも出来て内容を読み出す事が出来ます。
多少 冗長な所はありますが 01/12 の InvadURL 本日の URLnewop は此の様な操作のバックアップを持たせ ました。読めないであきらめるよりは良いとは思いますが 基本的には ファイル名としてそれらを防止するのが 筋ではないか等と考えてしまいます。
目次戻る

   * 2011/11/08 からの インストールファイル *.INF ( セットアップ情報 ) について。
 此処に有る何個かのプログラムはレジストリー関連の関連付け操作の為に セットアップ情報ファイル *.INF を 同梱してあります。此の *.INF の右クリックで出るコンテキストメニューで インストール を選べば 関連ファイルの コピー スタートメニューの作成 アンインストール情報を含んだ レジストリー関連の書き込み とワンセットになった 操作が 此の *.INF だけで出来る訳で非常に便利な物だと思います。此の中身は単なるテキストで通常のエディターで 作成 編集出来るし内容もそれ程難解な物でも有りません。
但し一度エディターで編集してしまうと インストール先が決まってしまい 此のインストール先を選択出来ないのが 不自由と言えば不自由です。もちろん個々にエディターで編集してもらえば何処にでもインストール出来るのですが そんな事が出来る方は 最初から *.INF ファイル等は必要無いでしょう。そんな訳で 此までは インストール先は どんな環境の方にも有る Windows フォルダーに決め打ちして関連ファイルをコピーし レジストリー関連の情報も プログラムが Windows フォルダーにある前提で書き込んでいましたが やはりドライブが複数有ったりするとそちらに とか C:\Windows では ??? とかだったりする事が有るのでは無いでしょうか。( 私自身 プログラムはどこかに 集中的に纏めたいと思います。)
 そんな訳で 本日の ClipName 以降の *.INF ( セットアップ情報 )同梱のプログラムについては 関連ファイルの コピーは やめにしました。その代わり関連ファイルは個々に都合の良い所に自分で決めて置いてください。そこの *.INF ( セットアップ情報 ) ファイルの右クリックで出るコンテキストメニューで インストール を選んで いただければ レジストリー関連の書き込みが終わる様にしました。もちろん レジストリー関連の書き込みを 消去する為に此までと同様に プログラムの追加と削除 に アンインストール情報も出ます。 但し レジストリー関連は消去しますが 関連ファイルは削除しません。( 削除する様にも出来るのですがしない方が 良い事が多い様です。) したがってこれらのファイルは自分で削除と言う事になります。
何となく手抜きが多くなった様な気もしますが この方がインストールする方の自由度が増えるし *.INF ファイルも 失われないので便利な事も多くなったのでは無いかと思います。注意事項としては 以前インストールしている方は 一度 アンインストール して 関連ファイルを良い所において再インストールするのと 此のインストールした フォルダーとそこに有った *.INF ファイルはそのままにしておいて下さい。無くなるとアンインストールが 出来なくなります。
 此までと同様に Windows フォルダーの関連ファイルに上書きしてもそのまま使用できます。プログラム事態は 単なる バージョンアップですから。
2012/10/03 追記
* 2012/10/03 Win Vista 7 でのインストールファイル ( *.INF セットアップ情報 )でのセットアップについて。
インストールファイル ( *.INF セットアップ情報 ) での Windows Vista 7 に 関連付けをする時にひょっとすると 右クリック → インストールでは "アクセス許可が無い"とはじかれてインストール出来ない事がある様です。 フォルダーやレジストリーのアクセス権の設定が厳しく設定されていてだめな様です。
そんな時には INF ファイル 右クリックメニュー → プログラムから開く → Windows セットアップ API と進んで 選択してみて下さい。蹴られずにインストール出来る事と思います。

目次戻る