2009-09-22 5 views
1

WindowsFormsExtensions.SetTaskbarProgressなどのWindows7.DesktopIntegration.WindowsFormsExtensions関数をいくつか開いたフォームで使用する必要があります。これらのフォームは私のアプリケーションで開かれていません。開かれたすべてのフォームを取得する、C#?

各ウィンドウのフォームオブジェクトへのリンクを取得するにはどうすればよいですか?または、これらのタスクバー機能を使用する別の方法がありますか?

答えて

1

 WindowsFormsExtensions.SetAppId(this, "totalcmd"); 
     Process[] processes = Process.GetProcessesByName("TOTALCMD"); 
     foreach (Process p in processes) 
     { 
      IntPtr pFoundWindow = p.MainWindowHandle; 
      //MessageBox.Show(p.ProcessName); 

      Windows7.DesktopIntegration.Windows7Taskbar.SetWindowAppId(pFoundWindow, "totalcmd"); 
      MessageBox.Show(
       Windows7.DesktopIntegration.Windows7Taskbar.GetWindowAppId(pFoundWindow) 
      ); 
     } 
0

フォームオブジェクトは、独自のアプリケーションで作成されたフォームに対してのみ存在します。

他のアプリケーションによって作成されたWindowsは、あなたが知る限り、ハンドルしか持っていません。

既存のハンドルの周りにフォームオブジェクトを構築することは可能かもしれませんが、これはおそらく最良の方法ではないと思います。

なぜあなたはそのような他のフォームのプロパティを制御しようとしていますか、それは何をしようとしていますか?

私は道を見つけた
+0

うーん ので、どのように私は、例えば、他のアプリケーションのAPPIDを変更できますか? WindowsFormsExtensions.SetAppIdはFormオブジェクトを引数として要求しています –

+0

Windows 7のマネージ拡張機能ではおそらくできませんが、Win32/64 API関数の上位にある管理されたレイヤーになっている可能性があります。 。 –

関連する問題