標籤:style blog class code java tar
function RunAppInPanel(const AppFileName: string; ParentHandle: HWND; var WinHandle: HWND): Boolean;var si: STARTUPINFO; pi: TProcessInformation;begin Result := False; // 啟動進程 FillChar(si, SizeOf(si), 0); si.cb := SizeOf(si); si.wShowWindow := SW_SHOW; if not CreateProcess(nil, PChar(AppFileName), nil, nil, true, CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS, nil, nil, si, pi) then Exit; // 等待進程啟動 WaitForInputIdle(pi.hProcess, 10000); // 取得進程的 Handle WinHandle := GetProcessWindow(pi.dwProcessID); if WinHandle > 0 then begin // 設定父表單 Windows.SetParent(WinHandle, ParentHandle); // 設定表單位置 SetWindowPos(WinHandle, 0, 0, 0, 0, 0, SWP_NOSIZE or SWP_NOZORDER); // 去掉標題列 SetWindowLong(WinHandle, GWL_STYLE, GetWindowLong(WinHandle, GWL_STYLE) and (not WS_CAPTION) and (not WS_BORDER) and (not WS_THICKFRAME)); Result := True; end; // 釋放 Handle CloseHandle(pi.hProcess); CloseHandle(pi.hThread);end;//var hWin: HWND = 0;//FormClose// if hWin > 0 then PostMessage(hWin, WM_CLOSE, 0, 0);//FormResize// if hWin <> 0 then MoveWindow(hWin, 0, 0, panel1.ClientWidth, panel1.ClientHeight, True);//if not RunAppInPanel(App, panel1.Handle, hWin) then ShowMessage(‘App not found‘);