作者在 2015-03-11 14:26:36 发布以下内容
把以下 notepad.exe 换成你的 DOS命令即可
来源:http://bbs.csdn.net/topics/340256503
Declare Long WinExec In kernel32 String,Long
=WinExec("notepad.exe",1)
Clear Dlls
WinExec(one.exe,SW_SHOW);
里面的SW_SHOW意思是什么
WinExec()函数第二个参数是什么意思
如果我想以无参数运行one.exe应该怎么办??
SW_SHOW表示以当前大小激活运行后的程序窗口并显示它。
第二个参数是控制程序主窗口的显示方式
第二个参数可能的取值为 :
************************* 窗口指定可视性定义 **********************************API函数ShellExecute中最后一个参数及wscript.shell方法中的第2个参数也是这样定义的。
0 SW_HIDE 隐藏窗口,活动状态为原调用窗口
6 SW_MINIMIZE 最小化窗口,活动状态为原调用窗口
9 SW_RESTORE 用原来的大小和位置显示一个窗口,同时令其进入活动状态
5 SW_SHOW 用当前的大小和位置显示一个窗口,同时令其进入活动状态
3 SW_SHOWMAXIMIZED 最大化窗口,并将其激活
2 SW_SHOWMINIMIZED 最小化窗口,并将其激活
7 SW_SHOWMINNOACTIVE 最小化一个窗口,同时不改变活动窗口
8 SW_SHOWNA 用当前的大小和位置显示一个窗口,不改变活动窗口
4 SW_SHOWNOACTIVATE 用最近的大小和位置显示一个窗口,同时不改变活动窗口
1 SW_SHOWNORMAL 与SW_RESTORE相同
****************************************************************************
一般情况下,第二个参数取SW_SHOWNORMAL即可,这样就是无参数运行App.exe
WinExec("App.exe -参数" , SW_SHOWNORMAL);第二个参数只是WinExec函数的参数,不是AppName.exe的参数。
或
ox=Createobject("wscript.shell")
ox.Run("notepad.exe",1,0) &&第2个参数参考上面《窗口指定可视性定义》,第3个参数0表示调用后马上将控件权返回原调用程序,1表示直接被调用程序结束后才将控件权返回原调用程序(调用外部文件时让系统一直等待,直到运行结束才返回控制权就可以了)。
Release ox
或
Declare Integer ShellExecute In "Shell32.dll" Integer HWnd,String lpVerb,String lpFile,String lpParameters,String lpDirectory,Long nShowCmd
=Shellexecute(0,"Open","DOS命令","参数[可为空]","",1) && 最后1个参数:0隐藏窗口、1正常方式、2最小化方式、3最大化方式
-------------------------------- 以下内容补充于 2017-02-13 21:53:04 --------------------------------
oWsh.Run('cmd /c COPY &cpath1 &cfile_s', 0, .T.)-------------------------------- 以下内容补充于 2017-02-13 21:59:49 --------------------------------
CLEAR
cpath="d:\sl\"
n=ADIR(afile,cpath+"*.*","D")
cfile=""
cspace=" "
FOR i=1 TO n
IF "D"$afile[i,5] AND AT(".",afile[i,1])=0
cfile=cfile+afile[i,1]+cspace
ENDIF
ENDFOR
=ALINES(afiles,cfile,cspace)
cfile_s=cpath+"XXX文件夹"
IF DIRECTORY(cfile_s)=.F.
MD &cfile_s
ENDIF
oWsh = CreateObject("wscript.shell") &&解决VFP下调用DOS命令黑屏的缺陷
FOR i=1 TO ALEN(afiles,1)
IF ADIR(afile,cpath+afiles[i]+"\*.bmp")>0
cpath1=cpath+afiles[i]+"\*.bmp"
* RUN /7 COPY &cpath1 &cfile_s
oWsh.Run('cmd /c COPY &cpath1 &cfile_s', 0, .T.)
ENDIF
ENDFOR
RELEASE oWsh