externes programm starten mit positionsangabe



  • hi zusammen ich will ein programm (z.b.notepad) starten, das funktioniert auch.
    ABER : ich kann dem programm nicht sagen wo es aufgehen soll .

    STARTUPINFO         StartInfo;
      PROCESS_INFORMATION ProcInfo;
    
      memset(&ProcInfo, 0, sizeof(ProcInfo));
      memset(&StartInfo, 0 , sizeof(StartInfo));
    
      HWND hwnd = GetDesktopWindow();
      RECT rect;
      GetWindowRect(hwnd, &rect);
    
      int x = rect.right / 4;
      int y = rect.bottom / 4;
    
      StartInfo.cb = sizeof(StartInfo); // Set structure size
      StartInfo.dwX = x ;
      StartInfo.dwXSize = x;
      StartInfo.dwY = y ;
      StartInfo.dwYSize = y;
      StartInfo.wShowWindow = SW_SHOW;
      StartInfo.dwFlags = STARTF_USEPOSITION | STARTF_USESHOWWINDOW |  
                          STARTF_USESIZE ;
    
      StartInfo.lpDesktop = "Default";
    
      int res = CreateProcess(NULL, arguments.c_str(), NULL, NULL, NULL,
                              NULL, NULL, NULL, &StartInfo,
                              &ProcInfo);
    

    das programm wird auch fabelhaft gestartet, aber es ist ihm völlig egal was ich bei dwX,dwY,dwXSize oder dwSizeY eingebe



  • Vielleicht setzt du die Größe der Struktur lieber am Ende:

    //Alles einstellen
    StartInfo.cb = sizeof(StartInfo); // Set structure size
    

    Gruß!
    Unzi



  • nee habs anders gelöst:

    ich starte den process mit SW_HIDE
    und verschiebe ihn dann mit movewindow

    trotzdem danke


Anmelden zum Antworten