Ich hätte da ein Problem, mit dem ich derzeit einfach nicht zurande komme!
Mein Tool, das ich in VB .NET konzipiert habe, blendet bei der Verwendung der vorgesehenen Komandozeilenparameter auf manchen Rechnern, beim Minimieren in den Tray, links unten auf dem Desktop eine verkürzte Titelzeile ein, die nur aus dem Icon, einem "Schliessen" Kreuz und dem Systemmenü (ALT+Space) besteht.
Dieses Problem zeigt sich nur, wenn ich die Kommandozeilenargumente auswerten lasse und auch nur auf manchen Rechnern, wie meinem 10,1" Tab (Windows 10 Home x86) mit der Auflösung 1280*800. Auf meinen Rechnern mit 1920*1080 oder 1600*900 passiert das nicht, das minimieren in den Tray oder wieder Einblenden des Forms funktioniert einwandfrei. Auch auf Rechnern mit Windows 10 Pro x64 passiert das - aber eben ohne eine feststellbare Methode.
Das Progrämmchen kann mit den Parametern "-min" (minimiert starten), "-hide" (immer nur das Traysymbol anzeigen), "-vis" (beim Ein- oder Ausblenden zwischen Tray oder Taskbaransicht wechseln) entsprechend gesteuert werden. Nur genau das funktioniert bisher irgendwie nicht so "optimal"! Auf manchen Rechnern wird beim Ausblenden in den Tray links unten auf dem Desktop die verkürzte Ansicht der Titelleiste eingeblendet.
Entferne ich die Auswertung der Kommandozeilenargumente und setze "ShowInTaskBar" und "NotifyIcon1.Visible" entsprechend meiner Vorstellungen "True" oder "False", dann unterbleibt das Einblenden dieser Titelzeile und es wird sauber aus- oder eingeblendet.
Die relevanten Codeabschnitte:
Private Sub Form1_Onload(sender As Object, e As EventArgs) Handles MyBase.Load
For Each CoArg As String In My.Application.CommandLineArgs
Select Case CoArg
Case "-min", "/min"
WindowState = FormWindowState.Minimized
ShowInTaskbar = False
End Select
Select Case CoArg
Case "-?", "/?"
MessageBox.Show(MsgTxt, "Winset10 Hilfe zu den Befehlszeilenargumenten!", MessageBoxButtons.OK, MessageBoxIcon.Information)
End Select
Next
End Sub
Private Sub Form1_Shown(sender As Object, e As EventArgs) Handles MyBase.Shown
For Each CoZArg As String In My.Application.CommandLineArgs
Select Case CoZArg
Case "-hide", "/hide"
Select Case WindowState
Case FormWindowState.Minimized
ShowInTaskbar = False
NotifyIcon1.Visible = True
Case Else
WindowState = FormWindowState.Normal
ShowInTaskbar = False
NotifyIcon1.Visible = True
End Select
Case "-vis", "/vis"
Select Case WindowState
Case FormWindowState.Minimized
ShowInTaskbar = False
NotifyIcon1.Visible = True
Case Else
WindowState = FormWindowState.Normal
ShowInTaskbar = True
NotifyIcon1.Visible = True
End Select
End Select
Next
End Sub
Private Sub NotifyIcon1_Click(sender As Object, e As MouseEventArgs) Handles NotifyIcon1.MouseClick
Select Case e.Button
Case MouseButtons.Left
If WindowState = FormWindowState.Minimized Then
WindowState = FormWindowState.Normal
Else
WindowState = FormWindowState.Minimized
End If
Case MouseButtons.Right
ContextMenuStrip1.Show()
End Select
End Sub
Alles anzeigen
Ich kann mir auf dieses Verhalten leider keinen Reim machen, vielleicht hat da einer von euch eine Idee, woran das liegen könnte.