再次询问如何在VFP调用外部命令。

如何调用VFP的其他程序

-

在kernel32字符串中声明Long WinExec,Long

=WinExec("notepad.exe ",1)

清除dll

WinExec(one.exe,SW _ SHOW);

SW_SHOW在里面是什么意思?

WinExec()函数的第二个参数是什么意思?

如果我想在没有参数的情况下运行one.exe,我该怎么做?

SW_SHOW表示以当前大小激活正在运行的程序窗口并显示。

第二个参数是控制程序主窗口的显示方式。

第二个参数的可能值为:

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * API函数Shel。

0SW _ HIDE隐藏窗口,活动状态为原调用窗口。

6SW _ MINIMIZE window,活动状态是原调用窗口。

9SW _ RESTORE以其原始大小和位置显示一个窗口,同时使其处于活动状态。

5SW _ SHOW显示一个具有当前大小和位置的窗口,并同时激活它。

33sw _ show maximized最大化窗口并激活它。

22sw _ show最小化窗口并激活它。

7SW _ SHOWMINNOACTIVE最小化一个窗口,不改变活动窗口。

8SW _ SHOWNA显示当前大小和位置的窗口,而不改变活动窗口。

4SW _ SHOWNOACTIVATE显示一个具有最新大小和位置的窗口,而不改变活动窗口。

1sw _ shownormal与SW_RESTORE相同。

****************************************************************************

正常情况下,第二个参数可以是SW_SHOWNORMAL,也就是不带参数运行App.exe。

WinExec("App.exe-parameter ",SW _ show normal);第二个参数只是WinExec函数的参数,而不是AppName.exe的参数。

或者

ox=Createobject("wscript.shell ")

公牛。Run("notepad.exe ",1,0)& amp;& amp第二个参数指的是上面指定可见性的窗口的定义。第三个参数0表示调用后控制权会立即归还给原调用程序,1表示直接调用的程序结束后控制权会归还给原调用程序(调用外部文件时,让系统等到运行结束)。

放牛

比如:

ox=Createobject("wscript.shell ")

公牛。run(" cmd/c copy c:\ ABC \ 1 . txt d:\ ",0,1)

放牛

Messagebox('操作完成!',64,“信息提示”)

或者

在VFP,我们可以用run来调用。VFP自己生成的exe文件。命令格式:

运行c:\..\*.可执行程序的扩展名

当调用。exe文件生成的非VFP本身,需要添加绝对路径和参数。

一般来说,当使用VFP运行非VFP自己生成的可执行文件时,会显示一个黑色窗口。可以通过添加/n来隐藏这个窗口,比如在Windows下运行扫雷游戏,命令格式如下:

运行/n C:\Windows\Winmine.exe

让我们运行一个更复杂的程序。用word打开c:\下名为mlx.doc的word文件。命令格式如下:

运行/n3 C:\ Program Files \ Microsoft Office \ Office \ winword . exe C:\ mlx . doc

参数:参考上面的窗口指定可见性的定义。

运行时隐藏VFP的黑色窗口。

3表示以最大化的方式运行程序。1正常模式,2最小模式和3最大模式

在这种情况下,虽然我们可以通过添加参数的方式让程序顺利运行,但是仍然需要指定绝对路径,但是在实际开发中,我们往往无法确定需要启动的应用程序的文件名和绝对路径。比如上面的例子,我们无法确定用户的word安装在哪里。如果用户在另一个地方安装word,上面的命令会是错误的。另一个例子是. gif文件。有的用户喜欢用ACD See打开,有的用户喜欢用IE打开,有的用户喜欢用Hero打开。

为了了解这种情况,我们可以调用Windows的文件连接来打开文件。也就是说,所有文件都由系统的默认程序打开。这调用了Windows的Win32 API函数。呼叫模式如下:

声明整数shell在shell32.DLL执行INTEGER HWND,STRING lpszOP,STRING lpszFile,STRING lpszParams,STRING lpszDir,INTEGER fsshowcmd

在win32api中声明整数GetDesktopWindow

HWND = GetDesktopWindow()

lpszOP = "打开"

*指定要打开的文件名。

lpszFile ="c:\mlx.doc "

lpszParams = " "

lpszDir = "c:\temp "

fsshowcmd = 1

*执行ShellExecute命令

LNRETURN = ShellExecute(HWND,lpszOP,lpszFile,lpszParams,lpszDir,fsshowcmd)

可以用任何文件名替换c:\mlx.doc。如果Windows找不到指定的文件名,程序将不会响应。可以通过试错来修改相关参数,以达到最佳效果。

-

API函数ShellExecute的使用

ShellExecute

解释Shellexecute函数用于执行文件上的动词。它通常用于启动与特定文件类相关的应用程序。例如,启动Word读取. doc文件,或启动记事本编辑. txt文件。第二个参数中最常用的动词是“Open”。但是其他可用的动词有“编辑”、“打印”、“浏览”和“属性”。有趣的是,通过前缀“mailto:”或“http://”, ShellExecute函数还可以用于使用给定的电子邮件地址启动默认的电子邮件阅读器,或者使用给定的URL启动默认的浏览器。