panel内嵌程序窗体

2020-11-20 22:09

阅读:1025

标签:style   blog   class   code   java   tar   

 

soscw.com,搜素材
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);
soscw.com,搜素材

panel内嵌程序窗体,搜素材,soscw.com

panel内嵌程序窗体

标签:style   blog   class   code   java   tar   

原文地址:http://www.cnblogs.com/MaxWoods/p/3710446.html


评论


亲,登录后才可以留言!