喫茶XRAYトップページ
[
スレッド全体
]
[3952]
Re4:エクスプローラのような(続) Vista,D2010以降限定
返信
削除
2010/11/24 (水) 09:28:06
ぽむぽむ
▼ 宮さん
> //フォルダペインを変更した後レジストリを更新する
> function EnumWinProcUpdate(aHandle: HWND; param: Pointer): BOOL; stdcall;
> var
> wName :array [0..79] of Char;
> begin
> Result := True;
> GetClassName(aHandle, wName, 80);
> if (StrLIComp(wName, 'ExploreWClass', 80) = 0) or
> (StrLIComp(wName, 'CabinetWClass', 80) = 0) then begin
> SendMessage(aHandle, WM_COMMAND, 28931, 0);
> end;
> end;
横レスで恐縮ですが、28931($7103) は、 Vista 以降、41504($A220) に
変わっていたはずです・・・が、環境がなくてテストできません。
Windows 7 Home で、41504を使ってリフレッシュするプログラムがあり、
動作確認していますが、ソースがなくて、28931で動作しない確認が
とれません。
参考資料
http://
hpcgi1.
nifty.
com/
MADIA/
DelphiBB
S/
wwwlng.
cgi?
print+
200711/
07110034
.
txt
http://
hpcgi1.
nifty.
com/
MADIA/
DelphiBB
S/
wwwlng.
cgi?
print+
200809/
08090055
.
txt
[3954]
Re5:エクスプローラのような(続) Vista,D2010以降限定
返信
削除
2010/11/24 (水) 14:21:03
Mr.XRAY
▼ ぽむぽむさん,どうもです.
> 横レスで恐縮ですが、28931($7103) は、 Vista 以降、41504($A220) に
> 変わっていたはずです・・・が、環境がなくてテストできません。
Windows 7 + Delphi 2010でテストしてみました.
宮さんのコードそのままで,この値だけ変えてみました.
変更されませんでした.
下図の設定をする時に,コマンドの発行をフックして調べれば何か
わかるかも知れませんが,やっていません.そのうちに.
(サンプルプログラム集の[947]の時はフックして調べました)
あるいは,ナビゲーションペインの場合は,また違うのかも知れません.
[3956]
Re6:エクスプローラのような(続) Vista,D2010以降限定
返信
削除
2010/11/24 (水) 18:44:27
宮 〔
HomePage
〕
▼ Mr.XRAYさん
> あるいは,ナビゲーションペインの場合は,また違うのかも知れません.
すみませんね。
vistaは持っていないので分かりませんが確か
マイ ドキュメント、マイ ピクチャ、マイ ミュージックの
「マイ」が取っ払われたはずなのに
7ではまたマイ ドキュメント、マイ ピクチャ、マイ ミュージック
の「マイ」が復活した。ただし、「コンピューター 」はとれたまま。
ただし、正式ファイルパスは「Documents」「Pictures」「Music」です???
昔は日本語でも英語でもどちらでもよかったのに、今回からだめみたいですよ。
7のあの訳の分からないエクスプローラ、(7からラーと付けるとか)
今もエクスプローラーをテストで、
ドキュメントの場所をデフォルトから他のドライブに移動、
「マイ ドキュメント」日本語を「Documents」英語に変えたら
ソフトで「ありません」と認識しない。
その逆をやったらまた無視される。
昔は日本語でも英語でも自動変換してくれたのに
Eドライブの実フォルダを正式に移動して名前をかえたら、
ライブラリのドキュメントは自動的に変えてくれない。
前記の原因が分かるまでちんぷんかんぷんでした。
ユーザーはとまどうでしょうね。
そんなこんなで
OSを調べてxpの時だけ働くようにしようかとも思いましたが、
アドレスもころころ変わるし、コンパイルが通らないし
XPも減るだろうし、7もXPほど長命ではないし、めんどくさいので取っ払いました。
7ではもう必要性がないので。でも何かで使用しなければならないかも。
これからエクスプローラー周りのプログラミングは要注意。
ちと真剣にどんな仕掛けになっているか
調べないと、ドジ踏みそう。
では。
[3957]
Vistaと7は微妙に違います
返信
削除
2010/11/24 (水) 20:01:03
Mr.XRAY
▼ 宮さん,ハッキリ言わせていただきます.
>これからエクスプローラー周りのプログラミングは要注意。
その通りだと思います.
> vistaは持っていないので分かりませんが確か
そうなんです.微妙に違うんです.
シェルの名前空間のインターフェイスも微妙に違うんです.
宮さんような実装ではなく,単純にエクスプローラのような機能を
アプリに組み込むには,Delphi付属のShell Componentですね.
あと,JAM Shellというのがあります.
http://
www.
jam-
software
.
com/
shellbro
wser_del
phi/
昔これ使っていました(有料)
いまだにバージョンアップの案内が来ています.
[3958]
Re:Vistaと7は微妙に違います
返信
削除
2010/11/24 (水) 20:21:08
Mr.XRAY
> そうなんです.微妙に違うんです.
> シェルの名前空間のインターフェイスも微妙に違うんです.
マイクロソフトもVistaは失敗作と言っているぐらいですから.
何とも.
[3959]
Re6:エクスプローラのような(続) Vista,D2010以降限定
返信
削除
2010/11/25 (木) 10:15:59
ぽむぽむ
▼ Mr.XRAYさん
> あるいは,ナビゲーションペインの場合は,また違うのかも知れません.
レイアウトの変更のレジストリは、ここのようです。
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\
Explorer\Modules\GlobalSettings\Sizer
ですが、ここを変更しても、SendMessage&WM_COMMANDでは
反応してくれないようです。
いずれかのウインドウで設定を変更すると、次回以降開いた分は、
設定が反映されますが現在開いているウインドウには影響ないようです。
拡張子の表示有無のような、表示内容の変更とは違うようですね。
[3960]
Re7:エクスプローラのような(続) Vista,D2010以降限定
返信
削除
2010/11/25 (木) 10:42:52
Mr.XRAY
▼ ぽむぽむさん.どうもです.
> 設定が反映されますが現在開いているウインドウには影響ないようです。
> 拡張子の表示有無のような、表示内容の変更とは違うようですね。
なるほど.そういうことですか.
レジストリの情報ありがとございます.
例によって,サンプルの見直しはいつになるかわかりませんが,
利用させていただきます.
[
▼次のスレッド
]
INCM/CMT
Cyclamen v3.82