Alle Fenster auser Desktop.



  • Hallo,
    Ich will mit EnumWindowsChild alle Fenster finden, ausser den Desktop(Taskbar, Hintergrund und was sonst noch alles dazu gehört)
    Ich hba das jetzt so gemacht

    EnumChildWindows(HWND_DESKTOP, (WNDENUMPROC)EnumWindowsProc, 0);
    

    Jetzt wüsste ich gerne die HWND's der Taskbar etc.



  • Sag am besten mal "was" Du eigentlich machen willst... vielleicht gibt es dafür eine bessere Lösung...



  • Ich will alle sichtbaren Fesnter Transparent machen!

    Wenn ich die Fenster so "finde", dann ist natürlich auch immer noch die Taksbar und der Desktophintergrund dabei:

    BOOL CALLBACK EnumWindowsProc(HWND hiwnd,LPARAM lParam)
    {
         if(IsWindowVisible(hiwnd))
         {
                char Title[200];
                typedef DWORD (WINAPI *PSLWA)(HWND, DWORD, BYTE, DWORD);
                PSLWA SetLayeredWindowAttributes;
    
                GetWindowText(hiwnd, Title, 199);
    
                SetWindowLong (hiwnd , GWL_EXSTYLE , 
                GetWindowLong (hiwnd , GWL_EXSTYLE ) | WS_EX_LAYERED ) ;
                HMODULE hDLL = LoadLibrary ("user32");
                SetLayeredWindowAttributes = 
                (PSLWA) GetProcAddress(hDLL,"SetLayeredWindowAttributes");
    
                SetLayeredWindowAttributes (hiwnd, 
                RGB(255, 255, 255), 200, LWA_ALPHA );
         }
       return TRUE;
    }
    
    EnumChildWindows(HWND_DESKTOP, (WNDENUMPROC)EnumWindowsProc, 0);
    

    Und jetzt will ich, dass Taskbar etc. nicht transparent gemacht werden.

    Sry dass ich das so komisch ausdrücke 😃



  • Eigentlich kannst Du ja schon das EnumChild... abbrechen wenn das Fenster von der Klasse "Shell_TrayWnd" ist.. weil dass ist das Main-Fenster der Taskleiste...



  • Genau das hab ich gesucht "Shell_TrayWnd" jetzt fehlen nur noch die Klassen für den Desktophintergrund und alles sonst was mit dem Desktop zu tun hat.



  • Könntest Du eigentlich auch selber mit Spy++ rausfinden... ("Program Manager" und "Progman")


Anmelden zum Antworten