2017-01-11 5 views
3

私はWindowsフォームアプリケーションをプログラミングしており、プログラムでデスクトップに戻る必要があります。プログラム的にデスクトップを表示

私はこのコードを試してみましたが、それが動作していません。

using System; 
using System.Windows.Forms; 

private void ToggleDesktop() { 

SendKeys.Send("^({ESC}D)"); //<-- Semantic error, Should simulate: WIN+D 

} 

はそれを行う可能性はありますか?

+0

http://stackoverflow.com/questions/10009623/c-keeping-window-visible-through-show -desktop-wind – Hackerman

+0

https://blogs.msdn.microsoft.com/robgruen/2004/02/24/programmatically-showing-the-desktop-toggledesktop/ – Blorgbeard

+0

私は両方を試みたが動作していない – FreaX

答えて

5

Shell32.dllウィンドウアセンブリを使用してこれを行うことができます。

だけC:\Windows\System32\Shell32.dllへの参照を追加し、参照プロパティに移動し、使用しようとしているクラスがInteropでShellClass、であるから。今

FalseEmbed Interop Types近く(、それは同じくらい簡単です置きます可能性も

Shell32.ShellClass objShel = new Shell32.ShellClass(); 
objShel.ToggleDesktop(); 
+0

ポストをありがとう。それは私をたくさん助けました! ;) – FreaX

+0

これを行うには.NETの方法が必要です... –

1

(Windowsの8.1でテスト):

"マイクロソフトシェルコントロールとオートメーション"
へのCOM参照を追加します。(C:\ WINDOWS \ SYSTEM32 \ shell32.dllの)次に

using Shell32; 

Shell shellObject = new Shell(); 
shellObject.ToggleDesktop(); // WinXp: ((Shell32.IShellDispatch4)shellObject).ToggleDesktop(); 
関連する問題