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
--------------------------------------

PAIP。JS调用DLL的解决方案相关推荐

  1. html css js调用dll,node调用dll 方法,及详细步骤

    Node – Dll Node调用DLL 1.DLL介绍 DLL(Dynamic Link Library)文件为动态链接库文件,又称"应用程序拓展",是软件文件类型.在Windo ...

  2. Node.js 调用 dll动态库 以华旭身份证阅读器为例

    需求来源 由于使用Electron使用开发桌面端,同时也需要连接硬件设备,单纯使用js方法无法完成,需要通过Node调用dll动态库方式完成. 版本说明: node v12.18.3 (32位) np ...

  3. html css js调用dll,js调用Activex的dll

    $(document).ready(function() { document.getElementById("SetParaBtn").click(); });functionS ...

  4. Node.js调用C#代码

    https://github.com/tjanczuk/edge 运行的时候会报 System.DllnotfoundException 无法加载node.dll,要把\packages\Edge.j ...

  5. node.js调用ejs模板,在浏览器上打印出ejs模板内代码的解决方案

    2019独角兽企业重金招聘Python工程师标准>>> 今天遇到一个非常奇葩的问题,node.js调用ejs模板的时候,在浏览器端居然把此模板内的所有代码都打印出来了,当时我和我的小 ...

  6. Electron9.x_Vue_调用DLL库

    本文主要介绍在 Electron9.x 中,使用ffi-napi,ref-array-napi,ref-napi 加载 Windows 动态链接库,并在Vue 渲染进程中使用.使用过程中会遇到一系列的 ...

  7. js调用后台方法与后台调用js方法

    JS调用后台方法大全 javascript函数中执行C#代码中的函数: 方法一:1.首先建立一个按钮,在后台将调用或处理的内容写入button_click中; 2.在前台写一个js函数,内容为docu ...

  8. 转【C#调用DLL的几种方法,包括C#调用C\C++\C#DLL】

    C#中dll调用方法 一.      DLL与应用程序 动态链接库(也称为DLL,即为"Dynamic Link Library"的缩写)是Microsoft Windows最重要 ...

  9. C#程序实现动态调用DLL的研究(转)

    摘 要:在<csdn开发高手>2004年第03期中的<化功大法--将DLL嵌入EXE>一文,介绍了如何把一个动态链接库作为一个资源嵌入到可执行文件,在可执行文件运行时,自动从资 ...

  10. VS2013环境生成和调用DLL动态链接库

    创建动态库方法: 创建动态库是生成 .dll .lib 两个个文件 文件 -> 新建 -> 项目 -> win32控制台应用程序 项目名称:DLLGenerator 应用程序类型:D ...

最新文章

  1. 渗透测试流程(单台服务器)
  2. 如何配置一个Oracle服务
  3. 从GAN到WGAN到LipschitzGA
  4. 软件设计原则:内聚、耦合有哪几种类型?内聚度、耦合度如何比较?
  5. JS常用的设计模式(2)——简单工厂模式
  6. DKIM标准:对付网络钓鱼的新武器
  7. 084 HBase的数据迁移(含HDFS的数据迁移)
  8. SENet(ILSVRC2017-最后一个冠军)
  9. Q98:三角形网格细分Bezier曲面时,注意三角形顶点的顺序(确保其对应的法向量向外)
  10. pb 修改数据窗口种指定字段位置_如何在PB数据窗口中修改数据设置数据窗口的更新属性...
  11. 迅为IMX6ULL开发板Linux下电容触摸屏实验-实验程序编写
  12. nodejs 遍历json数据_异步-使用node.js遍历JSON
  13. Spring+Struts2+Hibernate概述
  14. 电脑qq语音连不到服务器,我的电脑不能语音聊天是怎么回事?每次qq上都提示:您的麦克风没有声音?我检查了电脑设置没问题...
  15. 八段数码管数字显示实验c语言,八段数码管显示实验.doc
  16. k8s---adm构建
  17. C语言实现之数字中的最大数字组合
  18. 杜国光博士,基于视觉的机器人抓取--物体定位,位姿估计到抓取估计课堂笔记
  19. 通过idea的Git使主干项目合并到分支中(主干同步到分支)
  20. KDRB-ZC变压器绕组阻抗测试仪

热门文章

  1. C# 创建、读取Excel公式
  2. Netty5+Jboss(Marshalling)完成对象序列化传输
  3. Windows安装office出现1046错误
  4. 投票系统显示结果--jQuery插件
  5. 6、tcp_wrapper
  6. ImportError: No module named MySQLdb
  7. AARRR:数据运营模型
  8. Leetcode 20. Valid Parentheses
  9. 第三周 3.13-3.19
  10. javascript 对象遍历