vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
TOP-Angebot: 17 bzw. 24 Entwickler-Vollversionen zum unschlagbaren Preis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Re: Doch nicht gelöst: Klick auf Desktop-Icon feststellen 
Autor: MarkusD
Datum: 15.03.12 11:33

Hallo Rippler,

genau die Routine (doubleclick) habe ich jetzt schon drin. Dadurch wird das PRogramm wenn jemand auf das TrayIcon klickt sichtbar gemacht. Ich möchte gleiches auch erreichen, wenn jemand auf das DesktopSymbol klickt. Und das geht doch mit NotifyIcon nicht?

Danke,
Markus
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Klick auf Desktop-Icon feststellen 
Autor: MarkusD
Datum: 09.03.12 07:07

Hallo!

Nach einer längeren Nacht und kurz vor Abgabe des Projektes hänge ich an einem mühsamen Problem. Ich habe eine Anwendung in VB2010Express erstellt, die mit Windows gestartet wird.
Bei der Installation wird ein DesktopIcon sowie ein TrayIcon angelegt.

Wenn die SW nun mit Windows gestartet wird, dann wird diese sofort als TrayIcon angezeigt. Die Oberfläche der SW ist nur zu sehen, wenn der User auf das TrayIcon klickt. Das funktioniert auch alles so wie es soll.

Das Problem ist: Es wird nicht unterschieden, ob die SW per Autostart über Windows geöffnet wird (dann wird sie minimiert) oder per Klick auf das DesktopSymbol (dann sollte sie nicht minimiert werden, sondern normal geöffnet werden).
Wie kann ich daher den Klick auf das DesktopSymbol abfragen?

Herzlichen Dank,
Markus
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Klick auf Desktop-Icon feststellen 
Autor: ModeratorFZelle (Moderator)
Datum: 09.03.12 10:22

Garnicht.

Du kannst höchstens einen Parameter übergeben und den auswerten.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Klick auf Desktop-Icon feststellen 
Autor: xater
Datum: 09.03.12 10:37

Hallo,

ich hab zwar keine Ahnung wie du das Code-Technisch lösen kannst, aber ich kann dir einen Gedankenstoß geben:

Wenn du auf das TrayIcon klickst, ist die Anwendung ja bereits geöffnet und ruft somit das Programm auf. Wenn du auf das Icon klickst kannst du doch einfach im Code abfragen ob ein Prozess von dem Programm schon läuft und dann einfach die Oberfläche öffnen ?! Vielleicht hilft dir das ja ein wenig weiter... LG,

Michael
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Klick auf Desktop-Icon feststellen 
Autor: MarkusD
Datum: 12.03.12 10:18

Hallo Michael!

Ich konnte einen kleinen Aufschub für das Projekt erwirken - dein Hinweis klingt super - ich werde das ausprobieren und mich dann melden!

Danke,
Markus
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: LÖSUNG: Klick auf Desktop-Icon feststellen 
Autor: MarkusD
Datum: 12.03.12 16:26

Nachdem ich nun wusste nach was ich suchen soll (danke für den Tipp), hier die Lösung (war sehr einfach):
http://www.vbarchiv.net/faq/faq_allg_net_mehrfachstart.html

Danke,
Markus
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: LÖSUNG: Klick auf Desktop-Icon feststellen 
Autor: ModeratorDaveS (Moderator)
Datum: 12.03.12 18:39

Naja, du solltest aber versuchen deine Probleme richtig zu beschreiben. Hättest du einfach geschrieben du willst einen mehrfachen Start unterbinden hättest du gleich die Antwort bekommen. Fazit: immer besser beschreiben was du erreichen willst, nicht wie du gedenskt dieses Ziel zu erreichen.

________
Alle Angaben ohne Gewähr. Keine Haftung für Vorschläge, Tipps oder sonstige Hilfe, falls es schiefgeht, nur Zeit verschwendet oder man sonst nicht zufrieden ist

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Doch nicht gelöst: Klick auf Desktop-Icon feststellen 
Autor: MarkusD
Datum: 14.03.12 07:53

Hallo Dave! Hallo an Alle!

Ich hatte das Problem nur halb beschrieben, wie ich letztlich aber feststellen musste auch nur halb gelöst. Ich kann zwar jetzt den Mehrfachstart verhindern, allerdings wird nach wie vor nicht unterschieben ob die SW über den Autostart gestartet wird (dann gleich in SysTray minimieren) oder über das Desktop Symbol (dann komplett öffnen).

Was mich wieder zurück an den Start bringt, mit der wesentlichen Unterscheidung, dass der Mehrfachstart nicht verhindert wird.

Ich habe auch schon versucht den Prozess abzufragen, allerdings ist natürlich beim Start der SW der Prozess schon vorhanden - ich habe Beispiele mit Schleifen gefunden, allerdings funktionieren diese Zählvariablen bei mir nicht (was mich eigentlich nicht wundert, da ja eine zweite Instanz des Programmes aufgerufen wird).

Habt ihr weitere Ideen?

Danke für eure Hilfe,
Markus
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Doch nicht gelöst: Klick auf Desktop-Icon feststellen 
Autor: ModeratorFZelle (Moderator)
Datum: 14.03.12 09:50

Meine Lösung hast Du ja einfach ignoriert.

Was anderes als mit Parametern geht nicht.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Doch nicht gelöst: Klick auf Desktop-Icon feststellen 
Autor: ModeratorDaveS (Moderator)
Datum: 14.03.12 09:50

Du kannst ja wie FZelle schon längst geschrieben hat einen Parameter übergeben. Den Parameter kannst du in Sub Main() oder mittels Environment.CommandLine bzw .GetCommandLineArgs() auslesen.

________
Alle Angaben ohne Gewähr. Keine Haftung für Vorschläge, Tipps oder sonstige Hilfe, falls es schiefgeht, nur Zeit verschwendet oder man sonst nicht zufrieden ist

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Doch nicht gelöst: Klick auf Desktop-Icon feststellen 
Autor: MarkusD
Datum: 14.03.12 12:34

Hallo!

Ich habe mir das mit dem Parametern schon angesehen, folgende Überlegung dazu:
Ich kann unter Projekteigenschaften Debuggen einen oder mehrere Parameter angeben. Lege als z.b. des Befehlszeilenargument 99 an (wobei 99 für start über das Desktop Symbol steht).

Was ich nun nicht verstehe: Wird dann nicht auch beim Autostart (wo ja die gleiche exe aufgerufen wird), nicht genau dieser Parameter ebenfalls mit übergeben?

Oder ich checks einfach nicht...

Jedenfalls herzlichen Dank,
Markus
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Doch nicht gelöst: Klick auf Desktop-Icon feststellen 
Autor: ModeratorDaveS (Moderator)
Datum: 14.03.12 13:07

Siehe Bild im nächsten Beitrag.

________
Alle Angaben ohne Gewähr. Keine Haftung für Vorschläge, Tipps oder sonstige Hilfe, falls es schiefgeht, nur Zeit verschwendet oder man sonst nicht zufrieden ist

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Doch nicht gelöst: Klick auf Desktop-Icon feststellen 
Autor: ModeratorFZelle (Moderator)
Datum: 14.03.12 13:38

Ja, du checkst es einfach nicht.

Was Du in VS.NET unter Debuggen einträgst ist, na?? Fürs debuggen.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Doch nicht gelöst: Klick auf Desktop-Icon feststellen 
Autor: ModeratorDaveS (Moderator)
Datum: 14.03.12 14:18

Anhang:  AnhangvomDesktop.jpg (270k)  

Ich glaube jemand hat den Thread verschoben und das Bild ist dabei verloren gegangen. Hier nochmal.

________
Alle Angaben ohne Gewähr. Keine Haftung für Vorschläge, Tipps oder sonstige Hilfe, falls es schiefgeht, nur Zeit verschwendet oder man sonst nicht zufrieden ist

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Doch nicht gelöst: Klick auf Desktop-Icon feststellen 
Autor: MarkusD
Datum: 15.03.12 07:48

Vielen herzlichen Dank!

Ich verwende derzeit Click-Once zur Installation und lege das Desktop Symbol auch damit an. Ich vermute, dass ich dabei keinen Parameter angeben kann (hab zumindest nicht gefunden wo man das einstellen könnte).
Ich müsste daher das Desktop Symbol vermutlich händisch anlegen, oder?

Danke,
Markus
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Doch nicht gelöst: Klick auf Desktop-Icon feststellen 
Autor: Rippler
Datum: 15.03.12 08:37

schau mal dass an:

benötigt:
ContextMenuStrip1 ein menuitem = Beenden

NotifyIcon1 ContextMenuStrip = ContextMenuStrip1
Icon = was im tray angezeigt wird

    Private Sub Form1_Shown(sender As Object, _
            e As System.EventArgs) _
            Handles Me.Shown
        Me.Visible = False
    End Sub
 
    Private Sub BeendenToolStripMenuItem_Click(sender As System.Object, _
            e As System.EventArgs) _
            Handles BeendenToolStripMenuItem.Click
        Me.Close()
    End Sub
 
    Private Sub NotifyIcon1_MouseClick(sender As Object, _
            e As System.Windows.Forms.MouseEventArgs) _
            Handles NotifyIcon1.MouseClick
        If e.Button = Windows.Forms.MouseButtons.Left Then Me.Visible = Not _
          Me.Visible
 
    End Sub
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Doch nicht gelöst: Klick auf Desktop-Icon feststellen 
Autor: MarkusD
Datum: 15.03.12 09:29

Hallo Rippler!

Danke, aber das übernimmt nur die Maus-Klicks im Tray, oder?
Die funktionieren bei mir eh. Bei einem Doppelklick auf das TrayIcon wird die SW angezeigt und nach vorne gebracht.

Danke,
Markus
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Doch nicht gelöst: Klick auf Desktop-Icon feststellen 
Autor: MarkusD
Datum: 15.03.12 09:30

Idee: Wahrscheinlich kann man im Autostart Befehl den Parameter auch anhängen, oder?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Doch nicht gelöst: Klick auf Desktop-Icon feststellen 
Autor: ModeratorDaveS (Moderator)
Datum: 15.03.12 09:48

Klar, geht es auch bei Autostart. Wie man das mit ClickOnce macht kann ich nicht sagen, man findet im Internet einiges zum Thema. Warum soll es eigentlich wichtig sein wie die Anwendung gestartet wird, lediglich kann der Benutzer das selbst bestimmen, und es gibt andere Möglichkeiten als nur Dekstop Icon und Autostart. Was ist damit?

________
Alle Angaben ohne Gewähr. Keine Haftung für Vorschläge, Tipps oder sonstige Hilfe, falls es schiefgeht, nur Zeit verschwendet oder man sonst nicht zufrieden ist

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Doch nicht gelöst: Klick auf Desktop-Icon feststellen 
Autor: Rippler
Datum: 15.03.12 10:24

hast du das beispiel überhaupt ausprobiert?

die sub notifyicon1_click
kann auch nofityicon1_doubleclick

das programm wird nicht mehrmals geladen
sondern nur sichtbar gemacht
braucht deshalb nicht extra abgefangen werden

in der sub notifyicon1_click or doubleclick (whatever)
ist dann doch was du möchtest.
eine routine die nur aufgerufen wird,
wenn im tray geklickt wird.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Doch nicht gelöst: Klick auf Desktop-Icon feststellen 
Autor: Rippler
Datum: 15.03.12 11:37

aber du dann doch 2 verschiedene einsprünge
in das programm und hast so die unterscheidung
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Doch nicht gelöst: Klick auf Desktop-Icon feststellen 
Autor: MarkusD
Datum: 15.03.12 12:05

Wenn die SW im Autostart gestartet wird, dann gleich minimiert.
Wenn der Autostart deaktiviert ist und über das DesktopSymbol, dann soll diese nicht gleich minimiert werden sondern auch "angezeigt" werden. Daher die Unterscheidung ob über Autostart oder über Desktop bzw Startmenü.

Werde das mal mit dem Parameter versuchen!

DANKE
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: GELÖST ABER WIRKLICH: Klick auf Desktop-Icon feststellen 
Autor: MarkusD
Datum: 15.03.12 12:28

So, jetzt ist es wirklich gelöst!

Da bei ClickOnce Anwendungen dem Desktop Symbol keine Parameter übergeben werden können, habe ich den Parameter -min beim Autostart mit eingetragen.
Nun wird prinzipiell das Programm immer über den Autostart aufgerufen und daher gleich in den Tray minimiert. Da es eine Einzelinstanzanwendung ist, wird bei Klick auf das DesktopSymbol das Programm nun in den Vordergrund gebracht.
Sollte der Autostart deaktiviert werden, so kann jederzeit das Programm über das DesktopSymbol gestartet werden. Da dort kein Parameter übergeben wird, startet das Programm gleich im Vollbildmodus.

Danke für eure Hilfe,
Markus
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel