Registriert seit: 16. Apr 2007
2.325 Beiträge
Turbo Delphi für Win32
|
Re: Welche unit wird benötigt?
22. Dez 2007, 19:26
In einer Fremdanwendung ist das nur unwesentlich komplizierter:
Delphi-Quellcode:
var TB: Commctrl.TBBUTTONINFO; p: Commctrl.PTBBUTTONINFO;
begin
p := VirtualAllocEx(ProcessHandle, nil, SizeOf(TB), MEM_COMMIT, PAGE_READWRITE);
TB.cbSize := SizeOf(TB);
TB.dwMask := CommCtrl.TBIF_COMMAND;
WriteProcessMemory(ProcessHandle, p, @TB, SizeOf(TB.cbSize) + SizeOf(TB.dwMask), nil);
SendMessage(..., TB_GETBUTTONINFO, BtnIndex, Cardinal(p));
ReadProcessMemory(ProcessHandle, p, @TB, SizeOf(TB), nil);
SendMessage(..., TB_PRESSBUTTON, TB.idCommand, MAKELONG (1, 0));
VirtualFreeEx(ProcessHandle, p, 0, MEM_RELEASE);
end;
Das Prozess- Handle erfährst du mithilfe von GetWindowThreadProcessId.
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
|
|
Zitat
|