से विंडोज़ एप्लिकेशन पर फोकस सेट करना मेरे पास एक नोडजेएस एप्लीकेशन है जो विंडोज़ पर चल रहा है जिसे उपयोगकर्ता को एक निश्चित कार्रवाई करते समय एक चल रहे विंडोज एप्लिकेशन पर फोकस प्रदर्शित करने और स्विच करने की आवश्यकता होती है। मैं विंडोज एपीआई कॉल करने के लिए नोड-एफएफआई पैकेज का उपयोग कर रहा हूं लेकिन इसे लगातार ध्यान केंद्रित करने में सक्षम नहीं हूं। यहां वह कोड है जिसका मैं उपयोग कर रहा हूं। यह सफलतापूर्वक एक चल कैलक्यूलेटर एप्लिकेशन के 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);
आदेशों का यह मिश्रण सबसे उनके जो मेरे द्वारा की कोशिश की है की लगातार काम करने लगता है, लेकिन यह हर समय काम नहीं करता है। यदि खिड़की मैं फोकस स्विच करना चाहता हूं तो इसे कम से कम शीर्ष पर पॉप किया जाएगा। यदि खिड़की को कम नहीं किया गया है, लेकिन सिर्फ एक और विंडो के पीछे, यह केवल intermittently दिखाया जाएगा। मैं निश्चित रूप से आदेश के शीर्ष पर जाने के लिए चलने वाले विंडोज एप्लिकेशन को प्राप्त करने के लिए कैसे सुनिश्चित नहीं हूं, भले ही यह वर्तमान में कम हो।
आप दोनों कहते हैं कि यह हमेशा कम से कम खिड़कियों के लिए काम करता है, साथ ही यह लगातार काम नहीं करता है। कोनसा वाला सत्य है? – IInspectable
आप त्रुटियों की जांच नहीं करते हैं। SetForegroundWindow विशेष रूप से शर्तों की सूची के लिए दस्तावेज़ पढ़ें। –
@IInspectable यह हमेशा शीर्ष पर एक न्यूनतम विंडो लाएगा। यदि खिड़की को कम नहीं किया गया है, लेकिन केवल एक और खिड़की के पीछे है, तो यह केवल इसे शीर्ष पर ले जाएगा। – KeithTheBiped