@@ -39,6 +39,11 @@ Napi::Value ListAudioWindows(const Napi::CallbackInfo& info) {
3939 obj.Set (" title" , ToNapiString (env, w.title ));
4040 obj.Set (" processName" , ToNapiString (env, w.process_name ));
4141 obj.Set (" rootProcessName" , ToNapiString (env, w.root_process_name ));
42+ obj.Set (" left" , Napi::Number::New (env, w.left ));
43+ obj.Set (" top" , Napi::Number::New (env, w.top ));
44+ obj.Set (" width" , Napi::Number::New (env, w.width ));
45+ obj.Set (" height" , Napi::Number::New (env, w.height ));
46+ obj.Set (" alwaysOnTop" , Napi::Boolean::New (env, w.always_on_top ));
4247 arr.Set (i, obj);
4348 }
4449 return arr;
@@ -116,6 +121,13 @@ Napi::Value IsSupported(const Napi::CallbackInfo& info) {
116121 return Napi::Boolean::New (info.Env (), process_audio::IsProcessLoopbackSupported ());
117122}
118123
124+ /* * getForegroundHwnd(): 返回当前前台窗口 hwnd 字符串;无则返回空串 */
125+ Napi::Value GetForegroundHwnd (const Napi::CallbackInfo& info) {
126+ const uint64_t hwnd = process_audio::GetForegroundWindowHwnd ();
127+ if (hwnd == 0 ) return Napi::String::New (info.Env (), " " );
128+ return Napi::String::New (info.Env (), std::to_string (hwnd));
129+ }
130+
119131// ================================================================
120132// 流式采集(生产入口)
121133// ================================================================
@@ -239,6 +251,7 @@ Napi::Object Init(Napi::Env env, Napi::Object exports) {
239251 exports.Set (" captureToWav" , Napi::Function::New (env, CaptureToWav));
240252 exports.Set (" isProcessLoopbackSupported" ,
241253 Napi::Function::New (env, IsSupported));
254+ exports.Set (" getForegroundHwnd" , Napi::Function::New (env, GetForegroundHwnd));
242255 exports.Set (" startCapture" , Napi::Function::New (env, StartCapture));
243256 exports.Set (" stopCapture" , Napi::Function::New (env, StopCapture));
244257 return exports;
0 commit comments