261869247 发表于 2010-3-30 02:42:28

[已解决] 关于调用DLL问题

本帖最后由 261869247 于 2010-3-30 15:19 编辑

代码在下面
请知道的朋友指点下
就是点击打开输入法
运行CSMate.exe这个程序
但是这个程序有个DLL 文件 请问如何调用#include <GUIConstants.au3>
#include <Process.au3>

#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("test", 251, 81, 297, 252)
$Button1 = GUICtrlCreateButton("打开输入法", 20, 8, 75, 25, 0)


Fileinstall("CSMate.dll",@tempdir&"CSMate.dll",1)
Fileinstall("CSMate.exe",@tempdir&"CSMate.exe",1)

GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit

Case $Button1
RunWait(@tempdir&"CSMate.exe")

EndSwitch
WEnd

Func Quit()
        FileDelete(@tempdir&"CSMate.dll")
        FileDelete(@tempdir&"CSMate.exe")
Exit
EndFunc

261869247 发表于 2010-3-30 02:44:20

热心的网点指点下 刚学没几天 呵呵!

lainline 发表于 2010-3-30 05:04:40

本帖最后由 lainline 于 2010-3-30 07:38 编辑

CSMate.DLL是个钩子
用来设置热键autoit 有这功能 而且CSMate.exe自己会调用它
如果一定要   
用IDA打开CSMate.dll
看输出函数伪代码

bool InstallHook

__int16 __cdecl SetHotKeys(__int16 a1, __int16 a2, __int16 a3, __int16 a4, __int16 a5)

bool UninstallHook

再往下就是困难的猜谜猜测各个参数定义实在很费时间我就不弄了

动态调试下断点可以快些弄清参数定义

xz00311 发表于 2010-3-30 10:42:38

高手终于出现了正好我也要写这样的程序

261869247 发表于 2010-3-30 13:24:57

本帖最后由 261869247 于 2010-3-30 13:35 编辑

CSMate.DLL是个钩子
用来设置热键autoit 有这功能 而且CSMate.exe自己会调用它
如果一定要   
用IDA ...
lainline 发表于 2010-3-30 05:04 http://www.autoitx.com/images/common/back.gif

CSmate.exe 和 CSmare.dll
在打开的程序的时候就释放到临时文件夹了
RunWait(@tempdir&"CSMate.exe")
这样能运行临时文件夹的CSMate.exe
但是提示未找到CSMate.dll
要怎么写才能同时调用临时文件夹里面的CSMate.dll文件呢
能帮帮吗

afan 发表于 2010-3-30 13:53:19

将所有的
@tempdir&"CSMate.dll"
@tempdir&"CSMate.exe"
改为
@tempdir&"\CSMate.dll"
@tempdir&"\CSMate.exe"

261869247 发表于 2010-3-30 13:58:42

非常感谢 测试下

261869247 发表于 2010-3-30 14:00:28

非常感谢 已经可以了 嘿嘿 不要笑我啊 我没什么基础的 哈哈
正在努力学习中

afan 发表于 2010-3-30 15:17:35

回复 8# 261869247


    记得修改帖子标题加注已解决字样~

stabyou 发表于 2012-3-7 11:52:37

来了解一下
页: [1]
查看完整版本: [已解决] 关于调用DLL问题