Announcement

Collapse
No announcement yet.

Anwendung nur einmal ausführen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Anwendung nur einmal ausführen

    Hallo,

    ich hoffe, ich kann mich auch als blutiger Anfänger an euch wenden: ich habe das Problem, dass ein von mir erstelltes Programm (Visual C++ 6.0) in mehreren Instanzen geöffnet werden kann, d.h. pro Doppelklick auf das exe-File öffnet sich ein neues Fenster. Ich möchte aber, dass das Programm nur einmal ausgeführt werden kann, bei weiteren Versuchen sollte eine Meldung ausgegeben werden, welche auf das laufende Programm hinweist. Ist das möglich? Habe bereits ähnlich Einträge hier im Forum gesehen, aber für andere Programmiersprachen...
    Ich wäre euch für eine rasche Antwort dankbar,
    mfG

    Armin

  • #2
    da das allgemein ist, gilr es wohl für VC auch:

    http://www.marquardtnet.info/cecke/q...quicky_19.html
    Christian

    Comment


    • #3
      Hallo, arbeite nicht mit der Winapi, wie soll das dann gehen?
      Habe folgenden Code, dieser sollte fürs Starten der Applikation verantwortlich sein:

      #include "stdafx.h"
      #include "fkeySDK.h"
      #include "fkeySDKDlg.h"

      #ifdef _DEBUG
      #define new DEBUG_NEW
      #undef THIS_FILE
      static char THIS_FILE[] = __FILE__;
      #endif

      /////////////////////////////////////////////////////////////////////////////
      // CEasemateSDKApp

      BEGIN_MESSAGE_MAP(CEasemateSDKApp, CWinApp)
      //{{AFX_MSG_MAP(CEasemateSDKApp)
      //}}AFX_MSG
      ON_COMMAND(ID_HELP, CWinApp::OnHelp)
      END_MESSAGE_MAP()

      /////////////////////////////////////////////////////////////////////////////
      // CEasemateSDKApp Konstruktion

      CEasemateSDKApp::CEasemateSDKApp()
      {
      }

      /////////////////////////////////////////////////////////////////////////////
      // Das einzige CEasemateSDKApp-Objekt

      CEasemateSDKApp theApp;

      /////////////////////////////////////////////////////////////////////////////
      // CEasemateSDKApp Initialisierung

      BOOL CEasemateSDKApp::InitInstance()
      {
      // Standardinitialisierung

      #ifdef _AFXDLL
      Enable3dControls(); // Diese Funktion bei Verwendung von MFC in gemeinsam genutzten DLLs aufrufen
      AfxGetModuleState()->m_dwVersion = 0x0601;
      #else
      Enable3dControlsStatic(); // Diese Funktion bei statischen MFC-Anbindungen aufrufen
      #endif

      CEasemateSDKDlg dlg;
      m_pMainWnd = &dlg;
      int nResponse = dlg.DoModal();
      if (nResponse == IDOK)
      {
      }
      else if (nResponse == IDCANCEL)
      {
      }

      // Da das Dialogfeld geschlossen wurde, FALSE zurückliefern, so dass wir die
      // Anwendung verlassen, anstatt das Nachrichtensystem der Anwendung zu starten.
      return FALSE;
      }

      Wo kann ich hier den Code fürs einmalige Starten implementieren.
      Danke für eure Hilfe und sorry, aber bin noch komplett "n00big" unterwegs...
      mfG

      Armin

      Comment


      • #4
        Hallo, arbeite nicht mit der Winapi, wie soll das dann gehen?
        Selbstverständlich arbeitest du damit -> wie sollte es anders gehen???

        Auch du musst irgendwo eine WINMAIN haben, mit der das eigentliche Programm gestartet wird. Es geht nicht anders. Da kann die MFC nicht daran vorbei.

        Üblicherweise ist das die Projektname.cpp.

        Auch ich arbeite nicht primär mit der WinAPI, sondern mit der VCL. Du halt mit der MFC. Eine WINMAIN müssen wir beide haben.
        Christian

        Comment


        • #5
          Hallo zusammen,
          suche z. Zt. ebenfalls eine Lösung für meine mit VS2005 geschriebene Anwendung. Ich versuche einen Ansatz unter Verwendung der Klasse Process im Namespace System.Diagnostics, kann aber noch nicht absehen, ob ich auf dem "Holzweg" bin. Die Idee dahinter, falls eine Anwendung bereits läuft, muss sie mind. einen Prozess gestartet haben und den/die müsste ich doch ähnlich wie im Task-Manager ermitteln können.
          Gibt es da Erfahrungen?
          MfG
          zzrookie

          Comment

          Working...
          X