希望哪位高手能给段代码
9 个解决方案
#1
你这个延时,可以直接使用sleep,顺着执行就是了
ShellExecute可以执行一个程序(exe,bat等)
ShellExecute可以执行一个程序(exe,bat等)
#2
ShellExecute(handle, 'open','c:\1.exe',nil,nil, SW_SHOWNORMAL);
Sleep(1000);
Application.ProcessMessages;
ShellExecute(handle, 'open','c:\2.bat',nil,nil, SW_SHOWNORMAL);
Sleep(50);
Application.ProcessMessages;
SendMessage(handle,WM_CLOSE,0,0);
#3
2楼正解
#4
2楼不正,要关闭另一个exe,不是自己
procedure EndProcess(AFileName: string);
const
PROCESS_TERMINATE = $0001;
var
ContinueLoop: BOOL;
FSnapShotHandle: THandle;
FProcessEntry32: TProcessEntry32;
begin
FSnapShotHandle := CreateToolhelp32SnapShot(TH32CS_SNAPPROCESS, 0);
FProcessEntry32.dwSize := SizeOf(FProcessEntry32);
ContinueLoop := Process32First(FSnapshotHandle, FProcessEntry32);
while integer(ContinueLoop) <> 0 do
begin
if ((UpperCase(ExtractFileName(FProcessEntry32.szExeFile)) = UpperCase(AFileName))
or (UpperCase(FProcessEntry32.szExeFile ) = UpperCase(AFileName))) then
TerminateProcess(OpenProcess(PROCESS_TERMINATE, BOOL(0),FProcessEntry32.th32ProcessID), 0);
ContinueLoop := Process32Next(FSnapshotHandle, FProcessEntry32);
end;
end;
使用举例 EndProcess('explorer.exe');
#5
在批处理中直接延时关闭另一个程序行不?
#6
主要是批处理文件调用了另外一个exe文件 所以要运行的过程中关闭它
#7
如果不要延时了 可以简单些吗 顺序依次是运行1.exe 运行2.bat 关闭2.bat的关联文件3.exe
#8
回的帖子,大家都帮你解决了,没看出来?
#9
createprocess
Terminateprocess
winexec
shellexecute
Terminateprocess
winexec
shellexecute
#1
你这个延时,可以直接使用sleep,顺着执行就是了
ShellExecute可以执行一个程序(exe,bat等)
ShellExecute可以执行一个程序(exe,bat等)
#2
ShellExecute(handle, 'open','c:\1.exe',nil,nil, SW_SHOWNORMAL);
Sleep(1000);
Application.ProcessMessages;
ShellExecute(handle, 'open','c:\2.bat',nil,nil, SW_SHOWNORMAL);
Sleep(50);
Application.ProcessMessages;
SendMessage(handle,WM_CLOSE,0,0);
#3
2楼正解
#4
2楼不正,要关闭另一个exe,不是自己
procedure EndProcess(AFileName: string);
const
PROCESS_TERMINATE = $0001;
var
ContinueLoop: BOOL;
FSnapShotHandle: THandle;
FProcessEntry32: TProcessEntry32;
begin
FSnapShotHandle := CreateToolhelp32SnapShot(TH32CS_SNAPPROCESS, 0);
FProcessEntry32.dwSize := SizeOf(FProcessEntry32);
ContinueLoop := Process32First(FSnapshotHandle, FProcessEntry32);
while integer(ContinueLoop) <> 0 do
begin
if ((UpperCase(ExtractFileName(FProcessEntry32.szExeFile)) = UpperCase(AFileName))
or (UpperCase(FProcessEntry32.szExeFile ) = UpperCase(AFileName))) then
TerminateProcess(OpenProcess(PROCESS_TERMINATE, BOOL(0),FProcessEntry32.th32ProcessID), 0);
ContinueLoop := Process32Next(FSnapshotHandle, FProcessEntry32);
end;
end;
使用举例 EndProcess('explorer.exe');
#5
在批处理中直接延时关闭另一个程序行不?
#6
主要是批处理文件调用了另外一个exe文件 所以要运行的过程中关闭它
#7
如果不要延时了 可以简单些吗 顺序依次是运行1.exe 运行2.bat 关闭2.bat的关联文件3.exe
#8
回的帖子,大家都帮你解决了,没看出来?
#9
createprocess
Terminateprocess
winexec
shellexecute
Terminateprocess
winexec
shellexecute