guten abend liebe leute,
ich habe mal wieder ein problem dessen lösung ich einfach nicht bewältige.
ich habe ein recht schlichtes win-consolenfenter in welches mein script befehle sendet.
nun passiert es aus mir unerklärlchen gründen, auf einigen rechnern, dass der titel
des fensters auf einmal wechselt. ich habe verzweifelt ursachenforschung betrieben,
konnte aber nicht wirklich herausfinden wann das passiert, warum und warum auf
einigen rechnern nicht. das problem daran ist, dass ich in dem moment wo der titel
wechselt keine möglichekeit mehr habe befehle an das fenster zu senden. :(((
welche möglichkeiten habe ich, den titel zuverlässig auszulesen ?
im speicher hab ich schon herumgesucht, doch leider bleibt dort immer nur der alte/erste titel an
der stelle die ich betrachtet habe .... bzw finde ich nix verwertbares.
wenn ich zuverlässig befehle senden will, dann sollte es einigermaßen schnell gehen den
titel zu ermitteln, so das ich es vor jedem befehl prüfen kann.
danke für die mühe.
Profifrage:Wechselnden Titel eines Fensters immer aktuell auslesen!?
-
- [ gelöst ]
-
WhiteLion -
2. November 2010 um 21:15 -
Geschlossen -
Erledigt
-
-
Wenn man einmal den Handle des Fensters hat, dann kann man das auch immer ansprechen!
(Das dachte ich zumindest bis jetzt)Bei Fehlern bitte korrigieren.
[autoit]$Handle = WinGetHandle("DeinFenster")
[/autoit] -
- Offizieller Beitrag
Sobal dein Script startet den Winhandle ermitteln.
Siehe Post uber mir.Wenn sich dann der Fenstertitel ändert kann es dir Schnuppe sein, du hast ja das Winhandle.
-
hmmm okey... ich hole mit jetzt ganz zu anfang das handle des editfeldes in den der text eingrtragen werden soll.
allerdings weiss ich nicht wie ich nur anhand des handles einen text abschicken und return drücken soll? -
- Offizieller Beitrag
Schau mal in der Hilfe:
[autoit]ControlCommand
[/autoit]
ControlClick
ControlSend
ControlSetText -
natürlich sind mir deine funktionen geläufig, evtl hab ich auch nur alle diese funktionen immer verkannt, aber ich sehe da immer "titel des fensters" als pflichtangabe. genau der ist ja variabel bzw den würde ich gerne gegen ein handle austauschen. gibt es denn die möglichkeit hier einfach das handle statt dessen zu verwenden ?
-
Ja, statt den Titel gibst du einfach den Handle an!
Schau mal in der Hilfe z.B. bei
ZitatWinActivate
nach, bei
ZitatParameters:
title: The title of the window to activate. See Title special definition.
klickst du auf Title special definition
Dann kommst du aufZitatWindow Titles and Text (Advanced)
Scroll nach unten und du siehstZitatWindow Handles / HWNDs
The variant datatype in AutoIt natively supports window handles (HWNDs). A window handle is a special value that windows assigns to a window each time it is created. When you have a handle you may use it in place of the title parameter in any of the function calls that use the title/text convention. The advantage of using window handles is that if you have multiple copies of an application open - which have the same title/text - you can uniquely identify them when using handles. When you use a window handle for the title parameter then the text parameter is completely ignored. -
aha danke
das muss man auch erstmal wissen/finden