2010-07-30 19 views
8

मैं शीर्षतम विंडो होने के लिए कंसोल एप्लिकेशन कैसे सेट करूं? मैं .NET में कंसोल एप्लिकेशन बना रहा हूं (मैं सी # का उपयोग कर रहा हूं और यहां तक ​​कि अप्रबंधित कोड को पिनवोक भी ठीक है)।शीर्ष कंसोल (सी #) होने के लिए कंसोल एप्लिकेशन विंडो कैसे सेट करें?

मैंने सोचा था कि मैं अपने सांत्वना आवेदन हो सकता था कि फार्म वर्ग

class MyConsoleApp : Form { 
    public MyConsoleApp() { 
     this.TopLevel = true; 
     this.TopMost = true; 
     this.CenterToScreen(); 
    } 

    public void DoSomething() { 
     //.... 
    } 

    public static void Main() { 
     MyConsoleApp consoleApp = new MyConsoleApp(); 
     consoleApp.DoSomething(); 
    } 
} 

से निकाले जाते हैं लेकिन यह काम नहीं करता। मुझे यकीन नहीं है कि विंडोज़ फॉर्म पर सेट गुण कंसोल यूआई पर लागू होते हैं।

उत्तर

10

आप कर सकते हैं Windows API से पी/आह्वान SetWindowPos:

using System; 
using System.Diagnostics; 
using System.Runtime.InteropServices; 

class Program 
{ 
    [DllImport("user32.dll", SetLastError = true)] 
    [return: MarshalAs(UnmanagedType.Bool)] 
    private static extern bool SetWindowPos(
     IntPtr hWnd, 
     IntPtr hWndInsertAfter, 
     int x, 
     int y, 
     int cx, 
     int cy, 
     int uFlags); 

    private const int HWND_TOPMOST = -1; 
    private const int SWP_NOMOVE = 0x0002; 
    private const int SWP_NOSIZE = 0x0001; 

    static void Main(string[] args) 
    { 
     IntPtr hWnd = Process.GetCurrentProcess().MainWindowHandle; 

     SetWindowPos(hWnd, 
      new IntPtr(HWND_TOPMOST), 
      0, 0, 0, 0, 
      SWP_NOMOVE | SWP_NOSIZE); 

     Console.ReadKey(); 
    } 
} 
+0

बहुत बहुत धन्यवाद! यह बहुत अच्छा काम करता है ... – Santhosh

0

आप पी के साथ FindWindow इस्तेमाल कर सकते हैं/आह्वान (http://msdn.microsoft.com/en-us/library/ms633499(VS.85).aspx) तो किसी भी तरह विस्तारित शैली WS_EX_TOPMOST उपयोग करने के लिए सेट - पी/आह्वान पर SetWindowLong (http://www.pinvoke.net/default.aspx/coredll/SetWindowLong.html) देखें।

हालांकि यह सब कुछ हैकी है और विंडोज फॉर्म या डब्ल्यूपीएफ का उपयोग करके अपनी स्वयं की कंसोल विंडो बनाने की सिफारिश करेगा।

+0

धन्यवाद Kieren। मैं विंडोज फॉर्म का उपयोग कर कंसोल विंडो कैसे बना सकता हूं? – Santhosh

+0

मुझे लगता है कि वह कंसोल एप्लिकेशन लिखने के बजाय कहने की कोशिश कर रहा है, इसके बजाए एक विंडोज फॉर्म एप्लीकेशन लिखें। – user3454439

संबंधित मुद्दे