|
马上加入TC
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
- 空间 dllcalltest
- //默认空间
- 变量 线程句柄=0
- //dllcall参数说明
- //函数原型:dllcall(filepath,type,functionName,...)
- //filepath:api所在的一个dll的地址
- //type:api返回值的类型
- //functionName:api的名字,某些字符串相关的API在名字需要多加字母A或者W
- //...:表示参数是动态的,后面的实际参数是根据API的具体参数来写的
- //dllcall使用规则:
- //1、调用系统API只需要写API所在的dll就可以了,可以不写绝对路径,自己编写的API必须使用绝对路径
- //2、 dllcall的参数在TC里面的定义:
- //TC代码中的参数
- //MSDN中的参数
- //wchar *
- //LPCWSTR
- //char *
- //LPTSTR LPCTSTR
- //double
- //DOUBLE FLOAT
- //int
- //INT LONG
- //bool
- //BOOL
- //3、参数的个数以及类型必要与MSDN上相对应
- //4、dllcall暂时还不支持参数传址与结构体
- 功能 下载文件(pCaller,szURL,szFileName,dwReserved,lpfnCB)
- //VB
- //Private Declare Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA"
- //(ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As String,ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long
-
- //Return Value
- //Returns one of the following values.
-
- //S_OK : The download started successfully.
-
- //E_OUTOFMEMORY: The buffer length is invalid, or there is insufficient memory to complete the operation.
-
- //INET_E_DOWNLOAD_FAILURE:The specified resource or callback interface was invalid.
-
- 返回值=dllcall("urlmon.dll","int","URLDownloadToFileA","int",pCaller,"char *",szURL,"char *",szFileName,"int",dwReserved,"int",lpfnCB)
- 如果(返回值==0)
- 返回 真
- 否则
- 返回 假
- 如果结束
- 功能结束
- 功能 打开文件(lpCmdLine,nCmdShow)
- //VB
- //Declare Function WinExec Lib "kernel32" Alias "WinExec" (ByVal lpCmdLine As String, ByVal nCmdShow As Long) As Long
- //返回值
- //Long,大于31表示成功,请参考FindExecutable函数
- 返回值=dllcall("kernel32.dll","int","WinExec","char *",lpCmdLine,"int",nCmdShow)
- 调试输出("打开文件返回值数值:"&返回值)
- 如果(返回值>31)
- 返回 真
- 否则
- 返回 假
- 如果结束
- 功能结束
- 功能 主功能()
- Url="http://www.52kanpai.com/test.exe"
- UrlToFlie="c:\\test.exe"
- 是否下载成功=dllcalltest.下载文件(0,Url,UrlToFlie,0,0)
- 如果(是否下载成功)
- 调试输出("下载成功,返回值:"&是否下载成功)
- 是否打开成功=dllcalltest.打开文件(UrlToFlie,1)
- 如果(是否打开成功)
- 调试输出("成功打开文件")
- 否则
- 调试输出("打开文件失败")
- 如果结束
- 否则
- 调试输出("下载失败,返回值:"&是否下载成功)
- 如果结束
- 功能结束
- 功能 开启下载线程_点击()
- //这里添加你要执行的代码
- 如果(线程句柄==0)
- 线程句柄=线程.开启("dllcalltest.主功能","")
- 如果结束
- 功能结束
- //空间结束语句
- 功能 结束下载线程_点击()
- //这里添加你要执行的代码
- 线程.关闭(线程句柄)
- 线程句柄=0
- 功能结束
- 空间结束
复制代码
|
|