如何在DELPHI中执行系统的命令行,如直接调用‘c:/windows/regedit'等(50分)

  • 主题发起人 主题发起人 chicken
  • 开始时间 开始时间
哇!拣便宜了??
winexec('c:/windows/regedit.exe',sw_normal);
 
如果调用外部命令,在已答问题中有.
WINEXEC
SHELLEXECUTE
EXECUTEFILE
 
呵呵,亏了!
 
谢谢各位
 
抢一点,最后一个参数:
SW_HIDE
SW_NORMAL
SW_SHOW
SW_MAXMIZE
SW_MINIMIZE
 
如果你不嫌麻烦的话
用CreateProcess
BOOL CreateProcess(

LPCTSTR lpApplicationName,//pointer to name of executable module
LPTSTR lpCommandLine, // pointer to command line string
LPSECURITY_ATTRIBUTES lpProcessAttributes,// pointer to process security attributes
LPSECURITY_ATTRIBUTES lpThreadAttributes, // pointer to thread security attributes
BOOL bInheritHandles, // handle inheritance flag
DWORD dwCreationFlags, // creation flags
LPVOID lpEnvironment, // pointer to new environment block
LPCTSTR lpCurrentDirectory, // pointer to current directory name
LPSTARTUPINFO lpStartupInfo, // pointer to STARTUPINFO
LPPROCESS_INFORMATION lpProcessInformation // pointer to PROCESS_INFORMATION
);
 
wrech先生:
挺有意思,你不嫌麻烦吗? 不会是想编delphi6吧
winexec命令足以!!
 
winexec('c:/windows/regedit.exe',sw_normal);
参数有:SW_HIDE
SW_NORMAL
SW_SHOW
SW_MAXMIZE
SW_MINIMIZE
完全'盗'用CAKK,CJ.
 
来晚了,无话可说.... :-P
 
痛失得分良机,(cj连小数点后的都拿走了,呵呵),..... 8=)(
 
好象如果是用winexec执行命令行的程序,等程序结束了
不会自动关掉,留下个丑丑的黑MS-DOS窗口……
好象能用shellexec来获得窗口句柄,然后关掉,但……
又如何知道那个程序已经结束了呢?
 
to 堕落·阿修罗: 没有的事!!!

btw:你的名字可真有意思.
 
哦,我明白了,你是不是在"MS-DOS方式 属性"里面没有选中"退出时关闭"的选项吧?
 
》好象如果是用winexec执行命令行的程序,等程序结束了
》不会自动关掉,留下个丑丑的黑MS-DOS窗口……
不见得,如果是调用windows程序,例如写字板之类,就没有那个MS Dos窗口.
不好意思,有点吹毛求疵,:)
 
shellexecute(handle,'open',pchar('c:/windows/regedit.exe'),nil,nil,sw_show normal);可以吗?
 
来晚了.亏啊
 
这问题多如牛毛,还是先查一查,少冤枉分数吧
 
其实ShellExecute和WinExec有很大的区别,ShellExecute在当前程序结束的时候自动关闭启动的程序,而WinExec则不会。
 
后退
顶部