Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Taskleistensymbol ändern

Frage Entwicklung Visual Studio

Mitglied: ahstax

ahstax (Level 2) - Jetzt verbinden

06.02.2014, aktualisiert 07.02.2014, 3939 Aufrufe, 14 Kommentare, 7 Danke

Hallo,

lässt sich das Taskleistensymbol eines Programms im laufenden Betrieb, bspw als Reaktion auf ein Ereignis, ändern?
Wenn ja, wie und wo?

Neugierige Grüße,
Andreas

(VB 2010 Express, dotnet 4, Win7)



Mitglied: colinardo
LÖSUNG 06.02.2014, aktualisiert 07.02.2014
Hall Andreas,
von deinem eigens programmierten Programm oder von einem anderen Prozess ? Das erstere ist problemlos möglich.
Dazu fügst du z.B. das Icon deinen Visual Studio Projekt-Resourcen (Rechtsklick im Solution Explorer auf deine Anwendung > Eigenschaften > Resourcen) hinzu und machst dann im entsprechenden Event oder Prozedur eine Zeile wie diese hier, um das Icon im laufenden Betrieb zu wechseln (VB.Net):
NotifyIcon1.Icon = My.Resources.MyNewIcon
oder das Icon alternativ von einem Pfad laden und dann der jeweiligen Eigenschaft zuweisen:
 Dim ic As New Icon("D:\MyNew.ico")
Grüße Uwe
Bitte warten ..
Mitglied: ahstax
06.02.2014, aktualisiert um 16:20 Uhr
Hallo Uwe,

Das Icon von einem von mir programmierten Programm soll sich ändern.
Für meine Belange könnten zwei Icons vorgehalten werden, die entsprechend der aktuellen Situation angezeigt werden. Oder das eine hinterlegte Icon wird durch eine Farbe ersetzt. Oderoderoder...

Nur der Vollständigkeit halber: Gemeint ist der Bereich zwischen der Windows-Kachel und der Uhr. (Ist das die Taskleiste...?)

Grüße,
Andreas
Bitte warten ..
Mitglied: colinardo
LÖSUNG 06.02.2014, aktualisiert 07.02.2014
Zitat von ahstax:
Nur der Vollständigkeit halber: Gemeint ist der Bereich zwischen der Windows-Kachel und der Uhr. (Ist das die
Taskleiste...?)
hab ich verstanden. Das Steuerelement NotifyIcon setzt ein Icon in den Traybereich von Windows. Dessen Eigenschaft Icon kannst du problemlos in deinen Events ändern...
Bitte warten ..
Mitglied: ahstax
06.02.2014 um 16:27 Uhr
Bitte entschuldige die Nachfrage...
Ich bin davon ausgegangen, dass das NotyfyIcon im Infobereich der Taskleiste angezeigt wird. Bewirkt dessen Änderung auch die Änderung auch die Änderung des Taskleistensymbols?
Bitte warten ..
Mitglied: colinardo
LÖSUNG 06.02.2014, aktualisiert 07.02.2014
Zitat von ahstax:
Ich bin davon ausgegangen, dass das NotyfyIcon im Infobereich der Taskleiste angezeigt wird. Bewirkt dessen Änderung auch die
Änderung auch die Änderung des Taskleistensymbols?
nein, dazu musst du das Icon der Haupt-Form ändern ...
Me.Icon = ......
Bitte warten ..
Mitglied: ahstax
07.02.2014 um 08:52 Uhr
Perfekt, wie immer!

Herzlichen Dank!
Bitte warten ..
Mitglied: ahstax
07.02.2014 um 13:58 Uhr
Interessanter Effekt...
Im Debugmodus funktioniert das Ändern des Icons.
In dem compilierten Programm (\bin\release\) auch.
Kopiere ich den kompletten Inhalt aus \bin\release\ an einen anderen Speicherort, funktioniert es nicht mehr.

Die zu verwendenden Icons sind in dem Ordner \bin\release\, der Pfad wird erkannt durch
System.Windows.Forms.Application.StartupPath & "\Icon.ico"

Könnte das an meinem Code liegen? Oder an Windows?
Bitte warten ..
Mitglied: colinardo
LÖSUNG 07.02.2014, aktualisiert um 14:24 Uhr
muss an deinem Code liegen... hier geht das einwandfrei. Benutze mal anstatt System.Windows.Forms.Application.StartupPath das hier:
My.Application.Info.DirectoryPath & "\Icon.ico"
oder
Application.StartupPath & "\Icon.ico"
Bitte warten ..
Mitglied: ahstax
07.02.2014 um 14:18 Uhr
Gleicher Effekt...
Das NotifyIcon wird geändert... Das TaskleistenIcon nicht. Das Icon, das am Form angezeigt wird hingegen schon. Könnte es am Windows liegen?

Hier mal ein Code-Ausschnitt:

01.
    Public strIconOK As String = My.Application.Info.DirectoryPath & "\PingPong1.ico" 
02.
    Public icoIconOK As Icon = New Icon(strIconOK)
01.
        Dim vPing As New Ping 
02.
        Dim vPingReply As PingReply = vPing.Send(txtBoxIP2Ping2.Text) 
03.
 
04.
        System.Windows.Forms.Application.DoEvents() 
05.
 
06.
        If vPingReply.Status.ToString = "Success" Then 
07.
            vPing.Dispose() 
08.
            pnlStatus.BackColor = Color.YellowGreen 
09.
 
10.
            Me.Icon = icoIconOK 
11.
            NotifyIcon1.Icon = icoIconOK 
12.
 
13.
            Me.Refresh() 
14.
            Threading.Thread.Sleep(250) 
15.
            intSuccess += 1 
16.
            bolSuccess = True 
17.
         Else 
18.
            vPing.Dispose() 
19.
            pnlStatus.BackColor = Color.DarkRed 
20.
            intFail += 1 
21.
        End If
Noch eine ergänzende Frage:
Während der Ping läuft (fällt vor allem auf, wenn es ein Timeout gibt), reagiert die Form vorübergehend auf keine Benutzereingaben mehr. Programmierfehler?
Bitte warten ..
Mitglied: colinardo
LÖSUNG 07.02.2014, aktualisiert um 14:56 Uhr
Zitat von ahstax:
Noch eine ergänzende Frage:
Während der Ping läuft (fällt vor allem auf, wenn es ein Timeout gibt), reagiert die Form vorübergehend auf
keine Benutzereingaben mehr. Programmierfehler?
jetzt ist es mir klar, das hängt beides zusammen! Nutze für so etwas einen BackgroundWorker oder arbeite hier mit Threads, und vergesse DoEvents !!!! Ganz klarer Programmierfehler ...
Bitte warten ..
Mitglied: ahstax
07.02.2014, aktualisiert um 14:56 Uhr
OK, deutliche Worte...!
(Ist mir aber lieber als ein "komisches, nicht erklärbares" Problem)
Ran ans Werk...

Tagt das was?
Bitte warten ..
Mitglied: colinardo
LÖSUNG 07.02.2014, aktualisiert um 15:09 Uhr
Zitat von ahstax:
Tagt [https://www.vb-paradise.de/allgemeines/tipps-tricks-und-tutorials/windows-forms/61500-multithreading-mit-backgroundworker/
das] was?
für den Anfang ja, wenn du das verstanden hast schaust du dir mal Delegates und Update UI with Delegates an
Bitte warten ..
Mitglied: colinardo
LÖSUNG 07.02.2014, aktualisiert 10.02.2014
Hab dir mal ein Beispiel-Projekt dazu gemacht damit du schneller nachvollziehen kannst, wie das mit Threads und UI-Delegate so funktioniert:
PingTestThreading (VS2010 Project)

Viel Erfolg
Grüße Uwe
Bitte warten ..
Mitglied: ahstax
10.02.2014 um 08:59 Uhr
Herzlichen Dank!!!!

Den Backgroundworker hab ich in Gang gebracht. Das Taskleisten-Icon verweigert weiter die Zusammenarbeit. Dein Beispiel werde ich mir dazu gleich ansehen!
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
HKLM Regkey bei Clients mit GPOs ändern (4)

Frage von adm2015 zum Thema Batch & Shell ...

Windows Server
Computernamen von Sharepoint 2013 nachträglich ändern (1)

Frage von Philipp.S zum Thema Windows Server ...

Neue Wissensbeiträge
Microsoft

Restrictor: Profi-Schutz für jedes Window

Tipp von AlFalcone zum Thema Microsoft ...

Batch & Shell

Batch zum Zurücksetzen eines lokalen Profils

Tipp von Mr.Error zum Thema Batch & Shell ...

RedHat, CentOS, Fedora

Fedora, RedHat, Centos: DNS-Search Domain setzen

(13)

Tipp von Frank zum Thema RedHat, CentOS, Fedora ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
VPN Tunnel aufbauen (16)

Frage von Hajo2006 zum Thema LAN, WAN, Wireless ...

Router & Routing
ASUS RT-N18U mit VPN Client hinter Fritzbox - Portforwarding (15)

Frage von marshall75000 zum Thema Router & Routing ...

Microsoft Office
Saubere HTML aus Word-Dokument (15)

Frage von peterpa zum Thema Microsoft Office ...

E-Mail
gelöst Probleme beim E-Mail Empfang (12)

Frage von TommyB83 zum Thema E-Mail ...