Programmstart verhindern



  • Ich hoffe ich bin im hier im richtigen Forum und das ihr mir weiterhelfen könnt.
    Ich habe folgendes Problem:
    Ich habe eine Webcamsoftware (CamSpy), die auf Bewegung reagiert. Dabei können Bilder und Videos aufgenommen, als auch ein Programm gestartet werden.
    Allerdings startet er das Programm bei jedem durch Bewegung ausgelösten Alarm. Was bei 25fps schonmal 50 mal öffnen bedeuten kann.
    Nun suche ich eine Möglichkeit, das mehrfache aufrufen zu verhindern. Ich hab ein Batchprogramm gefunden, welche das mehrfache Aufrufen verhindert. Aber dabei werden soviele Ressourcen verbraucht, das kaum noch Bilder aufgenommen werden.
    Und nun die eigentlich Frage:

    Gibt es in C++, C#, .net, MFC oder irgenteine andere Programmiersprache, die auf Windows läuft, die Möglichkeit, dass ein Programm nur einmal gestartet wird und alle restlichen Startversuche geblockt werden?

    Alternative Frage:
    Kann man die Öffnen-Funktion von Windows temporär deaktievieren?

    Ich bedanke mich schonmal für alle hilfreichen Antworten.

    Mfg alith



  • Gibt es in C++, C#, .net, MFC oder irgenteine andere Programmiersprache, die auf Windows läuft, die Möglichkeit, dass ein Programm nur einmal gestartet wird und alle restlichen Startversuche geblockt werden?

    Das ist nicht wesentlich von der Programmiersprache abhängig. Es werden Mechanismen vom OS benutzt (z.B. Prozessübergreifende Mutexe).

    Sieh mal hier:
    http://www.google.ch/search?hl=de&q=codeproject+single+instance+application&meta=



  • Vielen Dank, das sieht schonmal sehr gut aus.
    Ich versuch mal, etwas davon zu implementieren, mal gucken ob es klappt. 🙂

    Mfg alith


  • Mod

    Hier der Klassiker der Artikel zu diesem Thema inkl. Source:
    http://www.flounder.com/nomultiples.htm



  • Wenn du wirklich 25fps hast dann solltest du in deinem Programm schauen ob das externe bereits gestartet ist und das nicht über ein Batchprogramm machen.
    Es wird dann immer wieder das Batchprogramm aufgerufen auch wenn darin dann kein anderes Programm gestartet wird weil ein Mutex oder ähnliches existiert.
    Also baue lieber in dein Programm etwas ordentliches zusammen und vergiss Batchprogramme.



  • Das Batchprogramm hat sich schon als unbefriedigende Alternative erwiesen. Erstmal wird das Programm trotzdem noch 3 mal geöffnet. Außerdem verbraucht es derart viele Ressourcen, dass die Kamerasoftware nur so 4 bilder die Sekunde schafft zu erstellen.
    Ich versuche jetzt eine C# Alternative, wo der Programmierer sagt, das sie knapp 50 Öffnungen die Sekunde schafft. Mal gucken, ob es auch stimmt.^^
    Aber erstmal das Programm verstehen lernen, was garnicht so leicht ist, da ich in OOP nicht so geübt bin.

    mfg alith

    P.S.:
    Ich beziehe mein Visual Studio über MSDN AA. Welche Version sollte ich besser nehmen, die 2005 oder 2008?
    Weil die ganzen Beispiele im Netz beziehen sich auf VS 2005.



  • Ich beziehe mein Visual Studio über MSDN AA. Welche Version sollte ich besser nehmen, die 2005 oder 2008?
    Weil die ganzen Beispiele im Netz beziehen sich auf VS 2005.

    Nimm die neuste (2008).
    1. Sollten die Bsp. auch mit 2008 laufen
    2. Geht es doch bei den Bsp. ums Verständnis, muss also nicht mal lauffähig sein.

    Simon


Anmelden zum Antworten