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
Stringgadget() von anderen Programm
- Tsuki-Namida
- Beiträge: 633
- Registriert: 17.11.2005 13:27
- Kontaktdaten:
Re: Stringgadget() von anderen Programm
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
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
- Tsuki-Namida
- Beiträge: 633
- Registriert: 17.11.2005 13:27
- Kontaktdaten:
Re: Stringgadget() von anderen Programm
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
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:

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:
Code: Alles auswählen
GetWindow_(handle,#GW_HWNDNEXT)
- Tsuki-Namida
- Beiträge: 633
- Registriert: 17.11.2005 13:27
- Kontaktdaten:
Re: Stringgadget() von anderen Programm
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...
ach ja "Edit" kommt 3 mal vor...
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

Re: Stringgadget() von anderen Programm
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
- Tsuki-Namida
- Beiträge: 633
- Registriert: 17.11.2005 13:27
- Kontaktdaten:
Re: Stringgadget() von anderen Programm
haaaa okay vielen dank
ich hätte mal dusub variable versuchen sollen......
jetzt funktioniert es
vielen dankk noch mal

jetzt funktioniert es

vielen dankk noch mal

