получить все открытые формы, c #? - PullRequest
1 голос
/ 22 сентября 2009

Мне нужно использовать функции Windows7.DesktopIntegration.WindowsFormsExtensions, такие как WindowsFormsExtensions.SetTaskbarProgress, с некоторыми открытыми формами. Эти формы не открываются моим приложением.

Как получить ссылку на объект формы каждого окна? Или, может быть, есть другой способ использовать эти функции панели задач?

Ответы [ 2 ]

1 голос
/ 22 сентября 2009

я нашел способ:

        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 голосов
/ 22 сентября 2009

Объекты форм существуют только для форм, созданных вашим собственным приложением.

Насколько известно, окна, созданные другими приложениями, имеют только маркеры.

Возможно, можно построить объекты Form вокруг существующих дескрипторов, но я бы сказал, что это, вероятно, не лучший способ сделать это.

Почему вы пытаетесь управлять свойствами в других формах, как это, что вы пытаетесь сделать?

...