Hallo und wiedermal ich und wiedermal ein Problem...
Ich möchte mir eine Zahl aus einem Fenster auslesen lassen.
Das Problem ist die Zahl ist nicht makierbar und ich muss gestehen ich habe keine ahnung wie das gehen soll.
Währe für anregungen sehr dankbar.
Es geht um Vacuum low auf diesem Bild 4,3E+0
Das Programm soll ständig im hintergrund laufen und eventuell kontinuirlich auslesen bzw wenn geht auf änderung und mir das in ein excel schreiben
lg Aquila
Auslesen eines Wertes
-
- [ gelöst ]
-
Aquila -
10. März 2010 um 15:41 -
Geschlossen -
Erledigt
-
-
Hallo aquilla,
hast du schon probiert mit dem AutoIt Window Info Tool (Program Files\AutoIt3\AU3Info.exe) an Informationen über das Control zu bekommen
mfg (Auto)Bert
-
aja gute idee^^ hät ich eigentlich selbst drauf kommen können...
ja ist gegangen und controlgettext hab ichs jetzt ausgelesen
hat vielleicht jemand eine idee wie ich das ganze jetzt auf änderung ablesen kann?
lg Aquila -
einfach immer wieder überprüfen
[autoit]
so in etwa^^$wertalt = Controlgettext(...)
[/autoit][autoit][/autoit][autoit]
adlibregister("check")func check()
[/autoit]
$wertneu = Controlgettext(...)
if $wertalt = $wertneu then
msgbox(0,"","Änderung")
$wertalt = $wertneu
endif
endfunc -
besten dank für die hilfe zu adlibregister() muss ich die dann wieder mit adlibunregister() am ende des skripts entfernen oder ist das egal
und wenns egal ist wozu benötigt man dann die unregister dann? -
Hallo aquilla,
es ist nicht zwingend vorgechrieben, aber es schadet nicht und sieht auch besser aus. Meistens wird adlibunregister verwendet, wenn in bestimmten Situationen die registrierte func nicht ausgeführt werden soll,
mfg (Auto)Bert
-
besten dank damit ist mein problem gelöst
[autoit]
edit: so doch noch ein problem
mein script schaut jetzt folgendermasen aus:#include
[/autoit][autoit][/autoit][autoit]
AdlibEnable("Test")global $Vacuumalt
[/autoit][autoit][/autoit][autoit]
func Test()
$Vacuumneu=ControlGetText("GC/MS Monitor","",123)
if not $vacuumneu =$vacuumalt then
$file=FileOpen("Vacuum.txt",1)
$time=_NowCalc()
$Temperatur=ControlGetText("GC/MS Monitor","",60)
FileWriteLine($file,$time &" "& $Temperatur&" "&$vacuumneu)
FileClose($file)
$vacuumalt=$vacuumneu
Else
EndIf
EndFuncwhile 1
[/autoit]
WEnd
AdlibEnable() Weil windows98 und im entsprechendem autit hat der befehl nochso geheißen...
das Problem ist er schreibt mir den wert garnicht in mein file
er schreibt nur den ersten wert dann war es dasich find aber auch keinen fehler im script kann mal einer ein auge drauf werfen
[autoit]
wenn ich das ganze ohne adlib mach und in nem while loop häng mit sleep zwischendurch dann gehts problelos...
edit2:
hab mir das ganze jetzt geändert:#include
[/autoit]
Global $Vacuumalt
While 1
$Vacuumneu = ControlGetText("GC/MS Monitor", "", 123)
If Not $Vacuumneu = $Vacuumalt Then
$file = FileOpen("Vacuum.txt", 1)
$time = _NowCalc()
$Temperatur = ControlGetText("GC/MS Monitor", "", 60)
FileWriteLine($file, $time & " " & $Temperatur & " " & $Vacuumneu)
FileClose($file)
$Vacuumalt = $Vacuumneu
EndIf
WEnd
so funzts jetzt glaub ich spricht was gegen diese lösung? -
Hallo Aquilla,
solange die Prozessorauslastung nicht zu hoch ist (= andere Anwendungen reagieren nicht träge) ist alles in Ordnung, ansonsten den von dir bereits angesprochenen Sleep einbauen bzw. erhöhen,
Edit: das Ursprungsskript hätte ich so abgeändert:
Spoiler anzeigen
[autoit]#include
[/autoit] [autoit][/autoit] [autoit]
global $VacuumaltAdlibEnable("Test")
[/autoit] [autoit][/autoit] [autoit]func Test()
[/autoit] [autoit][/autoit] [autoit]
$Vacuumneu=ControlGetText("GC/MS Monitor","",123)
if not $vacuumneu =$vacuumalt then
$file=FileOpen("Vacuum.txt",1)
$time=_NowCalc()
$Temperatur=ControlGetText("GC/MS Monitor","",60)
FileWriteLine($file,$time &" "& $Temperatur&" "&$vacuumneu)
FileClose($file)
$vacuumalt=$vacuumneu
Else
EndIf
EndFuncwhile 1
[/autoit]
sleep(1000)
WEnd
mfg (Auto)Bert -
hast du nur in dem whileloop den sleep gelegt? oder hab ich nochwas übersehen?
-
Hallo aquila,
nein ich habe ausserdem global $Vacuumalt vor adlib erklärt, damit sie auch beim 1. Aufruf der func schon deklariert ist,
mfg (Auto)Bert