Witam mam mały problem ze zmianą okna programu który chcę uruchomić.
Mianowicie posiadam kod:
OpenFileDialog file = new OpenFileDialog();
DialogResult result = file.ShowDialog();
String filename = "";
if (result == DialogResult.OK)
filename = file.FileName;
Process p = Process.Start(filename);
p.WaitForInputIdle();
while (p.MainWindowHandle == IntPtr.Zero) { } //tu może być Thread.Sleep(500)
MoveWindow(p.MainWindowHandle, 0, 0, 200, 200, true);
jednak jak uruchamiam np notatnik (wskazując dokłądną lokalizację pliku notepad.exe) to program uruchamia się prawidłowo z taką wielkością okna jak wpisałem w funkcji MoveWindow. Jednak jak np uruchomię program Geany to także uruchamia się z moimi parametrami wielkości ale jak tylko złapię za belkę u góry i chcę przenieść okno to zmienia ono automatycznie wielkość na większą. Jak zrobić aby każdy uruchomiony program (chciałbym uruchamiać programy z mojej aplikacji) miał taką wielkość okna jak wpisałem (oraz pozycję tego okna)?
Oczywiście MoveWindow jest z user32
[DllImport("user32.dll", SetLastError = true)]
internal static extern bool MoveWindow(IntPtr hWnd, int X, int Y, int nWidth, int nHeight, bool bRepaint);
Myślałem jeszcze czy nie lepiej będzie np hostować aplikacje ( http://www.codeproject.com/Articles/9123/Hosting-EXE-Applications-in-a-WinForm-project ) ktoś pomoże?