乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      獲取外部程序的TreeView文本

       昵稱29079058 2018-08-09
      function TForm1.GetTreeViewText(mHandle: THandle; Str: String): String;
      function TreeNodeGetNext(mHandle: THandle; mTreeItem: HTreeItem): HTreeItem;
      var
        vParentID: HTreeItem;
      begin
        Result := nil;
        if (mHandle <> 0) and (mTreeItem <> nil) then
        begin
          Result := TreeView_GetChild(mHandle, mTreeItem);
          if Result = nil then
            Result := TreeView_GetNextSibling(mHandle, mTreeItem);
          vParentID := mTreeItem;
          while (Result = nil) and (vParentID <> nil) do
          begin
            vParentID := TreeView_GetParent(mHandle, vParentID);
            Result := TreeView_GetNextSibling(mHandle, vParentID);
          end;
        end;
      end;
      var
        vItemCount: Integer;
        vBuffer: array[0..255] of Char;
        vProcessId: DWORD;
        vProcess: THandle;
        vPointer: Pointer;
        vNumberOfBytesRead: Cardinal;
        i: Integer;
        vItem: TTVItem;
        vTreeItem: HTreeItem;
        tmp, tmp1: string;
      begin
        Result := '';
        tmp:=UpperCase(Trim(Str));
        if tmp='' then Exit;
        GetWindowThreadProcessId(mHandle, @vProcessId);
        vProcess:=  OpenProcess(PROCESS_ALL_ACCESS,False,vProcessId);
        vPointer := VirtualAllocEx(vProcess, nil, 4096, MEM_RESERVE or MEM_COMMIT,
                    PAGE_READWRITE);
        try
          vItemCount := TreeView_GetCount(mHandle);
          vTreeItem := TreeView_GetRoot(mHandle);
          for i := 0 to vItemCount - 1 do
          begin
            with vItem do
            begin
              mask := TVIF_TEXT;
              cchTextMax := SizeOf(vBuffer);
              pszText := Pointer(Cardinal(vPointer) + SizeOf(vItem));
              hItem := vTreeItem;
            end;
            WriteProcessMemory(vProcess, vPointer, @vItem, SizeOf(vItem), vNumberOfBytesRead);
            SendMessage(mHandle, TVM_GETITEM, 0, lparam(vPointer));
            ReadProcessMemory(vProcess, Pointer(Cardinal(vPointer) + SizeOf(TLVItem)),
                              @vBuffer[0], SizeOf(vBuffer), vNumberOfBytesRead);
            tmp1 := UpperCase(string(vBuffer));
            if AnsiPos(tmp,tmp1)>0 then
            begin
              Result := tmp1;
              Break;
            end;
            vTreeItem := TreeNodeGetNext(mHandle, vTreeItem);
          end;
        finally
          VirtualFreeEx(vProcess, vPointer, 0, MEM_RELEASE);
          CloseHandle(vProcess);
        end;
      end;

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約