vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Mails senden, abrufen und decodieren - ganz easy ;-)  
 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

Visual-Basic Einsteiger
Ist die Anwendung (exe) schon geöffnet (gestartet) ? 
Autor: Tagedieb
Datum: 14.02.05 18:44

Hallo und guten Abend,

schon lange beschäftigt mich das Problem, dass ich meine exe mehrfach starten kann.
Ich will hier kurz vorstellen, wie ich das Problem gelöst habe. Zunächst ein Hinweis, meine diesbezugliche Suche in vb@rchiv führte mich unter anderem auf einen toten Link.
Aber nun zum Problem:
Ich habe mir im Startformular des Programms zwei Variablen erstellt:

Dim SchonOffen As Boolean
Dim FehlVersuch As Boolean
Am Ende des FormLoad Ereignisses (des Startformulars) setze ich SchonOffen auf True:

SchonOffen = True
und 'schreibe' den Wert in eine INI Datei (es geht sicher auch irgendeine Text Datei !)

txtInI(19).text = SchonOffen
... (bei mir ist es die Nr. 19)
und schließlich Speichern des Wertes in der INIDatei mit der üblichen Routine.
Der letzte Schritt (Speichern)ist sehr wichtig!

Am Anfang des FormLoad Ereignisses - aber nach Auslesen aller INI's ! - schreibe
ich den folgenden Code:

   If txtINI(19).Text = "Wahr" Then
            MsgBox "Das Programm ist bereits geöffnet", vbExclamation, " - db -" & _
              "Kalender"
            FehlVersuch = True  'wichtig, damit das auch nach dem zweiten und 
            ' dritten und ... Versuch funktioniert
        Unload Me
    Exit Sub
    End If
Da beim Start der exe (des Programms) auf die INI zugegriffen wird, steht im INI Wert (19) der Wert SchonOffen. Ist er Wahr, dann ist das Programm schon geöffnet.

In der Unload Prozedur steht dann der folgende Code:

    If FehlVersuch = False Then
        SchonOffen = False
        txtINI(19).Text = SchonOffen
    End If
Damit ist sicher gestellt, dass SchonOffen nur dann auf 'False' gesetzt wird, wenn kein FehlVersuch erfolgte.

Viel Spaß beim Ausprobieren

Gruß Thomas
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Ist die Anwendung (exe) schon geöffnet (gestartet) ? 
Autor: Master
Datum: 14.02.05 19:23

dein Lösungsvorschlag klingt recht interessant! Trotzdem würde ich die kürzere und einfachere Variante bevorzugen
http://www.vbarchiv.net/archiv/tipp_details.php?pid=389
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Ist die Anwendung (exe) schon geöffnet (gestartet) ? 
Autor: Tagedieb
Datum: 14.02.05 23:26

Hallo Master,

'kürzer' da hast du sicher recht, denn bei meinem Code kommt noch das Auslesen und Speichern aus bzw in die INI Datei hinzu! Aber 'einfacher'? Ich habe meine Probleme mit den Apis. Das ist für mich ein Buch mit sieben Siegeln. Nach welchen Kriterien ihr die erstellt, ist mir vollkommen schleierhaft. Ich weiß, dass es Apis fertig gibt, aber selbst das nützt mir nichts, weil ich gar nicht weiß, welche Api für welche Funktion zu gebrauchen ist. Das ist mir alles zu hoch! Und wenn es irgendwie geht, verzichte ich auf Apis in meinen Programmen. Die wenigen, die ich nutze, sind einfach in meinen Code kopiert, ohne sie zu verstehen - ich gebrauche sie einfach nur!

Gruß Thomas
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Ist die Anwendung (exe) schon geöffnet (gestartet) ? 
Autor: Elwood
Datum: 15.02.05 11:24

Moin Thomas,
mal ganz ruhig bleiben
API's sind keine Wunder und auch keine Wundertüten....oder vielleicht doch?
Die werden nicht von uns entwickelt, sondern werden vom Hersteller der Software (in diesem Fall Microsoft) bereitgestellt.
API's zu verwenden heisst nicht, dass man alles mit API's machen soll/muß.
Da wo es sich anbietet, nimmt man halt 'ne API und wenn man eine andere Möglichkeit hat....bitteschön.....geht doch auch.
In Deinem Falle könnte Deine Methode zu unerwünschten Nebeneffekten führen.
Wenn Deine Anwendung einfach mal so endet, wie Du es nicht geplant hast (nette Umschreibung für Absturz oder Stecker-Raus), wirst Du die Anwendung erst wieder zum Starten bewegen, wenn die Ini-Datei bereinigt wurde
Den Link, den Dir Master genannt hat ist doch gut
Es gibt dort die einfache Methode App.PrevInstance (übrigens keine API und weiter unten eine komfortable Methode (nicht für den Programmierer, zugegeben, aber dafür für den Anwender :top. Die brauchst Du nur so anwenden, wie es im tipp beschrieben ist und fertig.
Wo ist also das Problem?

ciao
Elwood

Wer sp?ter bremst, ist l?nger schnell

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Ist die Anwendung (exe) schon geöffnet (gestartet) ? 
Autor: Tagedieb
Datum: 16.02.05 13:14

Hallo Master, hallo Elwood,

das mit den 'Unerwünschten Nebeneffekten' stimmt. Hab's ausprobiert! Da war meine Idee wohl doch nicht so gut. Habe mir nochmal die einfachste Variante angesehen (ohne Api), If App.PrevInstance Then... Das klappt prima. Danke!

Gruß Thomas
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