Seite 1 von 1
Stringgadget() von anderen Programm
Verfasst: 26.07.2011 13:49
von Tsuki-Namida
hallo,
ich möchte ein Stringgadget() auseinemanderen programm auslesen...
ich habezwarversuchr überdas PureBoard was zu finden aber ich habe wohlnicht die richtigen suchbegriffe parat.... oder es wurde wirklich noch nicht angefragt....
ich hoffe das mir jemand helfen kann den stringgadget auszulesen....
danke
Re: Stringgadget() von anderen Programm
Verfasst: 26.07.2011 13:54
von RSBasic
Du musst zuerst die Handle-Nummer des Fensters und des Controls ermitteln. Diese kannst du mit FindWindow_() und FindWindowEx_() ermitteln. Wenn du die Handle-Nummer hast, dann hast du auch Zugriff drauf und kannst beispielsweise den Inhalt auslesen.
Beispiel:
http://www.rsbasic.de/aktualisierung/wi ... mitteln.pb
Zum Ermitteln der Informationen für die Verwendung von FindWindow(Ex)_() sind folgende Anwendungen hilfreich:
http://www.rsbasic.de/temp/ShoWin.exe
http://www.rsbasic.de/temp/WinSpy.exe
Re: Stringgadget() von anderen Programm
Verfasst: 26.07.2011 14:15
von Tsuki-Namida
okay das heandling habe ich.... wiekomme ich jetzt auf rischtigen inhalt des stringgadgets? es sind insgesammt 3 stinggadgets verfügbar
Re: Stringgadget() von anderen Programm
Verfasst: 26.07.2011 14:25
von RSBasic
Wenn du die Anwendung "WinSpy" heruntergeladen und gestartet hast, dann kannst du mit Hilfe des Picker-Tool "Window Picker" mit der gerdrückten Maustaste auf deine geschwünschte Leiste (StringGadget) schieben und dann erhälst du im WinSpy-Fenster die gewünschten Informationen:
Die erste Information ist das Hauptfenster der Anwendung. Dadrunter ist dein StringGadget "Edit". Nun kannst du mit Hilfe dieser Information dein Control finden, um die Handle-Nummer zu ermitteln. Wie das funktioniert, kannst du aus dem Beispielcode (s.o.) entnehmen. Und das Auslesen ebenfalls. Du musst nur die Namen anpassen.
Wenn es mehrere Edit-Controls gibt, kannst du zum nächsten Control springen, um die Handle-Nummer zu ermitteln:
Re: Stringgadget() von anderen Programm
Verfasst: 26.07.2011 16:20
von Tsuki-Namida
ich bekomme es irgentwie nicht hin -.-
ich habe zwar GetWindow_(handle,#GW_HWNDNEXT) genommen aber ich bekomme , egal wie offt ich den gefehl einsetze, das selbe ergebnis zurück....
die variable habe ich mit der variable "hwnd" ersetzt....
hier noch mal der geänderete code ausschnit...
Code: Alles auswählen
If hwnd
subhwnd=FindWindowEx_(hwnd, #Null, "Edit", #Null)
Debug subhwnd
If subhwnd
hwndlength = SendMessage_(subhwnd, #WM_GETTEXTLENGTH, 0, 0)+1
content$ = Space(hwndlength)
SendMessage_(subhwnd, #WM_GETTEXT, hwndlength, @content$)
MessageRequester("","Inhalt des Editors: "+content$,0)
EndIf
EndIf
ach ja "Edit" kommt 3 mal vor...
Re: Stringgadget() von anderen Programm
Verfasst: 26.07.2011 16:30
von RSBasic
Code: Alles auswählen
EnableExplicit
Define EventID
Define hwnd
Define subhwnd
Procedure.s GetControlContent(Handle)
Protected hwndlength
Protected content$
hwndlength = SendMessage_(Handle, #WM_GETTEXTLENGTH, 0, 0)+1
content$ = Space(hwndlength)
SendMessage_(Handle, #WM_GETTEXT, hwndlength, @content$)
ProcedureReturn content$
EndProcedure
If OpenWindow(0,0,0,500,400,"WindowXYZ",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
StringGadget(1,10,10,200,20,"Test 1",0)
StringGadget(2,10,40,200,20,"Test 2",0)
StringGadget(3,10,70,200,20,"Test 3",0)
hwnd = FindWindow_(#Null,"WindowXYZ")
If hwnd
subhwnd=FindWindowEx_(hwnd, #Null, "Edit", #Null)
If subhwnd
Debug GetControlContent(subhwnd)
subhwnd = GetWindow_(subhwnd,#GW_HWNDNEXT)
Debug GetControlContent(subhwnd)
subhwnd = GetWindow_(subhwnd,#GW_HWNDNEXT)
Debug GetControlContent(subhwnd)
EndIf
EndIf
Repeat
EventID=WaitWindowEvent()
If EventID = #PB_Event_CloseWindow
End
EndIf
ForEver
EndIf
Re: Stringgadget() von anderen Programm
Verfasst: 26.07.2011 16:42
von Tsuki-Namida
haaaa okay vielen dank

ich hätte mal dusub variable versuchen sollen......
jetzt funktioniert es

vielen dankk noch mal
