| |
VB.NET - Ein- und UmsteigerRe: 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 | |
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 | |
Re: Klick auf Desktop-Icon feststellen | | | Autor: FZelle (Moderator) | Datum: 09.03.12 10:22 |
| Garnicht.
Du kannst höchstens einen Parameter übergeben und den auswerten. | |
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 | |
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 | |
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 | |
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 | |
Re: Doch nicht gelöst: Klick auf Desktop-Icon feststellen | | | Autor: FZelle (Moderator) | Datum: 14.03.12 09:50 |
| Meine Lösung hast Du ja einfach ignoriert.
Was anderes als mit Parametern geht nicht. | |
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 | |
Re: Doch nicht gelöst: Klick auf Desktop-Icon feststellen | | | Autor: FZelle (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. | |
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 | |
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 | |
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 | |
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? | |
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. | |
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 | |
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 | |
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 | |
| 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 |
|
|
vb@rchiv CD Vol.6 vb@rchiv Vol.6
Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
Online-Update-Funktion Entwickler-Vollversionen u.v.m.Jetzt zugreifen Tipp des Monats sevOutBar 4.0
Vertikale Menüleisten á la Outlook
Erstellen von Outlook ähnlichen Benutzer- interfaces - mit beliebig vielen Gruppen und Symboleinträgen. Moderner OfficeXP-Style mit Farbverläufen, Balloon-Tips, u.v.m. Weitere Infos
|