Articles of winapi

节点js,%1不是有效的Win32应用程序,js-bson:未能加载c ++ bson扩展,windows

我做了npm安装和节点app.js. 那就说明了 [错误:%1不是有效的Win32应用程序; C:… \ mongojs ….. \ bson.node] js-bson:无法加载c ++ bson扩展,使用纯JS版本。 我不确定这只是一个错误还是两个单独的错误。 另外,如何解决这个问题?

获取Node js中的浏览器选项卡标题

我试图在浏览器中获得标签的标题,例如Google Chrome,在我的Node应用程序中。 类似于Win32 API中的GetWindowText()。 如果可能,它需要适用于多个浏览器 目前在Node中,我可以检索当前进程的列表,但是我无法find任何能够提供该进程的详细信息,相当于当您打开任务pipe理器并单击Google Chrome进程上的展开箭头时,为您提供了选项卡的名称。 我尝试了npm中的一些节点模块,但是他们似乎没有把我需要的信息返回给我。 我也在这里看过类似的问题,但是我没有发现任何与我在这里问的相似的东西。 所以如果任何人都可以指出我正确的方向,我将不胜感激, 谢谢

是否有可能在Win32应用程序中调用Node.js库,反之亦然?

Node.js应用程序和Win32二进制文件是两个不同的世界。 我想知道是否有方法直接从Win32进程(进程内调用)访问任何Node.js库或函数? 下面的问题应该参考我如何使用node.js中的C ++库? 同样,Node.js应用程序可以调用从Windows DLL导出的函数吗?

如何使用ffi将WinApi函数加载到Node.js中?

有一个名为ffi的库,允许用户加载系统本地库和调用它们中的函数。 使用他们的例子,我尝试使用位于User32.dll中的MessageBox函数: var ref = require('ref'); var ffi = require('ffi'); var Struct = require('ref-struct'); // Define Winapi types according to // https://msdn.microsoft.com/en-us/library/windows/desktop/aa383751%28v=vs.85%29.aspx var winapi = {}; winapi.void = ref.types.void; winapi.PVOID = ref.refType(winapi.void); winapi.HANDLE = winapi.PVOID; winapi.HWND = winapi.HANDLE; winapi.WCHAR = ref.types.char; winapi.LPCWSTR = ref.types.CString; winapi.UINT = ref.types.uint; // Try to load message box function as […]

将焦点从Node-JS设置到Windows应用程序

我有一个在Windows上运行的NodeJS应用程序,当用户执行特定操作时,需要显示并将焦点切换到正在运行的Windows应用程序。 我一直在使用node-ffi包进行windows API调用,但一直无法使焦点切换。 这是我正在使用的代码。 它成功地得到了正在运行的Calculator应用程序的HWND,但是随后尝试将焦点切换到该HWND,并且它仅在有时才起作用: var ffi = require('ffi'); var intPtr = ref.refType('long'); var user32 = new ffi.Library('user32', { 'FindWindowA': ['long', [ 'string', 'string']], 'SetForegroundWindow': ['bool', ['long']], 'BringWindowToTop': ['bool', ['long']], }); var winToSetOnTop = user32.FindWindowA(null,"calculator") var res = user32.ShowWindow(winToSetOnTop, 9); res = user32.SetForegroundWindow(winToSetOnTop); res = user32.BringWindowToTop(winToSetOnTop); 这些命令的组合似乎与我所尝试过的最一致,但并不一直工作。 如果我想要将焦点切换到最小的窗口,它将始终popup到顶部。 如果窗口不是最小化的,而是在另一个窗口的后面,它将只会间歇显示。 我不知道如何始终如一地让运行的Windows应用程序始终移动到订单的顶部,即使它当前已经最小化了。

如何在nodejs插件中抽取窗口消息?

在一个Windows nodejs插件中,我创build了一个用于接收消息的窗口。 Handle<Value> MakeMessageWindow(const Arguments &args) { // exposed to JS … CreateWindow(L"ClassName", NULL, 0, 0, 0, 0, 0, HWND_MESSAGE, 0, 0, 0); … } 我有一个wndproc函数。 Local<Function> wndProc; LRESULT APIENTRY WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { // pack up the arguments into Local<Value> argv wndProc->Call(Context::GetCurrent()->Global(), 3, argv); } 现在我需要抽取消息。 通常情况下,你会做类似的事情 MSG msg; […]

从node.js msg调用Windows API

我是新的节点,我有这个简单的Node.js服务器在Windows上工作 服务器代码 var ws = require("websocket-server"); var server = ws.createServer(); server.addListener("connection", function(client){ console.log("new connection"); client.send("aaaaaa"); client.addListener("message", function(msg){ console.log(msg); }); }); server.listen(8080); 我只是想调用windows API insted的行 console.log(msg); 有没有办法做到这一点,而不使用外部库 有任何想法吗?

为什么我不能在windows上的nodejs中终止我的subprocess?

exec = require('child_process').exec; child = exec('node child.js'); child.stdout.pipe(process.stdout); child.kill('SIGKILL'); function wait() { setTimeout(wait, 1000); child.kill('SIGKILL'); } wait(); 上面的代码不起作用。 孩子开始,并将继续无限期地写输出。 我无法弄清楚如何杀死这个孩子的过程。 我在Windows 7中运行节点v0.11.9。我知道Windows不使用POSIX信号,但是发送'WM_QUIT'会导致exception。 我的最佳解决scheme是在stdin上设置一个事件协议?

Node-webkit WinAPI

我正在为Windows(Vista,7,…)开发简单的node-webkit应用程序,我需要使用一些WinAPI函数,特别是RegisterHotKey和SendInput来绑定系统范围的热键,并根据这些热键进行击键。 没有node-webkit提供的API,所以我想用node-ffi来调用这个函数。 我是WinAPI开发新手,所以我已经阅读了一些MSDN手册,但是发现大部分示例都创build窗口,消息循环,消息处理过程等等。 所以我不太明白,如何实现从node-webkit正确调用WinAPI,而不创build单独的窗口? Node-ffi教程不包括这种情况,所以我find了节点Windows库,但似乎只是通过节点来实现Windows应用程序。 有没有办法实现本地调用而不创buildWindows应用程序? 什么是正确的方法来做到这一点?