In Tray minimiertes Programm blendet auf dem Desktop eine verkürzte Titelzeile ein

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    Info! Wir verlosen 3 x das Nacken- und Schultermassagegerät Optimus New Generation Jade! - Spiel mit!

    Unsere Datenschutzerklärung wurde aktualisiert. Mit der Nutzung unseres Forums akzeptierst Du unsere Datenschutzerklärung. Du bestätigst zudem, dass Du mindestens 16 Jahre alt bist.

    • In Tray minimiertes Programm blendet auf dem Desktop eine verkürzte Titelzeile ein

      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:

      Quellcode

      1. Private Sub Form1_Onload(sender As Object, e As EventArgs) Handles MyBase.Load
      2. For Each CoArg As String In My.Application.CommandLineArgs
      3. Select Case CoArg
      4. Case "-min", "/min"
      5. WindowState = FormWindowState.Minimized
      6. ShowInTaskbar = False
      7. End Select
      8. Select Case CoArg
      9. Case "-?", "/?"
      10. MessageBox.Show(MsgTxt, "Winset10 Hilfe zu den Befehlszeilenargumenten!", MessageBoxButtons.OK, MessageBoxIcon.Information)
      11. End Select
      12. Next
      13. End Sub
      14. Private Sub Form1_Shown(sender As Object, e As EventArgs) Handles MyBase.Shown
      15. For Each CoZArg As String In My.Application.CommandLineArgs
      16. Select Case CoZArg
      17. Case "-hide", "/hide"
      18. Select Case WindowState
      19. Case FormWindowState.Minimized
      20. ShowInTaskbar = False
      21. NotifyIcon1.Visible = True
      22. Case Else
      23. WindowState = FormWindowState.Normal
      24. ShowInTaskbar = False
      25. NotifyIcon1.Visible = True
      26. End Select
      27. Case "-vis", "/vis"
      28. Select Case WindowState
      29. Case FormWindowState.Minimized
      30. ShowInTaskbar = False
      31. NotifyIcon1.Visible = True
      32. Case Else
      33. WindowState = FormWindowState.Normal
      34. ShowInTaskbar = True
      35. NotifyIcon1.Visible = True
      36. End Select
      37. End Select
      38. Next
      39. End Sub
      40. Private Sub NotifyIcon1_Click(sender As Object, e As MouseEventArgs) Handles NotifyIcon1.MouseClick
      41. Select Case e.Button
      42. Case MouseButtons.Left
      43. If WindowState = FormWindowState.Minimized Then
      44. WindowState = FormWindowState.Normal
      45. Else
      46. WindowState = FormWindowState.Minimized
      47. End If
      48. Case MouseButtons.Right
      49. ContextMenuStrip1.Show()
      50. End Select
      51. 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.
      Gruss Alex
      Mein persönliches: Einstellungs- und Fehlerbehebungstool für Windows 10 4.6.0.0 für Windows 10
    • Gerne!

      Winset10 - minimiert Titelzeile.jpg

      Gestartet wird mit den Parametern "-min -hide", das passiert aber auf diesem und dem anderen Rechner @Eisbärs auch wenn nur "-hide" angegeben ist. Was mich etwas irritiert, ist dass @Eisbär dieses Verhalten abstellen kann, wenn er "-hide" und "-vis" kombiniert. Genau das konnte ich bisher aber ebensowenig nachvollziehen. Wie gesagt, bei mir kommt das nur auf dem Tablet vor und von Eisbär habe ich darüber berichtet bekommen.

      Noch ein Hinweis: Die Zeile "ShowInTaskbar = False" im Abschnitt "Form1_Onload" wurde von mir testweise eingefügt, standardmässig ist sie im Code nicht enthalten. Der EventHandler "Form1_Shown" war urspünglich der EventHandler "Form1_SizeChanged" und wurde im Zuge meiner Fehlersuche umgestellt. Beides brachte keine Änderung. Wenn ich If Me.WindowState <> FormWindowState.Minimized Then Stop einfüge um den Fehler aufzuspüren, läuft der ganze Anweisungsblock bis zum Ende durch. Von daher schliesse ich inzwischen aus, dass ich irgendwo einen syntaktischen Fehler drin habe und das Problem auf den betroffenen Rechnern selbst zu suchen sein muss.
      Gruss Alex
      Mein persönliches: Einstellungs- und Fehlerbehebungstool für Windows 10 4.6.0.0 für Windows 10
    • Schaust du in diese API hier, wirst du feststellen, das ein Fenster nicht gleichzeitig versteckt und sichtbar angezeigt werden kann:
      Versuchst du in deinem Code das zu tun, addiert die Funktions von VB .Net mit Sicherheit einfach die Flags, die es dafür nutzt.
      Da dürfte wohl das Problem liegen.
      Bei Widersprüchen addiert Windows die Flags und macht nicht eines von beiden.
      ________________________________________________________

      PPFScanner PPFS Android MisterXMail@web.de
      Mfg AHT
    • Nein, das geht so auch nicht. Das würde im Programm nicht das tun, was du willst.
      Gleichzeitig als minimiertes Fenster und in der Taskleiste rechts geht scheinbar nicht korrekt.
      Wenn du so etwas korrekt umsetzen willst, musst du das Fenster bei Minimierung verstecken und es über das Trayicon einblenden lassen. Alles andere führt zu Widersprüchen und ungewollten Ergebnissen.
      ________________________________________________________

      PPFScanner PPFS Android MisterXMail@web.de
      Mfg AHT

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von AHT ()

    • areiland schrieb:

      Select Case CoArg
      Case "-min", "/min"
      WindowState = FormWindowState.Minimized
      ShowInTaskbar = False
      Versuche mal, unter anderem an der Stelle ShowInTaskbar auf True zu stellen. Ich kenne aber leider deine Programmiersprache zu weinig, um dir da wirklich weiterhelfen zu können.

      Wenn das Fenster minimiert gestartet werden soll, muss es auf jeden Fall in der Taskleiste erscheinen.
      Windows kann bei Minimierung da ansonsten da kein Icon erzeugen.
      ________________________________________________________

      PPFScanner PPFS Android MisterXMail@web.de
      Mfg AHT

      Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von AHT ()