Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / ShowInTaskBar и Window Handle / 4 сообщений из 4, страница 1 из 1
14.12.2004, 06:31
    #32825876
Проблема123
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ShowInTaskBar и Window Handle
Мое приложение (Parent) запускает другое (Child) . Оба - .Net (запускаем через Process). При этом мне нужно из Parent иногда выносить главное окно Child на передний план (BringToFront).
Все работает хорошо - получаем Process.MainWindowHandle и вызываем WinAPI SetWindowPos. Но проблема в том, что если у Child стоит ShowInTaskBar = false, то Process.MainWindowHandle дает 0 и соотв. сделать ничего нельзя.

Как не показывать приложение на taskbar, но при этом иметь нормальный Handle на главное окно? Это возможно?

Спасибо.
...
Рейтинг: 0 / 0
15.12.2004, 22:20
    #32829361
Alexey Kudinov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ShowInTaskBar и Window Handle
Проблема123Мое приложение (Parent) запускает другое (Child) . Оба - .Net (запускаем через Process). При этом мне нужно из Parent иногда выносить главное окно Child на передний план (BringToFront).
Все работает хорошо - получаем Process.MainWindowHandle и вызываем WinAPI SetWindowPos. Но проблема в том, что если у Child стоит ShowInTaskBar = false, то Process.MainWindowHandle дает 0 и соотв. сделать ничего нельзя.

Как не показывать приложение на taskbar, но при этом иметь нормальный Handle на главное окно? Это возможно?

Спасибо. Возможно, вам поможет эта дискуссия ?
...
Рейтинг: 0 / 0
15.12.2004, 22:25
    #32829366
Alexey Kudinov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ShowInTaskBar и Window Handle
Вдогонку

Здесь пишут:
http://www.gotdotnet.ru/Forums/CommonForum/4978.aspx#4978Вобщем я немного поэкспериментировал - оказывается если у окна свойство ShowInTaskBar стоит в false - то свойство Process.MainWindowHandle возвращает 0.
Тогда чтобы найти окно предлагаю воспользоваться Win32 API функциями EnumWindows() и GetWindowThreadProcessId(). Как это сделать показано в примере Один экземпляр приложения .

Правда ссылка на http://www.gotdotnet.ru/upload.aspx?d_no=31883 у меня не работает...
...
Рейтинг: 0 / 0
15.12.2004, 22:36
    #32829372
Alexey Kudinov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ShowInTaskBar и Window Handle
Alexey KudinovПравда ссылка на http://www.gotdotnet.ru/upload.aspx?d_no=31883 у меня не работает... Однако реализацию можно найти и на sql.ru, правда на VB.Net:
/topic/84553#615637
Код: plaintext
\t\nIf process.MainWindowHandle.Equals(IntPtr.Zero) Then\n\'\'По каким-то причинам(например у окна ShowInTaskBar = false)\n\'\'MainWindowHandle равен 0. Попытаемся найти окно при помощи\n\'\'Win32 API функций\nhWnd = FindWindowEngine.Find(process.Id)\nIf hWnd.Equals(IntPtr.Zero) Then Exit For \'\'Окно так и неудалось найти, выходим.\nElse\n
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / ShowInTaskBar и Window Handle / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]