Ich hab gerade eine ganz simple Pseudo-Texterkennung gebaut. Da sich in AudaCity die Controls für Anfang und Ende einer Auswahl nicht direkt per AutoIt auslesen lassen, habe ich sie per PixelChecksum "ausgelesen":
[autoit]Opt("WinTitleMatchMode",4)
;Opt("TrayIconDebug",1)
Opt("PixelCoordMode",2)
$handle = WinActivate("Vivir la Utopía")
WinWaitActive($handle,"",5)
; Checksums (Adler) als Variablennamen, jeweils erste Checksum für nicht ausgewähltes Feld,
; zweite Checksum entspricht der Farbänderung beim anclicken mit der Maus zum Editieren
$2731708797 = 0
$1249945457 = 0
$3457326344 = 1
$3546922070 = 1
$189568228 = 2
$2558045491 = 2
$2247005759 = 3
$1980280805 = 3
$941069677 = 4
$4163153477 = 4
$360354491 = 5
$2015471813 = 5
$3420688462 = 6
$2279974107 = 6
$1971952380 = 7
$401258605 = 7
$1111657628 = 8
$2478480920 = 8
$4051865454 = 9
$3387532109 = 9
$posStart = ControlGetPos($handle,"","[CLASS:wxWindowClassNR; INSTANCE:41]")
$posEnd = ControlGetPos($handle,"","[CLASS:wxWindowClassNR; INSTANCE:42]")
; welche Darstellung der Werte ist gerade eingestellt? Offsetwerte für die einzelnen Ziffern
$stepSamples = StringSplit("4,14,24,38,48,58,72,82,92",",",2)
$stepMilliseconds = StringSplit("4,14,39,49,86,96,110,120,130",",",2)
$stephhmmssSamples = StringSplit("4,14,39,49,86,96,136,146,156,166",",",2)
Dim $step
Switch $posStart[2]
Case 161 ; Samples
$step = $stepSamples
Case 173 ; Milliseconds
$step = $stepMilliseconds
Case 254 ; hhmmss+Samples
$step = $stephhmmssSamples
EndSwitch
Func read($pos)
Dim $txt
For $offset in $step
$txt &= Eval(PixelChecksum($pos[0]+$offset,$pos[1]+7,$pos[0]+$offset+7,$pos[1]+16))
Next
return $txt
EndFunc
ConsoleWrite("Start: "&read($posStart)&@CRLF&"End : "&read($posEnd)&@CRLF)
[/autoit]Vielleicht kann das ja jemandem als Inspiration dienen, wenn sich ein Control nicht direkt auslesen lässt.