Hallo,
ich versuche gerade, den aktuellen Installer von ICQ zu automatisieren. Leider haben die in der letzten Version alle Optionen in einen Treeview platziert (mit Checkboxen zum An/Abwählen). Ich müßte nun eine Möglichkeit haben, von einem Delphiprogramm aus, die Checkbox eines Treeitems zu prüfen und gegebenenfalls zu deselektieren.
Ich hab zwar hier schon etwas Code gefunden, der mir zumindest mal die Captions der Einträge im Treeview liefert:
http://www.delphipraxis.net/666680-post6.html nur wie komme ich hier nun an die Checkboxen ran und kann diese dann verändern?
Das hier ist wohl der Schlüssel:
Delphi-Quellcode:
if WriteProcessMemory(hProc, MemRemote, MemLocal, BufferSize, BytesW)
and (SendMessage(hTree, TVM_GETITEM, 0, LPARAM(MemRemote))> 0)
and ReadProcessMemory(hProc, MemRemote, MemLocal, BufferSize, BytesR)
and (SendMessage(hTree, TVM_GETITEMRECT, Integer(true), Cardinal(MemRemote)+ SizeOf(TTvItem))> 0)//GETITEMRECT
and ReadProcessMemory(hProc, Pointer(Cardinal(MemRemote)+ SizeOf(TTvItem)), Pointer(Cardinal(MemLocal)+ SizeOf(TTvItem)), SizeOf(TRect), BytesR) then
...
Kann mir das vieleicht mal jemand etwas ausführlicher erklären? Bzw: versteh ich das richtig so: Es wird ein Treeitem Struktur in den externen Prozeß kopiert, diese dann dort mit TVM_GetItem gefüllt und anschließend mit ReadProcessMemory wieder in den Lokalen Treeview zurückkopiert. Das gleiche Spiel dann mit den ItemRect Daten.
Nur ist mir jetzt hier nicht klar, wie ich das abändern muß um an die Checkboxen zu kommen.
Andere Möglichkeit, die helfen würde: gibt es eine Möglichkeit den ICQ Installer irgendwie mit einem Parameterfile zu starten? Wenn ja, wo gibt's Infos dazu?
vielen Dank,
Uli