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.420Win 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.427SbFolder[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.520Windows 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 常駐して エクスプローラーの右コンテキストメニューを直接出す事が出来ます。