pb7下使用几个Win32 API 的例子
2007-06-21 19:20
381 查看
pb7下会用到API来处理很多底层的操作。因为PB7在数据库方面强,在别的方面就显得很弱。pb7中使用win32 API 也是很简单的。首先对要使用的win32 API 进行声明,然后就是调用,声明和调用的时候需要注意数据类型。
声明一般在 Declare --> Global External Functions 中。
1,几个文件系统操作的API
声明:
// 用关联的应用程序打开一个文件
FUNCTION long ShellExecuteA( ulong hWnd, string Operation, string lpFile,string lpParameters, string lpDirectory, int nShowCmd ) LIBRARY "shell32.dll"
//
创建一个目录
Function boolean CreateDirectoryA(string lpPathName,string lpSecurityAttributes) Library "kernel32.dll"
// 删除一个空目录
FUNCTION ulong RemoveDirectory(ref string lpPathName) LIBRARY "kernel32.dll" ALIAS FOR "RemoveDirectoryA"
调用:
// 打开文件
ShellExecuteA(0,"open","c:Northsnow.doc","","",1)
// 创建目录
string ls_SecurityAttributes,As_PathName
SetNull(ls_SecurityAttributes)
As_PathName = "c:Northsnow"
CreateDirectoryA(as_PathName,ls_SecurityAttributes)
// 删除空目录
string filePath
filePath="c:Northsnow"
RemoveDirectory(filePath)
文件系统操作的API功能非常强。这里只是列出了刚刚用过的几个而已。比如创建,打开,修改,删除文件和目录,文件系统的拷贝,剪切和粘贴。文件系统的遍历,文件系统属性的操作。
2,几个FTP连接的API
声明:
FUNCTION ulong InternetConnect (ULONG HINTERNET,REF STRING lpszservername ,long nserverport ,ref string lpszusername,ref string lpszpassword,ulong dwsevice,ulong dwflags,ref ulong dwcontext ) library "WININET.DLL" alias for "InternetConnectA"
FUNCTION boolean FtpGetFile(ulong hconnect ,ref string lpszremotefile,ref string lpsznewfile,boolean ffailifexists,ulong dwflagsandattributes,ulong dwfalgs,ref ulong dwcontext) library "WININET.DLL" alias for "FtpGetFileA"
FUNCTION BOOLEAN FtpPutFile(ulong hconnect ,ref string lpszLocalfile,ref string lpszNewRemoteFile,ulong dwfalgs,ref ulong dwcontext) library "WININET.DLL" alias for "FtpPutFileA"
FUNCTION BOOLEAN FtpDeleteFile (ULONG HCONNECT,REF STRING LPSZLOCALFILE,REF STRING LPSZNWEREMOTEFILE ,ULONG DWFLAGS,REF ULONG DWCONTEXT) LIBRARY "WININET.DLL" ALIAS FOR "FtpPutFileA"
FUNCTION BOOLEAN FtpDeleteFile (ULONG HCONNECT ,REF STRING LPSZFILENAME) LIBRARY "WININET.DLL" ALIAS FOR "FtpDeleteFileA"
FUNCTION BOOLEAN FtpRenameFile (ULONG HCONNECT,REF STRING LPSZEXISTING ,REF STRING LPSZNEW) LIBRARY "WININET.DLL" ALIAS FOR "FtpRenameFileA"
FUNCTION ULONG FtpOpen(ULONG HCONNECT ,REF STRING LPSZFILENAME,ULONG DWACCESS,ULONG DWFLAGS,REF ULONG DWCONTEXT ) LIBRARY "WININET.DLL" ALIAS FOR "FtpOpenFileA"
FUNCTION BOOLEAN FtpSetCurrentDirectory (ULONG HCONNECT,REF STRING LPSZDIRECTORY) LIBRARY "WININET.DLL" ALIAS FOR "FtpSetCurrentDirectoryA"
FUNCTION BOOLEAN FtpGetCurrentDirectory (ULONG HCONNECT ,REF STRING LPSZCURRENTDIRECTORY,REF ULONG LPDWCURRENTDIRECTORY) LIBRARY "WININET.DLL" ALIAS FOR "FtpGetCurrentDirectoryA"
FUNCTION ULONG InternetOpen(REF STRING LPSZAGENT,ULONG DWACCESSTYPE,REF STRING LPSZPROXY ,REF STRING LPSZPROXYBYPASS,ULONG DWFLAGS) LIBRARY "WININET.DLL" ALIAS FOR "InternetOpenA"
FUNCTION long ShellExecuteA( ulong hWnd, string Operation, string lpFile,string lpParameters, string lpDirectory, int nShowCmd ) LIBRARY "shell32.dll"
Function boolean CreateDirectoryA(string lpPathName,string lpSecurityAttributes) Library "kernel32.dll"
调用:
ulong lnginetconn //被赋予 wininet.dll internetconnect 函数
boolean ftpgetf //被赋予 wininet.dll ftpgetfile 函数
ulong ulngIetOpen //被赋予 wininet.dll internetopen 函数
string sAgent="liuyang"
string sProxy
string sProxyByPass
ulngIetOpen=InternetOpen(sAgent,0,sProxy,sProxyByPass,0)
lnginetconn=InternetConnect(ulngIetOpen,ftpserver ,ftpport,ftpu,ftpp,1,0,d)
string f
string g
//从服务器上取文件
ftpgetf=FtpGetFile(lnginetconn,f,g,false,0,1,d)
string str
boolean bPutFile
string g
ulong e =0
bPutFile= FtpPutFile(lnginetconn,g,str,0,e)
string ds
//在ftp服务器上删除文件
ftpdeletef= FtpdeleteFile(lnginetconn,ds)
声明一般在 Declare --> Global External Functions 中。
1,几个文件系统操作的API
声明:
// 用关联的应用程序打开一个文件
FUNCTION long ShellExecuteA( ulong hWnd, string Operation, string lpFile,string lpParameters, string lpDirectory, int nShowCmd ) LIBRARY "shell32.dll"
//
创建一个目录
Function boolean CreateDirectoryA(string lpPathName,string lpSecurityAttributes) Library "kernel32.dll"
// 删除一个空目录
FUNCTION ulong RemoveDirectory(ref string lpPathName) LIBRARY "kernel32.dll" ALIAS FOR "RemoveDirectoryA"
调用:
// 打开文件
ShellExecuteA(0,"open","c:Northsnow.doc","","",1)
// 创建目录
string ls_SecurityAttributes,As_PathName
SetNull(ls_SecurityAttributes)
As_PathName = "c:Northsnow"
CreateDirectoryA(as_PathName,ls_SecurityAttributes)
// 删除空目录
string filePath
filePath="c:Northsnow"
RemoveDirectory(filePath)
文件系统操作的API功能非常强。这里只是列出了刚刚用过的几个而已。比如创建,打开,修改,删除文件和目录,文件系统的拷贝,剪切和粘贴。文件系统的遍历,文件系统属性的操作。
2,几个FTP连接的API
声明:
FUNCTION ulong InternetConnect (ULONG HINTERNET,REF STRING lpszservername ,long nserverport ,ref string lpszusername,ref string lpszpassword,ulong dwsevice,ulong dwflags,ref ulong dwcontext ) library "WININET.DLL" alias for "InternetConnectA"
FUNCTION boolean FtpGetFile(ulong hconnect ,ref string lpszremotefile,ref string lpsznewfile,boolean ffailifexists,ulong dwflagsandattributes,ulong dwfalgs,ref ulong dwcontext) library "WININET.DLL" alias for "FtpGetFileA"
FUNCTION BOOLEAN FtpPutFile(ulong hconnect ,ref string lpszLocalfile,ref string lpszNewRemoteFile,ulong dwfalgs,ref ulong dwcontext) library "WININET.DLL" alias for "FtpPutFileA"
FUNCTION BOOLEAN FtpDeleteFile (ULONG HCONNECT,REF STRING LPSZLOCALFILE,REF STRING LPSZNWEREMOTEFILE ,ULONG DWFLAGS,REF ULONG DWCONTEXT) LIBRARY "WININET.DLL" ALIAS FOR "FtpPutFileA"
FUNCTION BOOLEAN FtpDeleteFile (ULONG HCONNECT ,REF STRING LPSZFILENAME) LIBRARY "WININET.DLL" ALIAS FOR "FtpDeleteFileA"
FUNCTION BOOLEAN FtpRenameFile (ULONG HCONNECT,REF STRING LPSZEXISTING ,REF STRING LPSZNEW) LIBRARY "WININET.DLL" ALIAS FOR "FtpRenameFileA"
FUNCTION ULONG FtpOpen(ULONG HCONNECT ,REF STRING LPSZFILENAME,ULONG DWACCESS,ULONG DWFLAGS,REF ULONG DWCONTEXT ) LIBRARY "WININET.DLL" ALIAS FOR "FtpOpenFileA"
FUNCTION BOOLEAN FtpSetCurrentDirectory (ULONG HCONNECT,REF STRING LPSZDIRECTORY) LIBRARY "WININET.DLL" ALIAS FOR "FtpSetCurrentDirectoryA"
FUNCTION BOOLEAN FtpGetCurrentDirectory (ULONG HCONNECT ,REF STRING LPSZCURRENTDIRECTORY,REF ULONG LPDWCURRENTDIRECTORY) LIBRARY "WININET.DLL" ALIAS FOR "FtpGetCurrentDirectoryA"
FUNCTION ULONG InternetOpen(REF STRING LPSZAGENT,ULONG DWACCESSTYPE,REF STRING LPSZPROXY ,REF STRING LPSZPROXYBYPASS,ULONG DWFLAGS) LIBRARY "WININET.DLL" ALIAS FOR "InternetOpenA"
FUNCTION long ShellExecuteA( ulong hWnd, string Operation, string lpFile,string lpParameters, string lpDirectory, int nShowCmd ) LIBRARY "shell32.dll"
Function boolean CreateDirectoryA(string lpPathName,string lpSecurityAttributes) Library "kernel32.dll"
调用:
ulong lnginetconn //被赋予 wininet.dll internetconnect 函数
boolean ftpgetf //被赋予 wininet.dll ftpgetfile 函数
ulong ulngIetOpen //被赋予 wininet.dll internetopen 函数
string sAgent="liuyang"
string sProxy
string sProxyByPass
ulngIetOpen=InternetOpen(sAgent,0,sProxy,sProxyByPass,0)
lnginetconn=InternetConnect(ulngIetOpen,ftpserver ,ftpport,ftpu,ftpp,1,0,d)
string f
string g
//从服务器上取文件
ftpgetf=FtpGetFile(lnginetconn,f,g,false,0,1,d)
string str
boolean bPutFile
string g
ulong e =0
bPutFile= FtpPutFile(lnginetconn,g,str,0,e)
string ds
//在ftp服务器上删除文件
ftpdeletef= FtpdeleteFile(lnginetconn,ds)
相关文章推荐
- 【PB】使用 Win32 API 扩展下拉列表框
- 使用DOM核心API的几个例子--《JavaScript权威指南第四版十七章》
- C#中通过DllImport使用 Win32 API
- objc_runtime使用方法的几个简单例子(转)
- 面向对象的Windows编程实战(上)(使用C++和Win32 API)
- 海量数据处理实例--几个使用bit-map的简单例子
- 使用PB调用API自动更新(非FTP模式)(二、API说明及定义(2))
- java xml api 简单使用例子
- Win32 API中使用定时器的三种方法
- 内核定时器的使用(好几个例子add_timer) .
- JDK_API中关于String的几个方法的使用
- 收藏——在C#使用SHGetFileInfo获取(管理)文件或者文件夹图标(C#封装Win32函数的一个例子)
- 【转】 在 .NET 框架程序中通过DllImport使用 Win32 API
- 如何在C#中使用Win32 API和其他库
- 在Python使用yaml的几个例子
- vba使用win32 API(GetOpenFileName )实现打开文件对话框
- C#中通过DllImport使用 Win32 API
- Windows 7下安装Osmosis以及简单的使用例子
- Windows音频编程:Win32 Wave API 的使用
- lpvoid 在 win32 api 中的使用