小编NMD*_*NMD的帖子

Delphi 7 32位执行并等待64位进程

我曾经使用下面的函数启动并等待unil结束进程.

它适用于在32位或64位OS上启动和等待32位进程.

但是在64位操作系统上,当我启动64位进程(WaitForSingleObject = WAIT_OBJECT_0)时它会立即返回.

例如,如果我的应用程序(32位),在32位操作系统上启动mstsc.exe它没关系,但它不会在64位操作系统上等待,因为mstsc.exe是64位程序.

有解决方案吗

function gShellExecuteAndWait(
                              vHandle     : HWND;
                              vOperation  : string;
                              vFichier    : string;
                              vParametres : string;
                              vRepertoire : string;
                              vAffichage  : Integer;
                              vDuree      : DWORD;
                              var vErreur : string
                             ) : Boolean;
var
  vSEInfo  : TShellExecuteInfo;
  vAttente : DWORD;
begin
  // Initialisation
  Result   := True;
  vErreur  := '';
  vAttente := 0;

  // Initialisation de la structure ShellExecuteInfo
  ZeroMemory(@vSEInfo, SizeOf(vSEInfo));

  // Remplissage de la structure ShellExecuteInfo
  vSEInfo.cbSize       := SizeOf(vSEInfo);
  vSEInfo.fMask        := SEE_MASK_NOCLOSEPROCESS;
  vSEInfo.Wnd          := vHandle;
  vSEInfo.lpVerb …
Run Code Online (Sandbox Code Playgroud)

delphi process

13
推荐指数
1
解决办法
1212
查看次数

TTreeView自定义绘制项宽度

我使用 OnCustomDrawItem 事件来绘制 TTreeView,如下所示:

图片1

这是我的代码:

procedure Tform1.trvArbreCustomDrawItem(Sender: TCustomTreeView; Node: TTreeNode; State: TCustomDrawState; var DefaultDraw: Boolean);
var
  vRect      : TRect;
  vBmp       : TBitmap;
  vBmpRect   : TRect;
  vTreeView  : TTreeView;
  vBarreInfo : TScrollInfo;
  vDeltaX    : Integer;
begin
  DefaultDraw := False;
  vTreeView   := TTreeView(Sender);

  vRect := Node.DisplayRect(False);

  vBmp := TBitmap.Create();

  FillChar(vBarreInfo, SizeOF(vBarreInfo), 0);

  vBarreInfo.cbSize := SizeOf(vBarreInfo);
  vBarreInfo.fMask  := SIF_RANGE or SIF_POS;

  if GetScrollInfo(trvArbre.Handle, SB_HORZ, vBarreInfo) then
  begin
    if vBarreInfo.nMax > vRect.Right  - vRect.Left then
    begin
      vBmp.Width  := vBarreInfo.nMax + 1;
      vBmp.Height := vRect.Bottom …
Run Code Online (Sandbox Code Playgroud)

delphi

5
推荐指数
1
解决办法
1608
查看次数

标签 统计

delphi ×2

process ×1