WindowsFormsExtensions.SetTaskbarProgressなどのWindows7.DesktopIntegration.WindowsFormsExtensions関数をいくつか開いたフォームで使用する必要があります。これらのフォームは私のアプリケーションで開かれていません。開かれたすべてのフォームを取得する、C#?
各ウィンドウのフォームオブジェクトへのリンクを取得するにはどうすればよいですか?または、これらのタスクバー機能を使用する別の方法がありますか?
WindowsFormsExtensions.SetTaskbarProgressなどのWindows7.DesktopIntegration.WindowsFormsExtensions関数をいくつか開いたフォームで使用する必要があります。これらのフォームは私のアプリケーションで開かれていません。開かれたすべてのフォームを取得する、C#?
各ウィンドウのフォームオブジェクトへのリンクを取得するにはどうすればよいですか?または、これらのタスクバー機能を使用する別の方法がありますか?
:
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)
);
}
フォームオブジェクトは、独自のアプリケーションで作成されたフォームに対してのみ存在します。
他のアプリケーションによって作成されたWindowsは、あなたが知る限り、ハンドルしか持っていません。
既存のハンドルの周りにフォームオブジェクトを構築することは可能かもしれませんが、これはおそらく最良の方法ではないと思います。
なぜあなたはそのような他のフォームのプロパティを制御しようとしていますか、それは何をしようとしていますか?
私は道を見つけた
うーん ので、どのように私は、例えば、他のアプリケーションのAPPIDを変更できますか? WindowsFormsExtensions.SetAppIdはFormオブジェクトを引数として要求しています –
Windows 7のマネージ拡張機能ではおそらくできませんが、Win32/64 API関数の上位にある管理されたレイヤーになっている可能性があります。 。 –