在electron中使用koffi库怎么调用windowapi的AccSetRunningUtilityState函数?
AccSetRunningUtilityStat函数会把除特定窗口外的系统声音变小,接受3个参数,第一个参数需要传入当前窗口的句柄。我用的windowapi的GetForegroundWindow函数,得到的是一串6位长度的数字。但传入AccSetRunningUtilityStat函数后没有生效,包括当前窗口的所有系统声音都变小了。
import koffi from 'koffi'
const oleacc = koffi.load('oleacc.dll');
const user32 = koffi.load('user32.dll');
const getHwnd = user32.func('int __stdcall GetForegroundWindow()');
const hwnd = getHwnd();
const voiceChange = oleacc.func('int __stdcall AccSetRunningUtilityState(int hwndApp, uint dwUtilityStateMask, uint dwUtilityState)')
voiceChange(hwnd,...)
调用voiceChange是生效的,但是所有声音都变小了(应该是hwnd的问题)。
对c++没什么了解,koffi文档只看懂了函数怎么调用。这里的hwnd类型是不是不应该是数字,而是一个指针。如果是的话,用koffi应该怎么包装它呢?