2010-03-28 12 views
5

में ऐप्स की संख्या प्राप्त करें मैं सोच रहा हूं कि उम्र के लिए यह कैसे करें। मैं थोड़ा ऐप बना रहा हूं, और मुझे यह पता लगाने की ज़रूरत है कि टास्कबार में कितने ऐप या विंडो प्रदर्शित होते हैं।टास्कबार

मुझे अभी तक कोई जानकारी नहीं मिली है, मैं किसी भी मदद की सराहना करता हूं।

धन्यवाद :)

उत्तर

0

जैसा कि अन्य ने कहा है कि आपको Win32 EnumWindows फ़ंक्शन का उपयोग करके विंडो के माध्यम से गणना करने की आवश्यकता है, और इस तरह अपनी गिनती प्राप्त करें।

आप Process.GetProcesses(); का उपयोग कर प्रक्रियाओं के माध्यम से भी गणना कर सकते हैं हालांकि एक्सप्लोरर विंडो जैसी खिड़कियां जो एक अलग प्रक्रिया नहीं हैं, उस सूची में दिखाई नहीं देगी।

int appCount = 0; 

public bool EnumerateWindows(IntPtr hwnd, IntPtr lParam) 
{ 
    if (IsWindowVisible(hwnd)) 
    { 
     StringBuilder sb = new StringBuilder(); 
     string text = ""; 

     GetWindowText(hwnd, sb, 1024); 
     text = sb.ToString(); 

     if (text != string.Empty && text != "Program Manager") 
     { 
      appCount++; 
     } 
    } 

    return true; 
} 

private int GetAppCount() 
{ 
    appCount = 0; 
    EnumWindows(EnumerateWindows, new IntPtr(0)); 

    return appCount; 
} 

internal delegate bool EnumThreadWindowsCallback(IntPtr hwnd, IntPtr lParam); 

[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)] 
internal static extern bool EnumWindows(EnumThreadWindowsCallback callback, IntPtr lParam); 

[DllImport("user32.dll", CharSet = CharSet.Auto)] 
internal static extern bool IsWindowVisible(IntPtr hwnd); 

[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)] 
internal static extern int GetWindowText(IntPtr hWnd, [Out, MarshalAs(UnmanagedType.LPTStr)] StringBuilder lpString, int nMaxCount); 
0

जहां तक ​​मुझे पता है कि कार्य पट्टी तक पहुँचने का कोई प्रबंधित तरीका है। यहां एक link है जो वर्णन करता है कि विंडोज एपीआई द्वारा टास्कबार तक कैसे पहुंचे। हालांकि, मैंने एक त्वरित स्कैन किसी भी "आइटम की संख्या" या कुछ समान नहीं दिखाया। फिर भी यह आपको सही दिशा में इंगित कर सकता है।

2

Here एक ऐसा लेख है जो दिखाता है कि विंडोज़ कैसे प्राप्त करें, जो दिखाए जाते हैं कि आप ALT + TAB कुंजी संयोजन का उपयोग करते समय दिखाए जाते हैं।

मूल रूप से, आप एक ही विंडो टास्कबार में दिखाया जाता है मिल जाएगा (जब तक यह एक उपकरण विंडो प्रदर्शित नहीं किया जाता है), लेकिन फिर, आप हमेशा WS_EX_TOOLWINDOW (नहीं दिखाया गया है) और WS_EX_APPWINDOW के खिलाफ जांच कर सकते हैं (दिखाया गया)।

1

आप मेरे पिछले उत्तर here पर एक नज़र डाल सकते हैं; यहां मुख्य अंतर यह है कि आपको केवल उन विंडो को गिनना होगा जो दी गई आवश्यकताओं से मेल खाते हैं।

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