Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
夜猫逐梦
MyOpen
提交
34b99509
M
MyOpen
项目概览
夜猫逐梦
/
MyOpen
通知
2
Star
0
Fork
1
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
M
MyOpen
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
34b99509
编写于
10月 23, 2023
作者:
K
Knine
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
node-win32-api
上级
a1b22bcb
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
166 addition
and
3 deletion
+166
-3
electron/package-lock.json
electron/package-lock.json
+125
-1
electron/package.json
electron/package.json
+5
-2
electron/win32-api.js
electron/win32-api.js
+36
-0
未找到文件。
electron/package-lock.json
浏览文件 @
34b99509
...
@@ -9,7 +9,19 @@
...
@@ -9,7 +9,19 @@
"version"
:
"1.0.0"
,
"version"
:
"1.0.0"
,
"license"
:
"ISC"
,
"license"
:
"ISC"
,
"dependencies"
:
{
"dependencies"
:
{
"ffi-napi"
:
"^4.0.3"
"ffi-napi"
:
"^4.0.3"
,
"win32-api"
:
"^20.4.1"
}
},
"node_modules/@waiting/shared-types"
:
{
"version"
:
"20.13.0"
,
"resolved"
:
"https://registry.npmmirror.com/@waiting/shared-types/-/shared-types-20.13.0.tgz"
,
"integrity"
:
"sha512-OiMocNStZbtkf8LEwrbtAuiI3WtwXo+Aoqhz6jP6i9KSogNDsEMccJRz5wq+gVeO2qEcymn5J2NyK7vR/icgBg=="
,
"engines"
:
{
"node"
:
">=14.16.0"
},
"peerDependencies"
:
{
"typescript"
:
">=4.7.4"
}
}
},
},
"node_modules/debug"
:
{
"node_modules/debug"
:
{
...
@@ -108,9 +120,79 @@
...
@@ -108,9 +120,79 @@
"dependencies"
:
{
"dependencies"
:
{
"ms"
:
"^2.1.1"
"ms"
:
"^2.1.1"
}
}
},
"node_modules/ref-union-di"
:
{
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npmmirror.com/ref-union-di/-/ref-union-di-1.0.1.tgz"
,
"integrity"
:
"sha512-JWSF2BwNVtCgmEfoDGMh8S1KO07oq+T8L7cBHwcsmQmeXDZd9JNlrxU+ebSHs+jsf0qrqFFWXMCmj94Tcl26TA=="
,
"peer"
:
true
,
"dependencies"
:
{
"debug"
:
"^3.1.0"
}
},
"node_modules/ref-union-di/node_modules/debug"
:
{
"version"
:
"3.2.7"
,
"resolved"
:
"https://registry.npmmirror.com/debug/-/debug-3.2.7.tgz"
,
"integrity"
:
"sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ=="
,
"peer"
:
true
,
"dependencies"
:
{
"ms"
:
"^2.1.1"
}
},
"node_modules/typescript"
:
{
"version"
:
"5.2.2"
,
"resolved"
:
"https://registry.npmmirror.com/typescript/-/typescript-5.2.2.tgz"
,
"integrity"
:
"sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w=="
,
"peer"
:
true
,
"bin"
:
{
"tsc"
:
"bin/tsc"
,
"tsserver"
:
"bin/tsserver"
},
"engines"
:
{
"node"
:
">=14.17"
}
},
"node_modules/win32-api"
:
{
"version"
:
"20.4.1"
,
"resolved"
:
"https://registry.npmmirror.com/win32-api/-/win32-api-20.4.1.tgz"
,
"integrity"
:
"sha512-STbeoFsVndgc5eMmXcvmuuoWM2S8mOh/0V2w/gmYAFSI+FPoYDjGhvntrvhvoFMec8AC2ReI2LSkb8KGyEqhPQ=="
,
"dependencies"
:
{
"win32-def"
:
"^20.4.1"
},
"engines"
:
{
"node"
:
">=14.15.0"
},
"peerDependencies"
:
{
"ffi-napi"
:
"^4.0.3"
,
"ref-napi"
:
"^3.0.3"
,
"ref-struct-di"
:
"^1.1.1"
,
"ref-union-di"
:
"^1.0.1"
}
},
"node_modules/win32-def"
:
{
"version"
:
"20.4.1"
,
"resolved"
:
"https://registry.npmmirror.com/win32-def/-/win32-def-20.4.1.tgz"
,
"integrity"
:
"sha512-d2y6pN/ebLU4Vsu4JepzeEtdWTVcAkJIiAFZiPjT/mjac2YYvhM4jM2bGKdt8usJNxAI2o7YiF0ytdVDQO6Qdg=="
,
"dependencies"
:
{
"@waiting/shared-types"
:
"^20.11.0"
},
"engines"
:
{
"node"
:
">=14.15.0"
},
"peerDependencies"
:
{
"ref-napi"
:
"^3.0.3"
,
"ref-struct-di"
:
"^1.1.1"
,
"ref-union-di"
:
"^1.0.1"
}
}
}
},
},
"dependencies"
:
{
"dependencies"
:
{
"@waiting/shared-types"
:
{
"version"
:
"20.13.0"
,
"resolved"
:
"https://registry.npmmirror.com/@waiting/shared-types/-/shared-types-20.13.0.tgz"
,
"integrity"
:
"sha512-OiMocNStZbtkf8LEwrbtAuiI3WtwXo+Aoqhz6jP6i9KSogNDsEMccJRz5wq+gVeO2qEcymn5J2NyK7vR/icgBg=="
,
"requires"
:
{}
},
"debug"
:
{
"debug"
:
{
"version"
:
"4.3.4"
,
"version"
:
"4.3.4"
,
"resolved"
:
"https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz"
,
"resolved"
:
"https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz"
,
...
@@ -188,6 +270,48 @@
...
@@ -188,6 +270,48 @@
}
}
}
}
}
}
},
"ref-union-di"
:
{
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npmmirror.com/ref-union-di/-/ref-union-di-1.0.1.tgz"
,
"integrity"
:
"sha512-JWSF2BwNVtCgmEfoDGMh8S1KO07oq+T8L7cBHwcsmQmeXDZd9JNlrxU+ebSHs+jsf0qrqFFWXMCmj94Tcl26TA=="
,
"peer"
:
true
,
"requires"
:
{
"debug"
:
"^3.1.0"
},
"dependencies"
:
{
"debug"
:
{
"version"
:
"3.2.7"
,
"resolved"
:
"https://registry.npmmirror.com/debug/-/debug-3.2.7.tgz"
,
"integrity"
:
"sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ=="
,
"peer"
:
true
,
"requires"
:
{
"ms"
:
"^2.1.1"
}
}
}
},
"typescript"
:
{
"version"
:
"5.2.2"
,
"resolved"
:
"https://registry.npmmirror.com/typescript/-/typescript-5.2.2.tgz"
,
"integrity"
:
"sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w=="
,
"peer"
:
true
},
"win32-api"
:
{
"version"
:
"20.4.1"
,
"resolved"
:
"https://registry.npmmirror.com/win32-api/-/win32-api-20.4.1.tgz"
,
"integrity"
:
"sha512-STbeoFsVndgc5eMmXcvmuuoWM2S8mOh/0V2w/gmYAFSI+FPoYDjGhvntrvhvoFMec8AC2ReI2LSkb8KGyEqhPQ=="
,
"requires"
:
{
"win32-def"
:
"^20.4.1"
}
},
"win32-def"
:
{
"version"
:
"20.4.1"
,
"resolved"
:
"https://registry.npmmirror.com/win32-def/-/win32-def-20.4.1.tgz"
,
"integrity"
:
"sha512-d2y6pN/ebLU4Vsu4JepzeEtdWTVcAkJIiAFZiPjT/mjac2YYvhM4jM2bGKdt8usJNxAI2o7YiF0ytdVDQO6Qdg=="
,
"requires"
:
{
"@waiting/shared-types"
:
"^20.11.0"
}
}
}
}
}
}
}
electron/package.json
浏览文件 @
34b99509
...
@@ -3,15 +3,18 @@
...
@@ -3,15 +3,18 @@
"version"
:
"1.0.0"
,
"version"
:
"1.0.0"
,
"description"
:
"todo"
,
"description"
:
"todo"
,
"main"
:
"index.js"
,
"main"
:
"index.js"
,
"type"
:
"module"
,
"directories"
:
{
"directories"
:
{
"doc"
:
"doc"
"doc"
:
"doc"
},
},
"scripts"
:
{
"scripts"
:
{
"test"
:
"echo
\"
Error: no test specified
\"
&& exit 1"
"test"
:
"echo
\"
Error: no test specified
\"
&& exit 1"
,
"foo2"
:
"node win32-api.js"
},
},
"author"
:
"khz"
,
"author"
:
"khz"
,
"license"
:
"ISC"
,
"license"
:
"ISC"
,
"dependencies"
:
{
"dependencies"
:
{
"ffi-napi"
:
"^4.0.3"
"ffi-napi"
:
"^4.0.3"
,
"win32-api"
:
"^20.4.1"
}
}
}
}
electron/win32-api.js
0 → 100644
浏览文件 @
34b99509
// https://github.com/waitingsong/node-win32-api/blob/main/README.zh-CN.md
// **查询计算器程序窗口句柄(需要先手动运行一个计算器)**
/**
* 导出的模块:
* Comctl32: Comctl32 from lib/comctl32/api
* Kernel32: kernel32 from lib/kernel32/api
* User32: user32 from lib/user32/api
*/
import
{
Kernel32
,
User32
}
from
'
win32-api/promise
'
import
ref
from
'
ref-napi
'
const
knl32
=
Kernel32
.
load
()
const
user32
=
User32
.
load
()
// user32.MessageBoxW("0","0",0,0)
// const user32 = load(['FindWindowExW']) // load only one api defined in lib/{dll}/api from user32.dll
// const title = 'Calculator\0' // null-terminated string
const
title
=
'
计算器
\
0
'
// null-terminated string 字符串必须以\0即null结尾!
const
lpszWindow
=
Buffer
.
from
(
title
,
'
ucs2
'
)
const
hWnd
=
await
user32
.
FindWindowExW
(
0
,
0
,
null
,
lpszWindow
)
// assert((typeof hWnd === 'string' && hWnd.length > 0) || hWnd > 0)
console
.
log
(
'
buf:
'
,
hWnd
)
user32
.
CloseWindow
(
hWnd
)
// // Change title of the Calculator
// const res = await user32.SetWindowTextW(hWnd, Buffer.from('Node-Calculator\0', 'ucs2'))
// if ( ! res) {
// console.log('SetWindowTextW failed')
// }
// else {
// console.log('window title changed')
// }
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录