CMD

nslookup IP地址 
例如:
nslookup 127.1
可得到本机的域名
阅读更多

希望有大虾可以解决ShellExecute调用DOS命令后的CMD进程

10-25

各位论坛上的朋友,想请教一下,小弟在DELPHI里面调用以下命令rn ShellExecute(Handle, nil, 'cmd.exe', pchar('/K md c:\目录'), nil, SW_HIDE);rn但发现在调用完成后会在进程里面多出一个cmd.exe,假如我要连接执行一千条以上的shellExecute命令,那么就不可能实现了,有没有办法,可以在每调用一条ShellExecute调命令之后,就终止一个CMD进程呢?rnrn我试过用以下的过程,在每执行一次rnShellExecute(Handle, nil, 'cmd.exe', pchar('/K md c:\目录'), nil, SW_HIDE);rn然后就 KillProc('cmd.exe'),但发现程序就不能正常进行调用了,不知道为什么?rn希望有大虾能帮忙解决,每ShellExecute一次之后,就可以立即出现的CMD.exe,然后让其继续执行下一次的ShellExecute,这样不断循环,直到ShellExecute不再执行为止。rnrn衷心谢谢!!!rnrnrnrnprocedure TForm1.KillProc(procname: string); //终止指定的进程rnconstrn PROCESS_TERMINATE = $0001;rnvarrn ExeFileName: string;rn ContinueLoop: BOOL;rn FSnapshotHandle: THandle;rn FProcessEntry32: TProcessEntry32; //注意:TProcessEntry32必须引用单元TlHelp32rnbeginrn ExeFileName := procname;rn FSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);rn FProcessEntry32.dwSize := Sizeof(FProcessEntry32);rn ContinueLoop := Process32First(FSnapshotHandle, FProcessEntry32);rn while integer(ContinueLoop) <> 0 dorn beginrn if ((UpperCase(ExtractFileName(FProcessEntry32.szExeFile)) =rn UpperCase(ExeFileName))rn or (UpperCase(FProcessEntry32.szExeFile) =rn UpperCase(ExeFileName))) thenrn TerminateProcess(OpenProcess(PROCESS_TERMINATE, BOOL(0),rn FProcessEntry32.th32ProcessID), 0);rn ContinueLoop := Process32Next(FSnapshotHandle, FProcessEntry32);rn end;rnend;

换一批

没有更多推荐了,返回首页