NotifyIcon

  • VB.NET

Es gibt 31 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Hi Leute,

    ich möchte eine Funktion schreiben in der u.a. das NotifyIcon angesprochen wird,
    nur was ist wenn dieses in versch. Projekten nicht vorhanden ist?
    Gibts einen Trick um zu erkennen ob es ein NotifyIcon gibt und es auch nur dann ansprechen?

    Bin mal gespannt ^^

    LG
    Chris
    Hi,

    ich habe mir eine Funktion geschrieben für Fehlermeldungen (Fehlermeldung("Beschreibung", "Fehlercode", boolean=MSGBOX, boolean=Logfile))
    Es soll noch ein boolean wert übergeben werden, wenn dieser auf true steht, wird die fehlermeldung als baloontip angezeigt, aber in vielen projekten wird kein notifiicon verwendet, dann kommt ein fehler beim kopieren der funktion ins projekt.

    LG
    Chris
    nur die fehlermeldung ausgeben die übergeben wird (funktioniert ja auch)

    aber andere projekte von mir haben kein notifyicon, deswegen kommen da fehlermeldungen...

    Deswegen muss die Software erkennen ob ein NotifyIcon vorhanden ist und wenn ja dieses ansprechen.
    Er will die NIcons ansprechen von seinen anderen Projekten wenn ich das so Richtig verstanden habe. Falls dann ein Fehler in einem Projekt auftritt will er sich eine Datailierte Fehlermeldung ausgeben lassen, aber er weiss halt nicht wie er das machen soll wenn ein Projekt kein NIcon hat. Quasi die Fehlermeldung die das Programm(wo kein NIcon vorhanden) dann Rausschmeisst nochmals abfangen und Richtig ausgeben lassen.

    Ich hoffe ich hab das jetzt Richtig verstanden Korrigiere mich bitte falls nicht.


    EDIT: Zu spät gelesen.

    Also dann müsstest du ja einen Standart namen für das NIcon haben und dann einfach nur prüfen ob das Objekt auch vorhanden ist oder Denke ich da jetzt Falsch :/
    wenn die anderen projekte deine projekte sind, warum baust du nicht einfach nen notifyicon ein?

    wenn du alle notifyicons abfragen willst musste sicher mit winmessage arbeiten
    edit:
    oder winapi, frag mich jetzt aber nicht welche
    ja genau, ich glaube du hast mich jetzt auch verstanden, nur wie?

    if exist NotifyIcon1 then
    NotifyIcon1.ShowBalloonTip(5000, Fehlercode, Fehlermeldung, false, true, true)
    end if

    ich weiss nicht wie ich die if prüfung machen soll und auch im folgenden code würde ein fehler auftauchen...

    Edit by hal2000:
    - Die Farbe ROT ist der Moderation vorbehalten.

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

    Gelöschter Benutzer schrieb:

    wenn die anderen projekte deine projekte sind, warum baust du nicht einfach nen notifyicon ein?

    wenn du alle notifyicons abfragen willst musste sicher mit winmessage arbeiten
    edit:
    oder winapi, frag mich jetzt aber nicht welche

    ne es geht um nur eine anwendung ich frage keine andere anwendung an, ich möchte nur die funktion auch anschließend in anderen projekten nutzen können und nicht alle haben von dennen ein Icon deswegen soll das vom code her so gebaut sein das die option ignoriert wird und das icon nicht nutzt...
    Ich glaube nicht das du es so Überprüfen kannst

    if exist NotifyIcon1 then
    NotifyIcon1.ShowBalloonTip(5000, Fehlercode, Fehlermeldung, false, true, true)
    end if

    du musst denke ich schon wie Kinsi schreib über winapi gehen den wenn der Code Compiliert ist kann man denke ich nciht mehr die normalen Namen abfragen :/

    Es kann natürlich auch sein das ich mich irre. Habe mich damit noch nie Auseinander gesetzt.

    Lg
    Patrick
    @kinsi, genau das meine ich, nen freund von mir hatte früher mal eine software die ALLE Fortmuarfelder gespeichert hat, ohne das man diese angeben musste, es muss also auch mit dem Icon so funktionieren und ich glaube du meinst das was ich suche ^^
    alle formularfelder speichern is ja nicht schwer einfach mit for each alle controls durchgehn und abspeichern

    dein vorhaben ist allerdings(denn soweit ich weiss ist nen notifyicon kein control) schwerer, such halt mal bisschen
    control directcast am besten

    das ist einfach das wenn du in der schleife bist

    VB.NET-Quellcode

    1. for each c as control in me.controls


    die standart optionen der controls nutzen kannst

    VB.NET-Quellcode

    1. directcast(c,controltyp).optionblabla
    machste mal so etwas:

    VB.NET-Quellcode

    1. for each c as control in me.controls
    2. if c is NotifyIcon
    3. 'Ist NotifyIcon
    4. end if
    5. next

    Da du zuerst überprüfst ob das Control ein NotifyIcon ist ( c is NotifyIcon ) und dann kannste mit

    VB.NET-Quellcode

    1. Dim tmp As NotifyIcon = DirectCast(c, NotifyIcon)

    machen was du willst
    hi alivedevil,

    danke für deinen tipp.

    also ich hab es so probiert , bekomme nur ein Konnvertiertungsfehler:


    HTML-Quellcode

    1. Fehler 1 Der Wert vom Typ "System.Windows.Forms.Control" kann nicht in "System.Windows.Forms.NotifyIcon" konvertiert werden. 461 54