Durchsichtigkeitsgrad eines Fensters ermitteln



  • _WIN32_WINNT muss min 0x0501 sein!
    Und Du brauchst natürlich ein aktuelles PSDK... also mit VC6 wirds nichts...



  • Ok Danke 🙂
    Ich hab jetzt folgenden Code

    BYTE* alpha;
                 HWND hwnd_to_alpha;
                 hwnd_to_alpha = GetForegroundWindow();
                 GetLayeredWindowAttributes(hwnd_to_alpha,NULL,alpha,(DWORD*)LWA_ALPHA);
                 ++alpha;
                 DWORD Style;
                 Style = GetWindowLong(hwnd_to_alpha, GWL_EXSTYLE);
                 Style |= WS_EX_LAYERED;
                 SetWindowLong(hwnd_to_alpha, GWL_EXSTYLE, Style);
                 SetLayeredWindowAttributes(hwnd_to_alpha, 0,alpha,(DWORD*)LWA_ALPHA);
    

    Wenn ihc das Compilieren will kommt er immer mit:

    invalid conversion from `BYTE*' to `BYTE'
    initializing argument 3 of `BOOL SetLayeredWindowAttributes(HWND__*, COLORREF, BYTE, DWORD)'

    invalid conversion from `DWORD*' to `DWORD'
    initializing argument 4 of `BOOL SetLayeredWindowAttributes(HWND__*, COLORREF, BYTE, DWORD)'

    und zeigt auf
    SetSetLayeredWindowAttributes(hwnd_to_alpha,0,alpha,(DWORD*)LWA_ALPHA);
    Aber wie kann ich das Casten?Habs probiert und bin gescheitert 😞

    Danke im voraus



  • Der Code ist ja auch völliger Quatsch. Lern C bevor du mit Winapi rumpanscht sonst wird das sowieso nix werden.



  • Du solltest folgendes machen:

    BYTE alpha;
    DWORD dwFlags;
    HWND hwnd_to_alpha;
    hwnd_to_alpha = GetForegroundWindow();
    GetLayeredWindowAttributes(hwnd_to_alpha, NULL, &alpha, &dwFlags);
    ++alpha;
    
    DWORD Style;
    Style = GetWindowLong(hwnd_to_alpha, GWL_EXSTYLE);
    Style |= WS_EX_LAYERED;
    SetWindowLong(hwnd_to_alpha, GWL_EXSTYLE, Style);
    
    SetLayeredWindowAttributes(hwnd_to_alpha, 0, alpha, dwFlags);
    


  • Arghh ich hab das & ans ende der Variable gesetzt xD
    Ich brauch ast nie Adressen.
    Danke dir.
    @gdfgdfg: Was willst du von mir??
    Du kannst es anscheinend selbst nicht sonst hättest du ja hier bestimmt deine SUPER-ÜBER-LEET Lösung gepostet 🙄 🙄

    Beta



  • Nein. Ich bin es Leid Fragen von Leuten zu beantworten, die sich offensichtlich 0 informieren und denken Programmieren wäre etwas, was man in 3 Stunden an einem langweiligen Nachmittag lernen könnte.



  • Dann antworte nicht 🙄



  • Lern programmieren und stell keine dummen Fragen. Ich muss das jetzt an dir mal representativ für die ganzen Newbies festmachen. Du bist ja nicht der einzige von der Sorte : Posten völlig sinnfreien code, am besten gleich WinApi oder DirectX und wissen nicht einmal was ein Pointer ist. Das ist eine Sache der Höflichkeit gegenüber anderen Forumsmitgliedern. Man setzt sich erst mit einer Sache auseinander und DANN postet man. Nicht anders herum. Also lern erst C bevor du irgendwas mit Winapi machen willst, wenn dir offensichtlich die grundlegendsten Dinge fehlen.



  • was soll das hier nu werden, ein für alle offenes forum oder ein forum für
    guru's mit bill's neuestem spielzeug.
    na gut man sollte schon ausser der google suchfunktion die suchfunktion
    dieses forum's bedienen können. aber als neuling sieht man halt manchmal
    den wald vor lauter bäumen nicht.



  • Danke wohin 🙂
    Ach ich bin kein so ein noob wie es wohl jetzt einige denken...
    Aber so "spät" Abends,unter der Woche wo ich um 6 Uhr aufstehen muss,bin ich nicht immer so ganz bei der Sache und auch ein wenig ungeduldig 😉

    Beta


Anmelden zum Antworten