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

Вниз

CreateProcess - флаги   Найти похожие ветки 

 
Ega23 ©   (2008-02-14 19:17) [0]

что-то никак не пойму: где в CreateProcess флаг поставить, аналог SW_HIDE в ShellExecute?


 
Palladin ©   (2008-02-14 19:20) [1]

startupinfo внимательно изучил?


 
Ega23 ©   (2008-02-14 19:25) [2]


> startupinfo внимательно изучил?
>


wShowWindow := SW_HIDE?


 
Palladin ©   (2008-02-14 19:27) [3]

он еще переспрашивает :)
у тебя справка не работает? :)


 
Leonid Troyanovsky ©   (2008-02-14 21:58) [4]


> Palladin ©   (14.02.08 19:27) [3]

> у тебя справка не работает? :)

Бывает и так - смотришь в книгу и видишь фигу.
Т.е., субъективные проблемы.
А для их разрешения общение незаменимо.

--
Regards, LVT.


 
Ega23 ©   (2008-02-14 22:37) [5]


> он еще переспрашивает :)


Потому и переспрашиваю. Или у меня уже крыша едет, или одно из двух. Вроде, должно скрыться. Однако, окошки вижу (в фоновом режиме надо несколько файлов распаковать)


> Бывает и так - смотришь в книгу и видишь фигу.


фточку.


 
ketmar ©   (2008-02-14 22:41) [6]

>[5] Ega23 © (2008-02-14 22:37:00)
Олег, код давай! %-)

---
Understanding is not required. Only obedience.


 
homm ©   (2008-02-14 22:44) [7]

> [5] Ega23 ©   (14.02.08 22:37)
> Вроде, должно скрыться.

Ага, должно. Если создаваемый процесс достает этот флаг и с его учетом создает свои окна.


 
Ega23 ©   (2008-02-14 22:48) [8]


> Олег, код давай! %-)
>



var
 cmd : string;
 ProcessInfo: TProcessInformation;
 StartupInfo: TStartupInfo;

begin

 cmd := "unzip.exe -q -o .......";
 FillChar(StartupInfo, SizeOf(StartupInfo), 0);
 StartupInfo.wShowWindow := SW_HIDE;
 StartupInfo.cb := SizeOf(StartupInfo);

 try
   if not CreateProcess(nil, PChar(cmd), nil, nil, False, 0,
                        nil, nil, StartupInfo, ProcessInfo) then Exit;
   WaitForSingleObject(ProcessInfo.hProcess, 2000);
 finally
   CloseHandle(ProcessInfo.hProcess);
   CloseHandle(ProcessInfo.hThread);
 end;


 
Игорь Шевченко ©   (2008-02-14 23:01) [9]


> Однако, окошки вижу (в фоновом режиме надо несколько файлов
> распаковать)


function RunAndWait (const ExeName, ParamString: string;
 QuoteParams: Boolean = true): Integer;
var
 ShellInfo: TShellExecuteInfo;
 ExitCode: DWORD;
begin
 ShellInfo.cbSize := SizeOf(ShellInfo);
 ShellInfo.fMask := SEE_MASK_NOCLOSEPROCESS;
 ShellInfo.Wnd := HWND_DESKTOP;
 ShellInfo.lpVerb := "open";
 ShellInfo.lpFile := PChar(ExeName);
 if QuoteParams then
   ShellInfo.lpParameters := PChar("""+ParamString+""")
 else
   ShellInfo.lpParameters := PChar(ParamString);
 ShellInfo.lpDirectory := PChar(ExtractFilePath(ExeName));
 ShellInfo.nShow := SW_HIDE;
 if not ShellExecuteEx(@ShellInfo) then
   RaiseLastOSError;
 if ShellInfo.hProcess <> 0 then
   try
     WaitForSingleObjectEx(ShellInfo.hProcess, INFINITE, false);
     GetExitCodeProcess(ShellInfo.hProcess, ExitCode);
     Result := ExitCode;
   finally
     CloseHandle(ShellInfo.hProcess);
   end
 else
   Result := -1;
end;

......

 ExCode := RunAndWait ("unzip", FileName, false);
 if ExCode <> 0 then
 begin
   writeln("*** unzip "+FileName);
   writeln(Format("*** failed with code %d", [ExCode]));
 end

Как раз недавно себе делал программку, распаковывающую все найденные архивы.


 
Ega23 ©   (2008-02-14 23:05) [10]


> Игорь Шевченко ©   (14.02.08 23:01) [9]


За исходник спасибо.
Однако, всё-таки - что я делаю не так???


 
Evgeny V ©   (2008-02-15 07:59) [11]

Ega23 ©   (14.02.08 22:48) [8]

Забыл флаг установить dwFlags в StartupInfo

> dwFlags
>
> This is a bit field that determines whether certain STARTUPINFO
> members are used when the process creates a window. Any
> combination of the following values can be specified:
>
> Value Meaning
> STARTF_USESHOWWINDOW If this value is not specified, the
> wShowWindow member is ignored.


StartupInfo.cb := sizeof(STARTUPINFO);
StartupInfo.dwFlags := STARTF_USESHOWWINDOW;
StartupInfo.wShowWindow := SW_HIDE;



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

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

Наверх




Память: 0.49 MB
Время: 0.012 c
6-1181510267
NeyroSpace
2007-06-11 01:17
2008.03.16
Как в Indy 10 обработать ошибки подключения?


2-1203062248
Василий К.
2008-02-15 10:57
2008.03.16
Отключение тем Windows XP для определенной формы в приложении


3-1193041148
kyn66
2007-10-22 12:19
2008.03.16
Связь Delphi - 1C


2-1203045038
FIL-23
2008-02-15 06:10
2008.03.16
Сохранение БД


2-1203073151
Neket
2008-02-15 13:59
2008.03.16
Имя папки