2011-06-22 14 views
7

मैं एक ऐप बनाने की कोशिश कर रहा हूं जो एक भूकंप शैली ड्रॉप-डाउन एचयूडी कंसोल देता है। मैं इसे खिड़की को दिखाने और छिपाने के लिए प्राप्त कर सकता हूं, लेकिन मुझे यह पता नहीं लगाया जा सकता है कि इसे दिखाने के बाद इसे सक्रिय विंडो के रूप में कैसे सेट किया जाए। खिड़की को दिखाने और छिपाने के लिए मैं विन एपीआई कॉल का उपयोग कर रहा हूं। मैंने SetForegroundWindow (IntPtr hWnd) और SetFocus (IntPtr hWnd) को कोई फायदा नहीं हुआ है। क्या किसी के भी पास कोई सुझाव है?सक्रिय विंडो सेट करें

http://pastebin.com/DgtJJGiv

public void ShowApp() 
{ 
    IntPtr h = FindWindow(null, "C:\\Windows\\system32\\cmd.exe"); 
    ShowWindow(h, SW_SHOW); 
    //EnableWindow(h, true); 
    isHidden = false; 
     // set focus to console window 

    SetForegroundWindow(h); 
    System.Diagnostics.Debug.WriteLine(h); 
} 

उत्तर

1

इस (मेरे लिए काम करता है) का प्रयास करें:

public static void ShowApp() 
{ 
    IntPtr h = FindWindow(null, "C:\\Windows\\system32\\cmd.exe"); 
    ShowWindow(h, ShowWindowCommands.Show); 
    SetForegroundWindow(h); 
    SetFocus(h); 
    System.Diagnostics.Debug.WriteLine(h); 
} 
+0

फ़ोकस-सेट() करता है, तो आप एक अलग आवेदन करने के लिए स्विच नहीं करता है ध्यान केंद्रित हड़पने और कमांड (मैं showapp() विधि के लिए निर्धारित किया फोन: मैं अभी भी ध्यान देने के साथ समस्या थी तो मैं निम्नलिखित के साथ जा रहा समाप्त हो गया टिल्ड पर ट्रिगर करें।) यदि आप छिपाने के दौरान फोकस नहीं बदलते हैं और यह दिखाते हैं कि यह कंसोल पर रहता है। – Michael

-1

वहाँ किसी भी कारण है कि आप अपने खुद के कंसोल विंडो लागू नहीं कर सकते है? मेरा मतलब है कि सही शैली में एक टेक्स्टबॉक्स सेट के साथ एक साधारण रूप है। 'Cmd' प्रक्रिया का उपयोग करने की कोशिश करने से पहले आप इस पर अधिक नियंत्रण करेंगे कि यह कैसे काम करता है।

बस एक विचार।

1

आप SetActiveWindow winAPI विधि का उपयोग कर सकते हैं। आशा है कि इस मदद करता है ...

3

मैं यहाँ एक जवाब मिला: How to show form in front in C#

WINAPI दृष्टिकोण सही ढंग से मेरे लिए काम नहीं कर रहे थे, लेकिन ऐसा किया:

form.TopMost = true; 
form.TopMost = false; 

मैं मूल रूप से किया गया था केवल सत्य पर सर्वोच्च की स्थापना लेकिन मैं फॉर्म के पीछे प्रदर्शित संवाद बॉक्स के साथ समस्याओं में भाग गया। ऐसा प्रतीत होता है कि टॉपमॉस्ट को सही करने के लिए फॉर्म को सामने खींचता है और उसे वहां रखता है। इसे गलत पर सेट करना इसे वापस धक्का नहीं देता है लेकिन अन्य रूपों को सामने दिखाया जा सकता है।

form.Activate(); 
संबंधित मुद्दे