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 movewindowtrotzdem danke