Prozess mit createprocess plus mehr Probleme



  • Hallo zusammen,

    habe folgenden Istzusatnd:
    Ich starte einen neuen Prozess (exe) mit einem Button aus einem Programm.

    Habe dies mit CreateProcess realisiert. Funktioniert so weit gut.
    Nun will ich noch folgendes realisieren, bekomme es aber nicht hin:

    1. Prozess darf nur einmal gestartet werden.
    2. Prozess (Fenster) soll immer an derselben Position gestartet werden und soll immer gleich groß sein
    3. Und Fenster muss immer im Vordergrund bleiben

    Hänge mal nen Teil meines Codes an

    Ich hoffe mir kann hier jemand weiterhelfen

    thx Angela_Anaconda 😡

    char Browser[128];
    
       STARTUPINFO si;
       ZeroMemory (&si, sizeof(STARTUPINFO));
       si.cb =  sizeof(STARTUPINFO);
       si.wShowWindow = SW_SHOWDEFAULT;
       si.lpReserved = NULL;
       si.dwX = 0;
       si.dwY = 120;
       si.dwXSize = 180;
       si.dwYSize = 90;
       si.dwFlags = STARTF_USESHOWWINDOW / STARTF_USEPOSITION | STARTF_USESIZE;
       PROCESS_INFORMATION pi;
       ZeroMemory (&si, sizeof(PROCESS_INFORMATION));
    
       if (Parameter = 1 )
       {
      GetPrivateProfileString("INIT",
    			"BROWSER",
    			"C:\Programme\remote control\control.exe",
    														Browser,
    														62,
    														"xxx.ini");
    
          bool ok = CreateProcess(NULL,Browser,NULL,NULL,TRUE,
                		NORMAL_PRIORITY_CLASS ,NULL,NULL,&si,&pi);
    
       }
    


  • [quote="Angela_Anaconda"]

    > 1. Prozess darf nur einmal gestartet werden.
    dafür muss der prozess selber sorgen z.b. indem er ein systemweites objekt erzeugt dessen vorhandensein er abfragt (mutex, event etc.)

    > 2. Prozess (Fenster) soll immer an derselben Position gestartet werden und soll immer gleich groß sein
    das geht auch nur ganz sicher wenn der prozess das selber macht

    > 3. Und Fenster muss immer im Vordergrund bleiben
    ebenfalls. prozess muss auf gewisse messages reagieren z.b. WM_WINDOWPOSCHANGING etc. und dan SetForegroundWindow o.ä aufrufen


Anmelden zum Antworten