Programm --> ans desktop "anpinnen"...



  • Hallo!

    Also ich möchte ein Programm schreiben welches z.B. wie samurize auf den desktop gepinnt wird. Möchte so eine art notizblock machen, er sollte aber eben immer in hintergrund sein, also auf dem desktop liegen.
    Weiß jemand, welche styles ich verwenden muss bzw. wie ich das verwirklichen könnte?

    danke
    mfg
    mitos



  • Jaa, da müsstest du wohl einen Systemweiten Hook machen, der die "In den Vordergrund"-Nachricht deines Fensters unterdrückt und die anderen Fenster im Vordergrund lässt.



  • hmm und wie könnte ich es dann noch machen, dass das fenster auch im vordergrund bleibt, wenn zum beispiel [WIN-Taste + D] gedrückt wird?

    danke
    mfg
    mitos



  • Geh mal auf www.winapi.net.
    Da gas glaub ich auch mal ein Programm mit OpenSource, was man auch anpinnen konnte, und es blieb im Vorderung.
    Aber ich bin mir nicht sicher.
    Wenn ich es dir raussuchen soll, sag escheid ;).



  • Servus,

    Erstell einfach ein Fenster mit dem Desktop als Parent.
    Per API-Funktion GetDesktopWindow (void) ermittelst du das Handle des Desktop, der ja auch in Wirklichkeit ein Fenster ist.
    Das Fenster musst du natürlich als Child flaggen.
    (WS_SYSMENU | WS_CHILD | WS_CLIPSIBLINGS)

    Das Fenster gehört dann zum Desktop und bleibt im Hintergrund.
    Es kann andere Fenster nicht überdecken.

    MfG

    Wolf



  • hey super 🙂 vielen danke, habs grad probiert und hat sofort geklappt @ Hroudtwolf !

    jetzt nur noch eine Frage: wie kann ich es anstellen, dass das Fenster nicht in der Taskleiste angezeigt wird, also den "button" der normalerweise bei jedem fenster kommt, deaktivieren bzw. verstecken?

    vielen dank an alle
    mfg
    mitos



  • Servus,

    Damits nicht in der Taskbar angezeigt wird, musst du es nur mit dem ToolWindow ExStyle versehen.

    Der Style heisst: WS_EX_TOOLWINDOW

    Schöne Grüsse

    Wolf



  • wunderschön, das klappt jetzt auch, vielen dank!
    so das fenster ist ja jetzt ein child vom desktop, aber irgendwie funktioniert das mit dem anzeigen noch nicht so richtig, also dass das fenster praktisch immer auf dem desktop liegt und angezeigt wird... hat da noch jemand einen tip?

    danke,

    mfg
    mitos



  • Zeig doch bitte mal was du nun genau bisher schon gemacht hast.
    Etwas Code wäre da hilfreich 😉



  • Hab alles wies normal gehört nur das verändert:

    hWnd = CreateWindowEx(WS_EX_TOOLWINDOW,szAppName,
    szAppName,
    WS_SYSMENU| WS_CHILD | WS_CLIPSIBLINGS,
    hohex,
    hohey,
    iLength,
    iHeight,

    GetDesktopWindow(),
    NULL,
    hInstance,
    NULL);

    ShowWindow(hWnd, iCmdShow);

    mfg
    mitos


Anmelden zum Antworten