Форум: "Начинающим";
Текущий архив: 2007.09.23;
Скачать: [xml.tar.bz2];
Внизпроблема с ShellExecuteEx Найти похожие ветки
← →
alshtam © (2007-08-29 09:03) [0]проблема в следующем я открываю Chm файл и хотелось бы получить хендл окна в котором открылось приложение но в переменной hProcess класса SHELLEXECUTEINFO явно лежит не хендл
вот мой текст
var
SHExecInfo:SHELLEXECUTEINFO;
styl:longint;
begin
SHExecInfo:=SHELLEXECUTEINFO(GetMemory(sizeof(SHELLEXECUTEINFO))^);
SHExecInfo.cbSize := sizeof(SHELLEXECUTEINFO);
SHExecInfo.fMask := SEE_MASK_NOCLOSEPROCESS;
SHExecInfo.nShow := SW_SHOWNORMAL;
SHExecInfo.lpFile := "test.chm";
ShellExecuteEx(@SHExecInfo);
end;
подскажите пожалуста что неправильно я сделал?
← →
MBo © (2007-08-29 09:07) [1]>явно лежит не хендл
хендл, только не окна, а процесса
← →
alshtam © (2007-08-29 09:10) [2]хендл просесса..
как по нему пожно узнать хендл окна, должно быть как моможно?
← →
@!!ex © (2007-08-29 09:18) [3]> [2] alshtam © (29.08.07 09:10)
только стоит учитывать, что у одного процесса может быть вагон окон...
← →
alshtam © (2007-08-29 09:21) [4]да конечно, но у процесса соцданого таким путем только одно окно!
← →
@!!ex © (2007-08-29 09:31) [5]> [4] alshtam © (29.08.07 09:21)
Список окон, созданных процессом, получается с помощью функции EnumWindows.
Для каждого из этих окон с помощью функции GetWindowThreadProcessID определяется процесс.
Выбираешь только те окна, которые принадлежат данному процессу.
← →
MBo © (2007-08-29 09:31) [6]Придется перебрать окна (например, EnumWindows), и проверить, какому потоку/процессу они принадлежат
← →
alshtam © (2007-08-29 09:33) [7]большое спасибо, щас попробую!
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.09.23;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.049 c