PAIP。JS调用DLL的解决方案

PAIP。JS调用DLL的解决方案 




作者Attilax ,  EMAIL:1466519819@qq.com 
来源:attilax的专栏
地址:http://blog.csdn.net/attilax






1.使用COM对象APIWARPPER.DLL...
--------------------------------
先注册.
regsvr32 ApiWrapper.dll




然后...






const MAX_CLASS_NAME=260


Set fn = CreateObject("ApiWrapper")
fn.DllImport "user32","RealGetWindowClassA","r=l|f=s|i=lpl"
fn.DllImport "user32","FindWindowExA","f=s|r=l|i=llss"
fn.DllImport "user32","IsWindow","f=s|r=l|i=l"
fn.CScriptMode






szClass=fn.ArrayCreate(MAX_CLASS_NAME)








Function JumpWeb
dim hwnd:hwnd=0
do
hwnd=fn.FindWindowExA(0,hwnd,0,0)
if hwnd=0 then exit do

r=fn.RealGetWindowClassA(hwnd,szClass,MAX_CLASS_NAME)
if fn.A2W(szClass)="IEFrame" then
WScript.Echo hwnd & "=" & fn.IsWindow(hwnd)
end if
loop
End Function




do
WScript.Echo "----------------------------"
JumpWeb
WScript.Sleep 1000
loop








'*********************** f 的定义(函数调用约定) *****************************************
'     m -> DC_MICROSOFT      b -> DC_BORLAND
'     s -> DC_CALL_STD       c -> DC_CALL_CDECL
'     4 -> DC_RETVAL_MATH4   8 -> DC_RETVAL_MATH8
'*********************** i 和 r 的定义(参数类型) ****************************************
'     c -> signed char    t -> short          s -> string        w -> wide string 
'     l -> long           u -> unsigned int   f -> 4 byte real   d -> 8 byte real
'     h -> HANDLE         p -> PVOID          a -> IDispatch*    k -> IUnknown* or PVOID
'****************************************************************************************


Set fn = CreateObject("ApiWrapper")
fn.DllImport "user32","MessageBoxW","r=l|f=s|i=lwwl"
fn.DllImport "user32","MessageBoxA","f=s|r=l|i=lssl"


WScript.Echo fn.Help


msg = "Hello world !"


if 1=fn.MessageBoxW(0,msg,3.14 ,1) then fn.MessageBoxA 0,msg,0,0




2.通过CLI接口调用AHK的DllCall
--------------------------------------









原文地址:https://www.cnblogs.com/attilax/p/15199616.html