Wie kann ein Programm "inaktiv" laufen? HowTo ImageList bei Notifyicon

MCX

Mitglied
Hallöchen,

sry erstmal für den unübersichtlichen Titel.

Ich versuche gerade ein Programm zu basteln was per Internet Nachrichten für mich checked und mir ggf. anzeigt dass ich welche im Posteingang habe oder nicht. Das funktioniert soweit erstmal gut, jedoch ruft mein ganzes Programm einfach garnichts ab, wenn das Programm nicht "aktiv", also nicht markiert ist. Wenn ich es starte und direkt daneben auf den Desktop klicke, überprüft es einfach nichts. Was kann man da machen? Es soll auch inaktiv überprüfen, ob ich Nachrichten habe.


Meine 2. Frage lautet, wie ich aus einer ImageList ein Bild als TrayIcon verwenden kann. In einem älteren Beitrag hab ich folgendes gelesen:

Machst eine ImageList, dort deine Icons hinein. Diese ImageList bindest an das NotifyIcon (das hat eine entsprechende Eigenschaft ImageList).

Danach kannst dem NotifyIcon ein neues Images zuweisen in der Form:
myNotifyIcon.Image = myImageList.Images[1];

Jedoch gibt es diese Eigenschaft garnicht und wenn ich ein Bild aus der ImageList als Icon verwenden möchte kommt logischerweise der Fehler dass ein System.Drawing.Image nicht zu System.Drawing.Icon umgewandelt werden kann.


ich benutze VB 2005


Vielen Dank
MCX
 
Also für deine erste Frage würde ich einen Thread vorsehen. Dann kannst du ja einfach einstellen, dass z.B. alle 10 Minuten geprüft wird ob sich was getan hat.
Des Weiteren könntest du auch daraus dann einfach einen Dienst machen der von selbst startet wenn dein PC startet.
 
das habe ich sogar... weil er immer warten muss und ich ja nicht will dass das programm blockiert wird. t dennoch net. als dienst fänd ich es ein bisschen zu lästig irgendwie.
 
Hallo.

Wie hast denn deine Überprüfung bis jetzt gelöst?

Also ein Thread der alle 10 Minuten läuft scheinbar.. Wie startest den Thread, wie pausiert er? Normalerweise sollte sowas auch laufen, wenn das Programm nicht aktiv ist, deswegen bräuchten wir da schon ein paar Infos mehr.

Bitte achte ausserdem ein wenig mehr auf deine Groß-/Kleinschreibung..

lg,..
 
Also das Programm startet, wie du schon sagst, einen Thread, der sich auf der Website einloggt, dann einen String im HTML-Code überprüft, und mir diesen ausgibt, und sich dann wieder ausloggt. Der Thread wird zur Zeit garnicht pausiert, er läuft und läuft sozusagen. Ich weiß nicht genau warum das Ganze nicht funktioniert wenn ich das Programm nicht "anklicke". Mit anderen Programmen und Threads funktioniert es bei mir auch super. Ich muss mir da vielleicht nochmal was überlegen.
 
jaja. Läuft in einer Do-Loop Schleife mit Thread.Sleep() für eine bestimmte Zeit die ich mir halt so ausdenke. Ich werde aber noch einbauen dass man den Thread auch stoppen kann. Jedoch fiel mir auf dass ich den dann nicht mehr erneut starten kann. Dabei erhalte ich ständig Fehler. Aber im Prinzip brauch er nicht pausiert werden da ja permanent gecheckt werden soll ob ich Nachrichten erhalte. Das Überprüfen ansich läuft übrigens über einen Sub welcher mit "WebBrowserDocumentCompletedEventArgs" funktioniert. Ist der sicherste Weg wie ich gemerkt habe.
 
Naja.. eine gewisse Pause solltest schon machen, du willst ja nicht sofort nach dem du Überprüft hast gleich nochmal überprüfen, oder? Alle paar Minuten sollte doch ausreichen.

Holst du dir die Webseite etc. über das WebBrowser Control?
 
Die Pause kriegt der Thread ja durch Thread.Sleep(). Zur Zeit sind das 30 Minuten.

Jap die Website kommt über das Control. Ich brauche das dann auch weil ich eingebaut habe dass wenn man eine Nachricht erhält auf "checken" klicken kann und dann wird das WebBrowserElement sichtbar und zeigt mir die Nachricht.
 

Neue Beiträge

Zurück