2

デスクトップをダブルクリックしたときに、デスクトップ アイコンの表示/非表示を切り替える方法があるかどうかを知りたいと思いました。Stardock Fences での方法と同様です。Visual C# を使用して実行したかったのです。

4

3 に答える 3

2

質問の 2 番目の部分 (デスクトップをダブルクリックしたとき) は比較的単純です。アプリケーション定義のフック プロシージャをフック チェーンにインストールする必要があります。かなり難しそうに聞こえますが、ここにあるコード サンプルで詳しく説明されています。ここからソースをダウンロードできます(無料のアカウントが必要です)。

最初の部分であるデスクトップ アイコンの非表示/非表示については、このような類似のコード サンプルがいくつか見つかりましが、私の PC では動作しないようです。その問題の別の解決策を探すことをお勧めします。

于 2009-12-01T09:37:46.470 に答える
0

デスクトップアイコンを非表示にするためのレジストリキーがあります(こちらをご覧ください)。

を使用して変更を適用するには、その後エクスプローラーを再起動する必要があると思います

        Process[] proc = Process.GetProcessesByName("Explorer");
        foreach(Process p in proc)
            p.Kill();

        Process.Start("explorer.exe");
于 2009-12-04T10:13:45.037 に答える
-1

C# を使用してデスクトップ アイコンを表示/非表示にする方法はわかりませんが、レジストリ キーを使用してそれを行う方法に関するいくつかの記事を読みました。レジストリ キーを使用する方法の問題点は、変更を有効にするために "Explorer.exe" プロセスを再起動する必要があることです。幸いなことに、それを行うコード サンプルをオンラインで見つけました。

On Error Resume Next

' Kill Explorer.exe

strComputer = "."

Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

Set colProcessList = objWMIService.ExecQuery _
("Select * from Win32_Process Where Name = 'explorer.exe'")

For Each objProcess in colProcessList
objProcess.Terminate(1)
Next

' Launch Explorer.exe

Set objShell = CreateObject("Wscript.Shell") 

objShell.Run "explorer.exe" 

Set objShell = Nothing

Wscript.exit

そのスクリプトは、現在のユーザーをログオフせずに「Explorer.exe」プロセスをすばやく再起動します..お役に立てば幸いです!

于 2011-11-06T00:36:36.260 に答える