Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Что я запустил?! Добавлено: 18.06.09 08:58  

Автор вопроса:  VβÐUηìt | Web-сайт: смекаешь.рф
Хорошо было бы, если бы ShellExecute возвращала hWnd окна запускаемой проги. Но вроде это не так. А как все-таки можно узнать hWnd окна, которое я запускаю?



Заранее благодарен.

Ответить

  Ответы Всего ответов: 4  

Номер ответа: 1
Автор ответа:
 Winand



Вопросов: 87
Ответов: 2795
 Web-сайт: winandfx.narod.ru
 Профиль | | #1
Добавлено: 18.06.09 14:15
ShellExecute просто запускает программу. У нее может вообще окон не быть. Так что шелэкзикьюту пофиг на hwnd) Придется как-то извращаться вручную

Ответить

Номер ответа: 2
Автор ответа:
 gvozd



Разработчик Offline Client

Вопросов: 164
Ответов: 1317


 Web-сайт: www.gvozdsoft.com
 Профиль | | #2
Добавлено: 18.06.09 14:34
Запускай через Shell, она по-моему, возвращает PID процесса, а потом, исходя из этого ищи hWnd окон процесса. Поправьте, если не прав, так как давно под Windows не писал.

Ответить

Номер ответа: 3
Автор ответа:
 Ra$cal



ICQ: 8068014 

Вопросов: 18
Ответов: 817
 Web-сайт: www.rascalspb.narod.ru
 Профиль | | #3
Добавлено: 18.06.09 15:56
CreateProcess юзай чтобы pid и tid получить. а дальше делай енаминг окошек и проверяй GetWindowThreadProcessId() и проверяй второй параметр этой функции, он возвращает по ссылке pid процесса, которому принадлежит окно.
   LPDWORD lpdwProcessId
проверять есесно с тем пидом, который вернул CreateProcess.
Если нада именно ShellExecute то еще придется делать енаминг процессов и искать тот, который имеет командную строку, которую ты ему передал(или имя исполняемого файла), чтобы получить pid.
Хотя мож есть вариант попроще, но чтото мне в голову только такое приходит.

Ответить

Номер ответа: 4
Автор ответа:
 VβÐUηìt



Вопросов: 246
Ответов: 3333
 Web-сайт: смекаешь.рф
 Профиль | | #4
Добавлено: 18.06.09 17:40
O_O ладно :)

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам