gibt es eine Möglichkeit, dass ich ein DateGadget in einem anderen Programm auf das heutige Datum setzen kann?
Vielleicht ein ähnlicher Befehl wie:
Code: Alles auswählen
SendMessage_(GadgetID.l, #WM_GETTEXT, TextLength.l, @Content.s)

Code: Alles auswählen
SendMessage_(GadgetID.l, #WM_GETTEXT, TextLength.l, @Content.s)
Nicht nur Strings, sondern ueberall wo man den Speicher uebergibt.Josh hat geschrieben:Etwas komplizierter wird es, wenn du mit Strings arbeiten musst. In diesem Fall musst du erst mit VirtualAllocEx_ im fremden Prozess einen Speicher reservieren und mit WriteProcessMemory_ deinen String da reinstellen bzw. auslesen.
Code: Alles auswählen
Procedure WriteDate(hDate, wYear.w,wMonth.w,wDay.w)
Protected hProc, pId, sysTime.SYSTEMTIME, *mem, result
If GetWindowThreadProcessId_(hDate, @pID)
hProc = OpenProcess_(#PROCESS_ALL_ACCESS, 0, pID)
If hProc
sysTime\wYear = wYear
sysTime\wMonth = wMonth
sysTime\wDay = wDay
*mem = VirtualAllocEx_(hProc, #Null, SizeOf(SYSTEMTIME), #MEM_COMMIT, #PAGE_READWRITE)
If *mem
WriteProcessMemory_(hProc, *mem, @sysTime, SizeOf(SYSTEMTIME), #Null)
result = SendMessage_(hDate, #DTM_SETSYSTEMTIME, 0, *mem)
VirtualFreeEx_(hProc, *mem, SizeOf(Integer), #MEM_RELEASE)
EndIf
CloseHandle_(hProc)
EndIf
EndIf
ProcedureReturn result
EndProcedure
Cool so eine Liste ist mal niceEine Aufstellung der Events findest du z.B. hier