喫茶XRAYトップページ

[スレッド全体
]

[3940] エクスプローラのような(続) Vista,D2010以降限定返信 削除
2010/11/21 (日) 23:54:38 Mr.XRAY
Windows XPでは,どうしても「ナビゲーション・ペイン」というのを
非表示にできないようですが,Vista以降ではAPIが追加されて可能に
なったようです.

エクスプローラ関係のシェルインターフェイスを実装するんですが,
中々情報がありません.
探してみたら,以下のサイトに貴重な記事がありました.
http://eternalwindows.jp/index.html

結構詳しい説明があります.
エクスプローラのフォルダツリー,フォルダビュー(ファイルリスト)
の表示が実現できました.
残念ながら,Vista以降,Delphi 2010以上でないと利用できません.

http://mrxray.on.coocan.jp/Delphi/plSamples/947_ExplorerBrowsert.htm

エクスプローラのもつ機能とほとんど同じ,でなければ,Delphiに
付属しているシェルコンポーネントを使うことになるかと思います.


[3942] Re:エクスプローラのような(続) Vista,D2010以降限定返信 削除
2010/11/22 (月) 17:42:34 宮 〔HomePage
▼ Mr.XRAYさん
> Windows XPでは,どうしても「ナビゲーション・ペイン」というのを
> 非表示にできないようですが,Vista以降ではAPIが追加されて可能に
> なったようです.


あのぉ〜はずしていたらご免下さい。
「ナビゲーション・ペイン」というのが「ファイルとフォルダのタスク」のことなのか
分かりませんが、もしそれならXPでは
コントロールパネル→パフォーマンスとメンテナンス→システム
→詳細設定タブ→パフォーマンスの設定→
「フォルダでよく使用するタスクを使用する」→
→チェックをはずす→適用
で非表示になるのでは・・・・・?


> http://mrxray.on.coocan.jp/Delphi/plSamples/947_ExplorerBrowsert.htm
>
> エクスプローラのもつ機能とほとんど同じ,でなければ,Delphiに
> 付属しているシェルコンポーネントを使うことになるかと思います.


今後大いに参考にさせていただきます。
ありがとうございます。

[3943] Re2:エクスプローラのような(続) Vista,D2010以降限定返信 削除
2010/11/22 (月) 18:13:27 Mr.XRAY
▼ 宮さん

> コントロールパネル→パフォーマンスとメンテナンス→システム
> →詳細設定タブ→パフォーマンスの設定→
> 「フォルダでよく使用するタスクを使用する」→
> →チェックをはずす→適用


おおっ,こんな設定があったんですね.
これでWindows 2000よりも前のと同じになります.
すると,やはりAPIにあるのかな?
MSDNを結構さがしたんですけど.


[3944] Re3:エクスプローラのような(続) Vista,D2010以降限定返信 削除
2010/11/22 (月) 20:14:39 宮 〔HomePage
▼ Mr.XRAYさん

> すると,やはりAPIにあるのかな?
> MSDNを結構さがしたんですけど.


よく分かりませんが、マスターに
エクスプローラー周りをがっちりやってもらうため、
今からリクエストしておこ〜っと(他力本願(^_^;))

下記は以前小生のブラウザに付けていた機能で
ユーザーが自由に邪魔なペインを消せるようにしていたのですが
Win7では、@EnumWinProcUpdateが未定義となりコンパイルできないため
いまは取り外してあります。
(どうしてなのかの判断能力無し)
7になれば無用なので、しかしまだXPも多そうだし。迷っているところです。


//フォルダペインを変更した後レジストリを更新する
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;

//ファイルとフォルダのタスクを消す
procedure TformMDI.NotDispTaskPainClick(Sender: TObject);
const
    News='\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced';
var
    Reg:TRegistry;
begin
    if MessageDlg('サムネイル画面の「フォルダのタスク」窓を非表示にしますか?'
                +#13#10+#13#13+'これは、エクスプローラでも表示しません。XP以外はヘルプ参照',
                mtConfirmation, [mbYes, mbNo], 0)=mrNo  then exit;

    Reg:=TRegistry.Create;
    with Reg do
    begin
        try
            RootKey:=HKEY_CURRENT_USER;
            if OpenKey(News , False) then begin
                WriteInteger('WebView' , 0);
                reg.CloseKey;
            end;
            //更新
            EnumChildWindows(0, @EnumWinProcUpdate, 0);
        finally
            Free;
        end;
    end;
end;
//ファイルとフォルダのタスクを表示する
procedure TformMDI.DispTaskPainClick(Sender: TObject);
const
    News='\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced';
var
    Reg:TRegistry;
begin
    if MessageDlg('サムネイル画面で「フォルダのタスク」窓を表示しますか?'
                +#13#10+#13#13+'これは、エクスプローラでも表示します。XP以外はヘルプ参照',
                mtConfirmation, [mbYes, mbNo], 0)=mrNo  then exit;

    Reg:=TRegistry.Create;
    with Reg do
    begin
        try
            RootKey:=HKEY_CURRENT_USER;
            if OpenKey(News , False) then begin
                WriteInteger('WebView' , 1);
                reg.CloseKey;
            end;
            //更新
            EnumChildWindows(0, @EnumWinProcUpdate, 0);
        finally
            Free;
        end;
    end;
end;



[3945] Re4:エクスプローラのような(続) Vista,D2010以降限定返信 削除
2010/11/22 (月) 21:19:55 Mr.XRAY
▼ 宮さん,どうも.

なるほどレジストリの操作ですね.
'ExploreWClass'と'CabinetWClass'の制御ですね.

これで,サンプルの
[945_エクスプローラのテスト]の書き換え,更新ができそうです.
例によっていつになるかわかりませんが.(^^;

http://mrxray.on.coocan.jp/Delphi/plSamples/945_ExplorerTest.htm


[3948] Re5:エクスプローラのような(続) Vista,D2010以降限定返信 削除
2010/11/22 (月) 23:00:27 宮 〔HomePage
▼ Mr.XRAYさん
> これで,サンプルの
> [945_エクスプローラのテスト]の書き換え,更新ができそうです.
> 例によっていつになるかわかりませんが.(^^;
>

よりよいものを作っていただければ、それだけ周りの人々が幸せになるのです。
気長に待ってま〜す。



[▼次のスレッド]
INCM/CMT
Cyclamen v3.82