SbFolder

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

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

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 を単に関連付けをするだけに留め 関連するファイルは何処に置いても良い様にしました。

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

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