tutorials.de Buch-Aktion 02/2012
ERLEDIGT
NEIN
ANTWORTEN
5
ZUGRIFFE
703
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    hoizfuchs hoizfuchs ist offline Rookie
    Registriert seit
    Jul 2010
    Beiträge
    6
    Hallo leute,

    habe folgendes Problem:

    habe ein c++ programm vor mir, dass mit dem namen "project2" auf dem Desktop geladen ist. Ein weiteres Assemblerprogramm ist auf einem Controllerboard gebrannt und über RS232 mit dem PC (C++) verbunden. Wenn nun das C++ Programm geöffnet ist und läuft, und man dann nochmal das Programm ein zweites Mal aufmacht, dann kommt die Fehlermeldung "Das Handle ist ungültig" Unsere Vermutung ist, dass dies mit der Schnittstelle zu tun hat, die gesucht wird, aber bereits in Gebrauch ist. Die Fehlermeldung "Das Handle ist ungültig" kommt dann jede Sekunde einmal bis das Desktop voll ist und man wird gezwungen, den PC herunterzufahren weil er total hängt.................
    Nun wäre eine Einstellung ohne Eingriff ins C++ sehr elegant, welche man unter Windows einstellen könnte, oder einfach irgendwas, dass das Programm kein zweites Mal gestartet werden darf, wenn es bereits offen ist.

    Würde mich ein beachtliches Stück weiterbringen, da das Bedienpersonal der Prüfanlage diesen Fehler sehr oft macht (besonders bei vorheriger Minimierung des Programms) und die Daten von 3h immer verloren sind.


    Mit freundlichen Grüßen
     

  2. #2
    Avatar von ComFreek
    ComFreek ComFreek ist offline [x] Let it be logic!
    tutorials.de Moderator
    Registriert seit
    Jun 2009
    Beiträge
    2.206
    Blog-Einträge
    3
    Hallo,

    habe ein c++ programm vor mir, dass mit dem namen "project2" auf dem Desktop geladen ist.
    Auf dem Desktop geladen? Du meinst wohl eine Verknüpfung, oder?

    Mir fällt momentan überhaupt nichts ein, dieses "Problem" zu lösen, ohne etwas programmiertechnisch zu machen. Man muss ja nicht unbedingt den Hauptcode (C++) ändern, sondern man kann ein "Zusatzprogrämmchen" machen.
     
    mfg ComFreek

    Falls ich dir geholfen habe, würde ich mich über ein DANKE freuen!
    Kenn mich am besten aus in C++, WEB-Sprachen (PHP, HTML, JavaScript) und vllt. mehr
    [PHP] Überprüfen, ob Website erreichbarSicherheit in PHP-Codes schaffenGoogle Chrome-Extension für tutorials.dejson_compress()

  3. #3
    Avatar von tombe
    tombe tombe ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Sep 2004
    Ort
    Möglingen (BaWü)
    Beiträge
    3.016
    Ich denke nicht das Windows überwachen kann ob ein Programm bereits gestartet ist oder nicht.

    Auch wenn es keine 100% Lösung für das Problem ist, so würde ich einfach das Programm/die Verknüpfung vom Desktop löschen und dafür einen Eintrag im Autostart machen.
    So wie ich dich verstehe ist das Programm ja eh immer im Einsatz, dann kann es auch beim Start von Windwos automatisch geladen werden.
     
    Sollte ein Tipp von mir geholfen haben, habe ich nichts gegen eine entsprechende Bewertung oder ein Danke und wenn ein Problem gelöst ist, dann den Beitrag bitte auch als erledigt markieren.

    Was ich gar nicht leiden kann sind User die es nicht für nötig halten auf Antworten zu reagieren, die Themen nicht als erledigt markieren und/oder die sich nicht für Hilfe bedanken.

  4. #4
    Avatar von vfl_freak
    vfl_freak vfl_freak ist offline Mitglied Diamant
    Registriert seit
    Aug 2007
    Ort
    Niedersachsen
    Beiträge
    2.098
    Moin,

    Zitat Zitat von tombe Beitrag anzeigen
    Ich denke nicht das Windows überwachen kann ob ein Programm bereits gestartet ist oder nicht.
    also eine Windows-Einstellung für das Problem kenne ich auch nicht, aber wir prüfen hier in einem unserer Tools über die Prozessliste, ob eine bestimme Anwendung läuft :
    Code cpp:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    
    /*****************************************************************************
     *  FUNCTION    : bool CTobitTemplateParser::isServiceLayerRunning()         * 
     *---------------------------------------------------------------------------*
     *  DESCRIPTION : Überprüfung ob der ServiceLayer "sl.exe"  läuft   *
     *                                                                           *
     *  ARGUMENT    : None                                                       *
     *  RETURN      : ja / nein                                                  *
     *****************************************************************************/
    bool CTobitTemplateParser::isServiceLayerRunning()
    {
        HANDLE hSnapShot;
        PROCESSENTRY32 pEntry;
     
        bool bRes = false;
     
        hSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
     
        if (hSnapShot == INVALID_HANDLE_VALUE)
        {
            TRACE("CreateToolhelp32Snapshot (of processes)");
            return (bRes);
        }
     
        pEntry.dwSize = sizeof(pEntry);
     
        while (1)
        {
            BOOL hRes = Process32Next( hSnapShot, &pEntry );
            
            if( hRes == FALSE )
                break;
     
            if( _strnicmp(pEntry.szExeFile, "sl.exe", strlen("sl.exe")) == 0 )
            {
                bRes = true;
                break;
            }
        }
        return bRes;
    }

    Ist ja als Anregung vlt. ganz hilfreich

    Gruß
    Klaus
     
    Es ist noch kein Meister vom Himmel gefallen - sonst hätte man schon längst seine Leiche gefunden !!

    Falls ich helfen konnte, wäre eine Bewertung oder ein Danke nett ;-)
    -------------------------------------------------------------------------------------------------
    Ich beantworte keine Fragen per PN !!
    Stellt Eure Fragen im Forum - dann haben alle etwas davon !!

  5. #5
    Avatar von tombe
    tombe tombe ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Sep 2004
    Ort
    Möglingen (BaWü)
    Beiträge
    3.016
    Vielleicht hilft dir das hier ja weiter: Windows Process Monitor
     
    Sollte ein Tipp von mir geholfen haben, habe ich nichts gegen eine entsprechende Bewertung oder ein Danke und wenn ein Problem gelöst ist, dann den Beitrag bitte auch als erledigt markieren.

    Was ich gar nicht leiden kann sind User die es nicht für nötig halten auf Antworten zu reagieren, die Themen nicht als erledigt markieren und/oder die sich nicht für Hilfe bedanken.

  6. #6
    Avatar von ComFreek
    ComFreek ComFreek ist offline [x] Let it be logic!
    tutorials.de Moderator
    Registriert seit
    Jun 2009
    Beiträge
    2.206
    Blog-Einträge
    3
    @vfl_freak: Es soll ja keine Eingriff in den Hauptcode erfolgen.
    Ich dachte mir, man schreibt ein kleines Batchprogramm. Auf dem Desktop ist eine Verknüpfung zu dieser Batch.
    Und diese Batch ruft das Programm auf, und verändert irgendwie die Verknüpfung (vllt. anderes Icon).
     
    mfg ComFreek

    Falls ich dir geholfen habe, würde ich mich über ein DANKE freuen!
    Kenn mich am besten aus in C++, WEB-Sprachen (PHP, HTML, JavaScript) und vllt. mehr
    [PHP] Überprüfen, ob Website erreichbarSicherheit in PHP-Codes schaffenGoogle Chrome-Extension für tutorials.dejson_compress()

Ähnliche Themen

  1. Photoshop Bridge zweimal öffnen
    Von Klausilein im Forum Photoshop
    Antworten: 3
    Letzter Beitrag: 18.03.09, 09:10
  2. Antworten: 1
    Letzter Beitrag: 19.09.08, 19:11
  3. Datei mit Programm öffnen und nicht im Browser
    Von Tyrone im Forum HTML & XHTML
    Antworten: 1
    Letzter Beitrag: 18.05.05, 15:36
  4. C# -- Programm öffnen
    Von Eismann1337 im Forum .NET Archiv
    Antworten: 1
    Letzter Beitrag: 24.02.05, 16:01
  5. C# -- Programm öffnen
    Von Eismann1337 im Forum C/C++
    Antworten: 1
    Letzter Beitrag: 24.02.05, 15:44

Stichworte