function TFmain.RunWait(FileName: string; Visibility: Integer): THandle; var zAppName: array[0..512] of Char; zCurDir: array[0..255] of Char; WorkDir: string; StartupInfo: TStartupInfo; ProcessInfo: TProcessInformation; begin try StrPCopy(zAppName, FileName); GetDir(0, WorkDir); StrPCopy(zCurDir, WorkDir); FillChar(StartupInfo, SizeOf(StartupInfo), #0); StartupInfo.cb := SizeOf(StartupInfo); StartupInfo.dwFlags := STARTF_USESHOWWINDOW; StartupInfo.wShowWindow := Visibility; if not CreateProcess(nil, zAppName, nil, nil, false, Create_NEW_CONSOLE or NORMAL_PRIORITY_CLASS, nil, nil, StartupInfo, ProcessInfo) then begin result := 0; Exit; end else begin WaitForSingleObject(ProcessInfo.hProcess, INFINITE); GetExitCodeProcess(ProcessInfo.hProcess, result); end; finally end; end;
调用
procedure TFmain.Img_buyClick(Sender: TObject); var msg:String; begin
Timer1.Enabled := False;
RunWait('cs_buy.exe',SW_SHOWMAXIMIZED);
Timer1.Enabled := True;
end;
其中 参数 Visibility 取值如下:
行号 参数 含义 1 SW_HIDE 隐藏这个窗体,并激活其他窗体。 2 SW_MAXIMIZE 最大化指定的窗体。 3 SW_MINIMIZE 最小化指定的窗体,并按顺序激活最上层的窗体。 4 SW_RESTORE 激活并显示窗体。如果窗体为最小化或者最大化,窗体恢复到原始大 小和置。应用程序当恢复一个最小化的窗体时将指定标记。 5 SW_SHOW 以当前的大小和位置激活并显示窗体。 6 SW_SHOWDEFAULT 7 SW_SHOWMAXIMIZED 激活并最大化显示窗体。 8 SW_SHOWMINIMIZED 激活并最小化现实窗体。 9 SW_SHOWMINNOACTIVE 最小化窗体,保持其激活状态。 10 SW_SHOWNA 以当前状态显示窗体,保持其激活状态。 11 SW_SHOWNOACTIVATE 以当前的大小和位置显示窗体,并保持其激活状态。 12 SW_SHOWNORMAL 激活并显示一个窗体。如果窗体为最大化或者最小化,窗体恢复到原始的大小和位置。当窗体第一次显示的时候,应用程序记录标记
|
请发表评论