Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.01.26;
Скачать: CL | DM;

Вниз

Как сделать так, чтобы второе окно не появлялось   Найти похожие ветки 

 
Andersen ©   (2004-01-14 16:17) [0]

У меня такая ситуация: из одной программы запускается другая обычная программа. Запускается так:
Код:

SHELLEXECUTEINFO lpExecInfo;
lpExecInfo.cbSize = sizeof(SHELLEXECUTEINFO);
lpExecInfo.fMask = SEE_MASK_NOCLOSEPROCESS;
lpExecInfo.hwnd = NULL;
lpExecInfo.lpVerb = NULL;
lpExecInfo.lpFile = chCurrentDirectory;
lpExecInfo.lpParameters = NULL;
lpExecInfo.lpDirectory = lpDirectory;
lpExecInfo.nShow = SW_HIDE;
lpExecInfo.hInstApp = NULL;

ShellExecuteEx(&lpExecInfo);
WaitForSingleObject(lpExecInfo.hProcess, INFINITE);


Но несмотря на lpExecInfo.nShow = SW_HIDE, все равно окно второй программы появляется на экране. Как этого избежать? Причем, ставлю в самой этой второй проге у формы Visible = False. Запускаю - как будто оно установлено в True. В чем тогда разница?

ЗЫ. Извиняюсь за сишный синтаксис, но я думаю, что это неважно


 
alex_*** ©   (2004-01-14 16:19) [1]

var
pi: TProcessInformation;
si: TStartupInfo;

begin
with Si do
begin
cb := SizeOf( Si);
dwFlags := startf_UseShowWindow;
wShowWindow:=SW_HIDE;
end;

if not CreateProcess(nil,PChar(ResFile),nil,nil,false,
NORMAL_PRIORITY_CLASS,nil,nil,si,pi) then
RaiseLastOSError();
CloseHandle(pi.hThread);
WaitForSingleObject(pi.hProcess,INFINITE);
CloseHandle(pi.hProcess);


 
Andersen ©   (2004-01-14 16:36) [2]

Спасибо, попробую.



Страницы: 1 вся ветка

Текущий архив: 2004.01.26;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.011 c
8-83215
UltraFreak
2003-09-19 11:53
2004.01.26
Алгоритм цветового круга


14-83279
DDA
2004-01-03 23:48
2004.01.26
HKEY_DYN_DATA


7-83289
TUser
2003-11-10 11:04
2004.01.26
Kill TaskBar


6-83232
Alec
2003-11-22 00:52
2004.01.26
Как прогаммно узнать ip адресс компьютера в интернете ?


1-83152
Kremen
2004-01-15 11:49
2004.01.26
Програмное переключение языка