Seite 1 von 2
Stringgadget und Listicon Inhalt/e ermitteln
Verfasst: 27.03.2007 05:01
von X0r
Hallo!
Ich will für eines meiner Programme einen Pluginloader schreiben und wollte wissen, wie ich den Inhalt eines stringgadgets und die Inhalte eines listicon gadgets über die WinAPI ermitteln kann.
Verfasst: 27.03.2007 14:24
von Fluid Byte
String Gadget: #WM_GETTEXT
ListIcon Gadget: #LVM_GETITEM / #LVM_GETITEMTEXT
Verfasst: 30.03.2007 21:03
von X0r
SendMessage_(sg,#wm_settext,0,text$)
Funktioniert super.
Debug SendMessage_(sg,#wm_gettext,0,0)
Debugger: "0"
Mache ich was falsch?
Verfasst: 30.03.2007 21:07
von ts-soft
>> Mache ich was falsch?
Ja, ich nehme mal an, das ein Buffer und dessen Länge gebraucht wird, um
den Text speichern zu können, hab aber nicht nachgeschaut, kannste ja auch
mal selber suchen.
Verfasst: 30.03.2007 21:19
von X0r
Ok, habs durch logisches denken(!) herausgefunden:
Global memory=AllocateMemory(1000)
SendMessage_(GadgetID(sg),#wm_gettext,SendMessage_(GadgetID(sg),#wm_gettext,SendMessage_(GadgetID(sg),#wm_gettextlength,0,0),memory) memory)
Debug PeekS(memory)
FreeMemory(memory)
Danke für den Tipp.
Eine Frage: Ist es eigentlich möglich, von einer DLL aus das handle "zu ermitteln", ohne dass ich das handle der DLL übergeben muss?
Verfasst: 30.03.2007 21:27
von edel
hae ... Warum holst du dir 2 mal den Text ?
Code: Alles auswählen
len = SendMessage_(GadgetID(sg),#WM_GETTEXTLENGTH,0,0)
memory = AllocateMemory(len)
len2 = SendMessage_(GadgetID(sg),#WM_GETTEXT,len, memory)
If len <> len2
Debug "Text nicht vollstaendig"
EndIf
Was fuern "handle" ?
Verfasst: 30.03.2007 21:51
von X0r
hae ... Warum holst du dir 2 mal den Text ?
Code:
len = SendMessage_(GadgetID(sg),#WM_GETTEXTLENGTH,0,0)
memory = AllocateMemory(len)
len2 = SendMessage_(GadgetID(sg),#WM_GETTEXT,len, memory)
If len <> len2
Debug "Text nicht vollstaendig"
EndIf
Edit:
Ich habe mich oben vertippt, meinte:
SendMessage_(GadgetID(sg),#wm_gettext,SendMessage_(GadgetID(sg),#wm_gettextlength,0,0),memory)
>Was fuern "handle" ?
das vom stringgadget?! Oder ist handle hier der falsche Begriff?
Verfasst: 30.03.2007 23:12
von ts-soft
Forge hat geschrieben:
>Was fuern "handle" ?
das vom stringgadget?! Oder ist handle hier der falsche Begriff?
EnumChildWindow, FindWindow, GetClassName usw., such Dir aus, was Du
brauchst um das Handle des Stringgadgets zu finden, übergeben ist
einfacher!
Verfasst: 30.03.2007 23:28
von X0r
Wie macht man das eigentlich generell bei Plugin-Unterstützung?
Übergibt man der Funktion der DLL das handle oder darf der Plugin-Programmierer das selbst finden?
Verfasst: 30.03.2007 23:33
von ts-soft
Forge hat geschrieben:Wie macht man das eigentlich generell bei Plugin-Unterstützung?
Generelle Lösungen kenne ich nicht, immer das was sich anbietet!
Forge hat geschrieben: Übergibt man der Funktion der DLL das handle oder darf der Plugin-Programmierer das selbst finden?
Mach wie Du es am einfachsten findest, aber übergeben würde ich es schon,
ohne suchen. Empfehlenswert wäre: SetEnvirontvariable, so hat die DLL
gleich alles Parat, ohne das extra was übergeben wurde.