日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

nodejs 调用win32 api

發布時間:2023/12/15 综合教程 30 生活家
生活随笔 收集整理的這篇文章主要介紹了 nodejs 调用win32 api 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

win32 api
也可以試試我寫的 node-windows-x64 庫

>node -v
v12.16.1

>npm install -g node-gyp
>npm i @saleae/ffi

>node test.js
1

test.js

const ffi = require("@saleae/ffi");

// Convert JSString to CString
function TEXT(text) {
  return Buffer.from(`${text}`, "ucs2");
}

// Import user32
const user32 = new ffi.Library("user32", {
  // 返回值類型,參數列表類型
  MessageBoxW: ["int32", ["int32", "string", "string", "int32"]],
  SetCursorPos: ["bool", ["int32", "int32"]],
});

const OK_or_Cancel = user32.MessageBoxW(0, TEXT("Hello from Node.js!"), TEXT("Hello, World!"), 1);

console.log(OK_or_Cancel);

// user32.SetCursorPos(0, 0);

獲取窗口句柄

const ffi = require("@saleae/ffi");

// Convert JSString to CString
function TEXT(text) {
  return Buffer.from(`${text}`, "ucs2");
}

// Import user32
const user32 = new ffi.Library("user32", {
  FindWindowW: ["int32", ["string", "string"]],
});

var hwnd = user32.FindWindowW(TEXT('Progman'), null);
console.log(hwnd); // 65814
console.log(hwnd.toString(16)); // 10116


如果你熟練win32 api 知道自己在做什么,你可以使用 node-windows-x64

install

λ npm i node-windows-x64

調用 MessageBoxA 示例

import { node_windows_x64 as nw } from "node-windows-x64";

nw["user32.messageboxa"](0, "body", "title", 2);

總結

以上是生活随笔為你收集整理的nodejs 调用win32 api的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。