मैं Process.Start()
का उपयोग करके अपने प्रोग्राम से नोटपैड खोलता हूं लेकिन नया खोला गया नोटपैड स्क्रीन को कवर करता है। लेकिन मैं चाहता हूं कि मेरा आवेदन अपना ध्यान बनाए रखे।एक प्रक्रिया (नोटपैड) खोलने के बाद फोकस को वापस कैसे सेट करें?
मैं इसी तरह (समान Process.Start का उपयोग) एमएस एक्सेल और वर्ड लेकिन वापस अपने सभी मैं लिखने की ज़रूरत फार्म के लिए ध्यान केंद्रित पाने के लिए खोल रहा है:
this.Focus();
लेकिन नोटपैड के साथ मोड़: मैं नोटपैड खोलने (और इस तरह की सभी अन्य प्रक्रियाएं)
Process process = new Process();
process.StartInfo.UseShellExecute = true;
process.EnableRaisingEvents = true;
process.StartInfo.FileName = @"abc.log";
process.Start();
अब नोटपैड फोकस लेता है।
मैं इन की कोशिश की:
this.Activate()
,this.Focus()
, अनावश्यक एक और लंबी समाधान here से मिला[DllImport("user32.dll", CharSet=CharSet.Auto, ExactSpelling=true)] public static extern IntPtr SetFocus(HandleRef hWnd); { IntPtr hWnd = myProcess.Handle; SetFocus(new HandleRef(null, hWnd)); }
[DllImport("User32")] private static extern int SetForegroundWindow(IntPtr hwnd); [DllImportAttribute("User32.DLL")] private static extern bool ShowWindow(IntPtr hWnd, int nCmdShow); private const int SW_SHOW = 5; private const int SW_MINIMIZE = 6; private const int SW_RESTORE = 9; { ShowWindow(Process.GetCurrentProcess().MainWindowHandle, SW_RESTORE); SetForegroundWindow(Process.GetCurrentProcess().MainWindowHandle); }
उल्लेख करने के लिए।
जो अभी भी नोटपैड पर ध्यान केंद्रित करता है। खिड़की पर ध्यान केंद्रित करना इतना मुश्किल क्यों है, वह भी एप्लिकेशन की अपनी खिड़की?
संपादित करें: सबसे अच्छा मैं नोटपैड को कम कर सकता हूं, लेकिन यह अभी भी उपरोक्त सभी कोडों को आजमाने के बाद फ़ॉर्म पर ध्यान नहीं देगा। नोटपैड कम से कम खुलता है, लेकिन फोकस अभी भी नोटपैड पर होगा (कुछ ऐसा जो कभी-कभी हम विंडोज एक्सपी में देखते हैं) और फॉर्म फोकस से बाहर हो जाएगा।
यह ठीक शुरू करने के लिए है एक न्यूनतम राज्य में खिड़की? – NoviceProgrammer
हाँ, यह ठीक है, लेकिन यह अभी भी काम नहीं करेगा। मैं इसे अपने प्रश्न में अपडेट करूंगा – nawfal
क्या आपने यह कोशिश की है? http://stackoverflow.com/questions/2121911/starting-a-process-without-stealing-focus-c – NoviceProgrammer