当前位置: 代码迷 >> VFP >> VFP调用DOS失败 求解?解决办法
  详细解决方案

VFP调用DOS失败 求解?解决办法

热度:1851   发布时间:2013-02-26 00:00:00.0
VFP调用DOS失败 求解???
是这样的,我想将共享的文件拷贝到本地
共享文件地址为:aa=\\10.0.31.15\file\测试.txt
本地:bb=D:\

我直接用DOS:copy aa bb,成功了

我在VFP的表单里使用了以下代码:

Declare Integer ShellExecute In "Shell32.dll" Integer HWnd,String lpVerb,String lpFile,String lpParameters,String lpDirectory,Long nShowCmd
=Shellexecute(0,"Open","copy aa bb","","",1) 

拷贝失败

请问这是怎么回事?哪里出了问题???





------解决方案--------------------------------------------------------
用不到 API,直接
aa='\\10.0.31.15\file\测试.txt'
bb='D:\'

Copy File (aa) To (bb)
*-- 或
Copy File '&aa.' To '&bb.'

------解决方案--------------------------------------------------------
aa='\\10.0.31.15\file\测试.txt'
bb='D:\'
ox=Createobject("wscript.shell")
ox.Run("cmd /c copy &aa. &bb.",0,1)

------解决方案--------------------------------------------------------
探讨
引用:
aa='\\10.0.31.15\file\测试.txt'
bb='D:\'
ox=Createobject("wscript.shell")
ox.Run("cmd /c copy &aa. &bb.",0,1)

十老师,我看了您的很多回复和文章,很受益,我想问一下 这些API和调用外部程序的命令您是从哪……

------解决方案--------------------------------------------------------
探讨
VFP9.0帮助文件就有API的有关内容:帮助文件-〉参考手册-〉API库结构

------解决方案--------------------------------------------------------
探讨
引用:
VFP9.0帮助文件就有API的有关内容:帮助文件-〉参考手册-〉API库结构

误导。
虽然都叫 API,但完全不是一回事

------解决方案--------------------------------------------------------
楼主感兴趣的是调用 Windows 操作系统提供的应用程序接口,简称 win32api(64位的也许会叫win64api,不过总会有兼容32位接口的 win32api 吧),这些可以下载、安装一个 msdn 来获得帮助。
vfp 帮助中所说的 api 是 vfp 如何用 c/c++ 编写 fll 扩展函数库,并在其中调用 vfp lck 提供的 api(也叫应用程序接口),这些 api 函数在 pro_ext.h 中有描述,与操作系统提供的 api 不是一回事。

------解决方案--------------------------------------------------------
Win32 API HELP?

Win32 API即为Microsoft 32位平台的应用程序编程接口(Application Programming Interface)。所有在Win32平台上运行的应用程序都可以调用这些函数。

使用Win32 API,应用程序可以充分挖掘Windows的32位操作系统的潜力。 Mircrosoft的所有32位平台都支持统一的API,包括函数、结构、消息、宏及接口。使用 Win32 API不但可以开发出在各种平台上都能成功运行的应用程序,而且也可以充分利用每个平台特有的功能和属性。

在具体编程时,程序实现方式的差异依赖于相应平台的底层功能的不同。最显著的差异是某些函数只能在更强大的平台上实现其功能。例如,安全函数只能在Windows NT操作系统下使用。另外一些主要差别就是系统限制,比如值的范围约束,或函数可管理的项目个数等等。

标准Win32 API函数可以分为以下几类:

窗口管理

窗口通用控制

Shell特性

图形设备接口

系统服务

国际特性

网络服务

在下面各节中,我们分别介绍这7种类型的API函数。


------解决方案--------------------------------------------------------
上面说的用wscript.shell调用DOS命令根本与API无关,这个叫COM组件的方式。
windows提供了大量的COM组件,可供任何语言调用(当然包括VFP),COM组件大部分也是DLL,但它与API不同,它不需要用Declare说明,而且支持智能感应提示功能。
如果对文件、文件夹的操作还嫌VFP本身功能太弱,不够,可以使用fso组件(fileSystemObject),它提供很多相关的操作。vbscript已经把所有文件功能都取消了,只能用这个组件操作文件了。
如楼主说的复制文件夹,就可以用CopyFolder方法实现。
fso=CreateObject("Scripting.FileSystemObject")
fso.CopyFolder(source,destination,overwrite)
  相关解决方案