Animation auf dem Desktop

  • VB.NET

Es gibt 16 Antworten in diesem Thema. Der letzte Beitrag () ist von Super Progger.

    Animation auf dem Desktop

    Hallo,

    Meine Frage: Ich möchte mit VB.Net 2005 eine kleine Animation (*.gif Datei) direkt auf dem Desktop (immer im Vordergrund) anzeigen, ohne Formular etc.. Wenn dann auf das Video geklickt wird, soll z.B. eine MSGBox gezeigt werden.

    Nun weiß ich aber nicht wie ich dier Animation auf den Desktop bekomme. Mit DX? Oder geht es auch einfacher? Wenn ja wie? Vielen Dank schon mal im Vorraus... :)

    P.S.: Wusste nicht ob ich das Thema hier oder im Multimedia - und Spieleforum erstellen sollte. Wenn ichs falsch gemacht habe, einfach verschieben... :P
    Öhm... Einfach ne Form ohne Titelleiste und Rahmen nehmen, da das Video als Control rein geben (z.B. Picturebox), die Größe der Form an das Control anpassen und Always on Top stellen...

    Das einzige Problem dabei ist die Transperenz ...
    Versuchs mal hiermit: Transparentes Formular mit Hilfe von Regions entwickeln
    Dann nimmst du für jedes Icon ein extra Formular...
    Gruß, Agent Smith 8-)

    activeFlags = (lazy OR weary)

    Lemgo-Verschwörung | Mathematics | VB-Paradise in blau
    gibts da nich so ne eigenschaft bei der form, dass eine bestimmte farbe transperent wird ??

    vllt. kannst du das ja irgendwie nutzen ...



    EDITED:

    Habs eben ausprobiert...
    Hier is ein Screen davon:


    Also:
    Du stellst bei der Form die BG-Farbe auf etwas, was selten vorkommt (z.B. fuchsia). Dann stellst du die Transperency Key Eigenschaft auf den gleichen wert. und plazierst eine Picture Box. Die sollte dann automatisch die gleiche Farbe haben... Wenn nicht, ändern!

    Wenn jez was in der Gif Transperent ist, hats jetzt die Hintergrundfarbe der Form, die automatisch Transperent wird ;)

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Mad Andy“ ()

    Viiiiiiielen Dank! Habs eben ausprobiert und hat wunderbar funktioniert. Danke :))

    Nur jetzt hat sich ein neues Problem aufgetan:
    Die Animation erscheint nur, wenn eine neue E-Mail ankommt. Wenn man jetzt gerade auf dem PC spielt (Vollbildanwendung) und die Animation gezeigt wird, minimiert sich das Spiel in die Taskleiste. Das ist ziemlich nervig X(

    Vermutlich liegt es daran, dass das Fenster mit der Animation beim Öffnen den Focus bekommt. Kann man denn ein Fenster öffnen, ohne dass es den Focus bekommt, oder habt Ihr eine andere Idee? ?(
    Danke für die Antwort. Hab das dann mit der API "SetWindowPos" Ausprobiert un dann kam folgende Fehlermeldung, die mich schon etwas zum Grinsen gebracht hat:

    PInvokeStackImbalance wurde erkannt.
    Message: Ein Aufruf an die PInvoke-Funktion "Speedsoft Mail Checker!SpeedsoftMailChecker.frm_main::SetWindowPos" hat das Gleichgewicht des Stapels gestört. Wahrscheinlich stimmt die verwaltete PInvoke-Signatur nicht mit der nicht verwalteten Zielsignatur überein. Überprüfen Sie, ob die Aufrufkonvention und die Parameter der PInvoke-Signatur mit der nicht verwalteten Zielsignatur übereinstimmen.

    Was bitte will man mir damit mitteilen? ;)
    Mir ist gerade eine Idee gekommen, wie ich das realisieren könnte. Ich könnte das Formular sofort mit der Anwendung starten nur verschiebe ich es, bis es gebraucht wird aus dem Desktop hinaus.
    Nur gibt es da schon wieder ein Problem: Die Animation befindet sich in einer Picturebox und verbraucht ständig 2-3% CPU-Leistung, auch wenn es aus dem Desktop herausgeschoben wird. Nun hab ich mir gedacht, ich lade die Animation erst aus der Ressource (da gibt es ja bei .Net so einen Ordner bei "Projektmappen-Explorer") wenn sie gebraucht wird. Aber wie lade ich nun die Gif Datei aus der Ressource?
    Ich hoffe, dass ich mich verständlich ausgedrückt habe :rolleyes: