SbFolder

最新版 2017 05/30
 このプログラムはマイコンピューターから存在する全てのフォルダーをメニューに表示しそれを追って 深いフォルダーでも一回で開く事が出来る物です。コマンドラインによって途中のフォルダーからも 始めることが出来ます。深いフォルダーをエクスプローラーから追うのも面倒なので此の事専用に 作ってみました。
SbFolder メニュー表示 accept SbFolder ルートからのメニュー表示中

特徴
 マイコンピューターから存在する全てのフォルダーをメニューを追うことで開く事が出来ます。 コマンドラインによって途中のフォルダーからも始めることが出来るので送るなどにショートカットを おいておけばそのフォルダーの下のフォルダーをメニューで探しながら開く事が出来ます。
SbFolder.INF の右コンテキストメニューからインストールをすればフォルダーの右コンテキスト メニューにサブフォルダーと言うメニューが加わりますのでそのフォルダーから始める事が出来る 様になります。通常 良く開くフォルダー を編集した物を持てますのでそれを直接開いたりそこから メニューを出していく事もできます。右クリックで 5 個までフォルダー/ファイルの記憶が出来るので 一度の起動で最大 6 個まで フォルダー/ファイル を開く事が出来ます。
Ver 2.120 からは ネットワークに直接入っていけるようにもなりました。フォルダーを開くだけでなく メニューに表示されたファイルも関連付けプログラムで直接開けられます。
Ver 2.221 で フォルダー下の 全ての フォルダー/ファイル名のフルパスをクリップボードに取り込む 機能を付けましたので何かの確認に使用できるかも知れません。
Ver 3.100 からは エクスプローラーの右コンテキストメニューを出す事が出来る様になりましたから そのフォルダ^を開くことなく何らかの操作も出来る様になりました。
Ver 2.520 で公式的に Wondows 7 Ver 3.030 で Wondows 8 対応として 現在は Windows 10 まで対応しています。


2000 /05/20 Ver 2.00
構想 2 年プログラム 2 日でとりあえず初公開。

------- ずーっと改良 -----------

2005/12/17 Ver 2.400
-VF は 二度読みしないようにして バージョン情報 の下に出るメニューの作成 効率を高めました。此に伴って -VF と似ている 最初のコマンドラインで *.TXT を与えると此が SbFolVF.TXT と同じ働きをするのを拡張して 此のテキストの前に ; を付ける事で最初から始めて バージョン情報 の下に出るメニューが此の指定テキストになるオプションを入れました。 コマンドラインで *.TXT を指定する事で メニューを作成するファイルを複数切り替えて使用する事に 便利なようにしました。
2005/12/24 Ver 2.410
/-NET /-(AD) 等が下から最初のドライブに上がった時に無効にならずに一度の 立ち上げの時には常に有効のままになるようにコマンドラインも柔軟性を持たせて /-NET ;C:\???.TXT /-(AD) D:\ の様に両方受け取れる仕様に /-NET /-(AD) 等もどこにおいても 有効となるようにしました。この様な改良で内部的にはドライブから始める時に確認事項が簡単になり コードも少なくなっています。又 Help を表示する効率も良くなっています。
2006/01/14 Ver 2.412
アプリケーションパスを取得する所のコードの確認を整合性の有る物にしました。 プログラムを All Window Version と Win 98 or Later に分けて Win 98 or Later では効率が良くなる ようにしました。
2006/01/24 Ver 2.420
Win 95 98 環境では アプリケーションパスは一つしか無く ユーザーが違っても SbFoldVF.TXT SbFoldPG.TXT の切り替えが出来ませんでした。此を解消する為に これらのファイルは インストールパスの SbFolder[UserName]VF.TXT SbFolder[UserName]PG.TXT として保存する事にして 切り替えが出来る様にしました。此に伴いアプリケーションデータのパスを取得する必要が無くなり All Window Version と Win 98 or Later に分ける必要も無くなりました。
2006/02/15 Ver 2.422
コマンドライン SW に フォルダーを開く時に Folder Tree ( TreeView )付きで開く /+E を加えました。
2006/02/19 Ver 2.423
始めるフォルダー 又は VF 指定の ファイル名が "" で括られていてもいなくても 対処出来る様にしました。可能性は少なかったのですが特殊な文字の並びのファイル名だと誤動作して しまう不具合を修正しました。
2006/03/16 Ver 2.424
コマンドライン解析取得コードの効率を良くしました。
2006/05/09 Ver 2.425
立ち上げられ方によっては キーフォーカスが無かったりメニュー以外の所の クリックでキャンセル出来ない事の有るのを修正しました。メニュー作成に時間がかかる時の マウスカーソルの動きをメニューの出る直前にして違和感を無くしました。
2006/06/22 Ver 2.426
必ず毎回作るメニューの数と高さ合わせの確認を省ける所はしない事にして 若干ですが此の部分を効率の良い物にしました。
2006/08/22 Ver 2.427
SbFolder[UserName]VF.TXT SbFolder[UserName]PG.TXT が先に開かれていても 読み込める様に修正しました。又 此のファイル読み込みを多少効率の良い物に変えました。
2006/10/03 Ver 2.428
メニューが選択される毎に確認されるキー押しの取得を若干ですが効率の良い 物にしました。
2006/11/06 Ver 2.430
ヘルプファイルを コンパイル済み HTML ヘルプ に変え 此に伴い SbFolder.inf も変えました。ユーザー名を取得出来ない時の扱いを確実な改善したコードに変えました。
2006/11/16 Ver 2.432
メニューの数を画面の縦方向だけでなく横方向も考慮する事にしてワイド画面 又は 90°回転画面等にも対処出来る様にしました。
2006/11/25 Ver 2.433
メニューを戻った時の確認 消して次を作成する時のタイミングを取るコードに 余裕を持たせ整理しました。
2007/02/01 Ver 2.434
開く Program / Command 付加 を指定するダイアログが他のウィンドウに隠れて 指定できなくなる事があるのを防止しました。その他 若干のコードの効率化です。
2007/02/14
同梱のヘルプファイルテキストファイル を修正版にしました。
2007/04/12 Ver 2.440
メニューをソートして表示するのに メニューを作ってからソートしていたのを フォルダー ファイル の各アイテム名を取得後 自分のメモリー中でソートしてからメニューを作る 事にしました。これによりソートが単にメモリー配列の入れ替えだけになりかなりの スピードアップに なり 又 若干のサイズダウンになりました。
2007/04/23 Ver 2.441
メニュー用の各フォルダー ファイル名 取得メモリーの大きさをその都度必要な 量を確保する事にして無駄を無くし動作必要メモリーの減少をしました。
2007/06/03 Ver 2.442
メニュー用の 各フォルダー ファイル名への 取得メモリーのポインター配列の バッファはその都度取得するのではなく 配列への数が変わらない限り保存する事にしてメニューを 作成する時の無駄を少なくしました。
2007/07/19 Ver 2.443
ドライブからのメニューで 準備中の CD-ROM や リムーバブルドライブが有ると これが準備出来るまでメニューが出なくなり かなり待つ事になるので CD-ROM の方は FD ディスクと 同じようにドライブの内容は確認しない様にしました。 ( リムーバブルドライブ は USB ドライブが 有るので 今までと同じように時間がかかっても確認する事にしています。)
2007/08/21 Ver 2.444
ドライブからのメニューで 無変換キーを押して立ち上げると CD-ROM ドライブ リムーバブルドライブの内容を確認しない様に変えました。 無変換キーを押していない時はドライブの内容を確認します。
2007/09/21 Ver 2.450
読み取るのに時間のかかるフロッピードライブ 準備中のリムーバブルドライブ ネットワーク先等を読み取り中にキャンセルの為に他の場所のクリックをした時に内部的なメッセージ が先出しされて場合によってはおかしなフォルダーのオープン 又は アプリケーションエラー 最悪の 時はコンピューターのリセット等が 希に出てしまう事が有るのを防止する為に此の辺の最後の処理確認 のコードを堅い物にしました。
2007/10/06 Ver 2.452
サブメニューを作成する為のメニュー文字列整理用のバッファの取得をなるべく 一回でプログラムがアイドル状態になった時に取得する様にしてメモリー再確保の無駄と立ち上げり時の 余分なコードを減らしました。
2007/11/01 Ver 2.453
想定上の最後のメニュー深さと フォルダーが無くメニューは全てファイルの時の メニュー最後に有る - OO 個 - の ID と有効無効の扱いが間違っていて 右ボタン動作 左ボタンの長押し 動作が仕様通りで無かったのを修正しました。
2007/11/10 Ver 2.454
確保したメモリー使用の共通化とこれらの初期化を余裕の有る時にする様にして 立ち上げ時の余分な動作 フォルダーを開く前の共通のコードを除いて効率を良くしメモリー消費量も 若干少なくしました。
2007/12/15 Ver 2.455
有る特定の環境で ショートカット( *.LNK ) が直に開けない事が有るのを修正 しました。又 インストールファイルを含めて Win Vista に 対応している事を確認しています。
2008/01/02 Ver 2.460
右クリックでのフォルダー記憶のメモリー取得サイズを必要量だけにして無駄を 無くして此の確保確認もする事にし 此に伴い記憶個数を 5 個 にして全部で 6 アイテム扱える様に しました。後 立ち上がる時の Work Bufa を 先に要る物 後に必要な物を出来るだけ共通化して此の バッファサイズを押さえました。
2008/03/02 Ver 2.462
メニューをリアルタイムで変えるのを動作が外れた時に出来るだけ他のシステムに 影響を与えない安全なメッセージに変えました。
2008/04/02 Ver 2.463
メニューを作成するメモリーバッファを指定するメモリーは一度確保したら最大 メニュー数だけ変える事にしてメモリー再確保の無駄と此処のコードの無駄を無くしました。
2008/04/09 Ver 2.464
マイコンピューター ネットワーク を開く時に順序と開く数によってはバッファが 不足してメモリー違反が出てしまうのを修正すると同時に 此処の所の重複部分を効率化しました。
2008/08/05 Ver 2.465
メニューの深さを大きく戻った時にメニューを全て表表示出来なかった為の変数が クリアーされずに残ってしまう不都合を修正すると同時に此の辺の分岐コードの効率を良くしました。
2008/08/13 Ver 2.470
メニューの深さを戻った時と自分自身でメニューの再構築を始める為のタイマーの 遅延時間を作動しているコンピューター固有の値を取得して使用する様にして此の所でのメッセージの 行き違いから来る不都合とメニューの出るタイミングが違う事のある不自然さを無くしました。 又 余分なパスを切るコードと文字列の最後を探すコードを共通化して此の部分を一回の処理で済ます 様にして効率とスピードアップをしました。
2008/08/25 Ver 2.472
必ず通過するメニューを作成する時の記憶パスの最後を探す所を余分なパスを切る コードからの関連で与える事にして此の辺の関連コードを一回りだけで済ます様にして効率化しました。
2008/10/08 Ver 2.473
一つだけ開く時や最後を開いた後はウェイトを入れずにすぐに帰る事にして自分が 余分な物に引っ張られる事を出来るだけ避ける様にしました。
2008/11/01 Ver 2.474
立ち上げのされ方によっては自分が フォアグラウンドになれずにメニューの動作が 通常と違ったりキー入力を受けていなかったりする事があったので自分が確実にフォアグラウンドになる 為のコードを付加しました。
2008/12/13 Ver 2.475
バージョン情報の下に出るメニューの内容にファイルを指定した時に此が一番最初に 指定されると場合によってはメモリーエラーで落ちる事が有るのを修正し 此処の作りを堅い物にしました。
2009/01/04 Ver 2.480
あまり無い事ですがプログラムの想定限界のフォルダー( 深さ 31 ) 深さ以上から 始められると場合によってはメモリー違反が起こって落ちる不具合を修正し ポップアップメニュー深さの 限界から来る作成メニュー表示がおかしくなる事への対処をしました。又 フォルダー以下全てを対象にした 時にフォルダーの深さによってはメモリー違反が起こって落ちる不具合も併せて修正しました。後 メニュー の選択が変わる時の余分なメッセージの行き交いを整理し不必要な ID と セレクト確認のコードを廻さない 様にしました。 フォルダー深さ関連については プログラミング チップスフォルダー深さについて に書きました。
2009/01/26 Ver 2.490
最初にドライブから始める時に初めに有効なドライブを確認して始めるコードにして 余分なドライブの確認/識別ループを省ける様になり立ち上がりが多少なりとも速くなりました。 ( ドライブの数によって違いますが此の部分だけなら 10 倍 以上のスピードアップになりました。) 又 深い位置から始めた時のメニュー深さ/認識の確認を最初からでなく途中から始める事にして余分な 確認ループの無駄を無くしました。
2009/03/23 Ver 2.491
関数の返す値の計算を若干ですが効率化してコードも整理しました。
2009/05/22 Ver 2.500
コマンドライン解析部分を若干ですが効率化しました。 Windows 98 用のメモリマネージャー用の読み込み時間短縮オプションをやめてアプリケーションのサイズ ( ディスク サイズ )を縮小しました。
2009/06/03 Ver 2.510
キーボードだけの 操作用の →↑↓→ と Enter キーでの選択をフォルダーの途中表示 でも出来るようにしました。 此に伴って 表示位置指定でマウスカーソルを動かさない /200'300 のコマンドラインを付加しました。 バージョン情報の左右クリックと Shift Control 長押し等の動作を整理して テキスト と ヘルプ も書き加えました。
2009/07/15 Ver 2.511
コマンドライン解析部分を無駄なループを抑えて若干の効率化をし此のループの安全且つ 確実化もしました。
2009/09/02 Ver 2.512
コマンドライン取得をを送られて来た場合に分けて処理する事にして効率を良くしました。 又 ユーザー名取得コードを若干改善しました。
2009/11/11 Ver 2.520
Windows 7 ( たぶん Vista でも ) では Windows Install Directry にファイルを 作成する事が出来ずに SbFolder[UserName]VF.TXT SbFolder[UserName]PG.TXT が残せなかったので此を 各ユーザーの Application Data フォルダーに SbFolderVF.txt SbFolderPG.txt で記録する様にしました。
2010/01/18 Ver 2.522
バージョン情報の下に出るメニューを SbFolderVF.txtから作成する時に書かれている ファイルを確認する方法を余分な事は初期段階で排除する効率の良い物に変えて適応されないドライブを 排除する速度は何十倍の単位で速くなりました。後この部分でファイルが Open 出来なかった時の処理が 間違っていたのを修正し メニュー作成時の確認処理を堅い物にしました。
2010/02/24 Ver 2.524
最初にドライブから始める時のコードを若干ですが効率の良い物にしました。 後 同梱のヘルプファイルを見やすい物に換えました。
2010/07/14 Ver 2.525
メニューの出るまでの時間取得やバッファ確保を若干ですが効率の良い物にしました。
2010/09/10 Ver 2.526
新たに開くウィンドウが同族のウィンドウの最大化最小化等に影響されてしまうのを防止する様にしました。
2010/10/20 Ver 2.530
隠しフォルダー や 隠しファイルはメニューの対象から外すコマンドラインオプション /-H を新設しました。
2010/12/20 Ver 2.540
コマンドラインオプションの /-NET→/-N /-VF→/VF にして大文字小文字の区別を無くしました。
エラーでもないのにエラービープが鳴る事が有るのを修正し 環境によってはメニューと自分のウィンドウ位置が ミスマッチになってしまう事を無くしました。
他のプログラムに制御を移しその結果を待つのを確実にシステムに制御が移り 結果が出るのを待機出来る コードにしました。
2011/03/03 Ver 2.542
フォルダーを開ける所とプログラムを立ち上げる所をよりシステムとの親和性が高い物にしました。 連続して フォルダーを開ける部分を同じ名前で他の種類のファイルと混同しない物にしました。
2011/05/06 Ver 2.544
フォルダー以下を連続して開けた時にリソースを使いすぎてしまう事が有るのを緩和して不具合が起こり にくい様にしました。又 自分の設定ファイルの為のエディターの立ち上げ等もシステムとの親和性が高い物に しました。
2011/06/28 Ver 2.545
フォルダー以下を連続して開ける方法を変えてリソース不足から来る不具合を起こらない様にしました。
2011/09/15 Ver 2.550
バージョン情報 の下に出る 良く使う フォルダーやファイル の SbFolderVF.txt の仕様を変え 作成の効率が良く より自由に 解りやすく編集できて セパレーターも認める様にしました。
古い SbFolderVF.txt は とりあえずタイトル表示用の行頭の * を @ に変えて コラム変えの空白行は ! に して下さい。
2011/12/02 Ver 2.552
キーが押されるのを検出するのと押されたキーを待つ所を整理して場所によっては 1 コールで済む様に 効率化しました。
同梱の SbFolderをフォルダーに関連付けをする SbFolder.inf を単に関連付けをするだけに留め 関連するファイルは何処に置いても良い様にしました。
2012/06/15 Ver 2.554
連続して色々なアイテムを開けた時に一つ一つが確実に開いた事をプロセス情報から確認する事にして 複数連続して開ける時の安全性と安定性を高めました。
2012/09/13 Ver 3.000
トップメニューに経歴ファイル(フォルダー) の SbFolder が最近開いたアイテムの 経歴メニューを加えました。 又 此を無効にするコマンドライン /-R それに加え立ち上げ時の ドライブの メディアチェックを省略する /-M を新設しました。
2012/09/28 Ver 3.002
経歴メニュー の位置が間違い易かったので ネットワークの後に変えました。
ヘルプに経歴メニューをクリックした時の説明を加え 又 此のメニュー作成の効率を良くしました。
2012/11/07 Ver 3.010
経歴メニュー のアイテムを削除出来る様にして 経歴メニューのクリックも + Shift でパスをコピー出来る様に 若干一般性を持たせました。
Inf ファイルの 右クリックからのインストールは SbFolder.inf だけは後の安全の為 %Windows%\Inf に コピーする様にしました。
2012/11/11 Ver 3.011
拡張子の排除フィルター /.dll.txt 等の処理が無限ループになってしまうバグを修正しました。
2012/12/12 Ver 3.020
経歴ファイルメニューの表示数が常に最大36アイテムにするコードに変え 経歴ファイルの記録を最後のキー待ちの 間にする事にして時間の無駄を無くしました。又 経歴ファイル バージョン情報 を作成する時の ファイル確認の 効率化をして時間短縮をしています。
2013/02/09 Ver 3.030
Windows 8 でのメニュー色 MF_DRAYED MF_DISABLE が同じ淡色表示に統一 されてしまったのでファイル表示が 全て 淡色表示 になってしまう事に対処しました。
連続して フォルダー下を全て開いている時の キャンセルは Shift キーだけでなく ESC キーも入れました。
新しく開かれるフォルダー表示が確実にフォアグランドになる様に対処しました。
経歴ファイルのメニューの遅れが無く 速やかに作成出来る様に 待ち時間の時に準備をしておく事にしました。
2013/07/30 Ver 3.034
確認の為のコードの消し忘れを削除し あまりお勧めされない古い API を新しい物に変えました。 経歴ファイルメニューの表示数を最大40アイテムに増やし 長さも 72 文字まで増やしました。
2014/01/11 Ver 3.040
メニュー作成に時間がかかった時に砂時計カーソルが残ってしまう事が有るので此を防止するコードを入れました。 キーを離すのを待つ時に メッセージを処理消去する所のコードが自分が終了出来なくなる可能性が出てしまうのを この関数と終了まわりのコードを変えて修正し キーバッファも貯まってしまう事をが無い様なタイミングにしました。
2014/04/10 Ver 3.050
CD 等の準備のかかるリムーバルディスクの認識に時間がかかって此とは関係のない 通常のドライブのメニューが なかなか出なくなってしまう事を起きにくくしました。
経歴ファイルメニューの設定とメモリーの取得 読み込みをより効率の良い所でする事にして 一部時間短縮 同一アイテム検索の効率化 不必要なファイル書き込み操作も省きました。又 此のメニューの設定を無効にしていると 終了時にメモリーリークの出てしまう不具合も合わせて排除しました。
2014/06/28 Ver 3.054
グレーになっている ( 無効になっている ) メニューを再確認する時にこの上をカーソルが通っただけでは 確認動作を始めない様にして 意図に反して 無効な物を無駄に再開しようとして 此処で滞り 反応が 止まってしまう事を無くしました。経歴ファイルメニューを作成する時に余分なドライブチェックはやめて 無駄を無くしました。
2015/02/10 Ver 3.100
全ての Windows バージョンで クリックと同時に F2 若しくは 無変換 キーを押していると エクスプローラーの 右コンテキストメニューを出す様にしました。この為 あまり使用しなかった 開くダイアログ コマンド付加ダイアログは やめました。クリックと同時に F3 キーで ファイルを開くプログラムの選択 ダイアログを 出す様にして 此も バッファの関係で出ない事の有るのを修正しました。
ファイルの排除フィルター -S システムファイルは除くを加えました。後 クリップボードにパスファイル名を代入する時に 余分なクリップボードクリアーはやめにしました。
2015/05/05 Ver 3.102
グレーになっている ( 無効になっている ) メニューを再確認する時にマウスカーソルの位置の確認方法を 確実な物にしました。API Call の効率化の為 Windows NT 4.0 は動作対象から外しました。
2015/06/05 Ver 3.110
←→↑↓ 等の カーソルキーでメニューを操作をしている時に グレーになっている ( 無効になっている ) メニューを 再確認する時にマウスカーソルの位置と矛盾が出ない様に必要な時にはマウスカーソルを予め動かしておく様にしました。
DPI スケーリング は自身でする事を宣言し メニューの文字の滲みや メニューの高さ方向の数が OS の 仮想 DPI スケーリング の 影響を受ける事の無い様にしました。
2015/10/15 Ver 3.120
ネットワーク上のフォルダーやファイルを開いた時には経歴ファイルリストには加えない オプション /-Y を付加しました。
2016/02/09 Ver 3.130
新たなプログラムを立ち上げた時にそのプロセスが取得出来た時には十分に待てる様に プロセスが取得出来ない時でも 有る程度は待つ事が出来る様にしました。
2016/06/20 Ver 3.200
COM 使用の宣言はスレッドでする事にして二重の無駄と忘れを無くしました。
立ち上げたプロセスを待った後に システムリークが出る可能性が無い方法に変えました。ネットワーク上の ファイルを立ち上げる時の扱いも システムとの親和性を上げました。
続けて メニューを出す時の扱いを自分のウィンドウはそのまま使用して再制作の無駄を無くしました。
2017/01/15 Ver 3.220
指定されたファイルを選択して開ける時に必ず選択されて表示出来るる様に 常に新しいウィンドウで 開く 様にしました。又 開いた後の 意味の無くなった待機関数を呼ぶのをやめました。
バッファ取得で整合性が無く 不足してしまう可能性の有る箇所を修正しました。
2017/03/15 Ver 3.230
位置指定のコマンドライン解析をより安全性のある方向に変えました。 過去からのしがらみのある余分なメッセージを出すコードをやめて若干のサイズダウンをしました。
2017/04/20 Ver 3.240
マイコンピュータ指定のコンテキストメニューが出ない不整合を修正しました。
2017/04/30 Ver 3.260
コマンドライン /-M の範囲をリモートドライブにも広げて ネットワークが遅い 場合でもメニューがすぐに 出る様にしました。
SbFolderVF.txt の扱いも \\ で始まる 物 ドライブが CD-ROM Removal NetWork ドライブは 時間短縮の為 書いてある内容は フォルダーに限定する事にして 遅い物に引っ張られて反応が無くなってしまう事を 無くしました。
コマンドライン /-Y の扱いを 経歴ファイル のメニューには 出さないし 加えない 様にしました。

最新版 05/30 2017 Ver 3.260 Size 31kb  SbFolder のダウンロード
−戻る−

左手でマウスをご利用の方用に左右ボタンの反転したSbFolder.EXE だけの ファイル 10 kb
( 常駐型左右入れ替えソフトでは反転しませんので通常の SbFolder.EXE と入れ替えて使用して下さい。)
 SbFolder.EXE のダウンロード ( バージョン情報 の コメント に Reverse M Botton と出ます。 )

 SubFolder 常駐しているので エクスプローラーの右コンテキストメニューを 安定して 出す事が出来ます。