Naja an dem Punkt hab ich halt aufgehört
Beiträge von SEuBo
-
-
Oder das hier
Zitat\b[A-G](#|b)?m?\d*[^\w ]?\b
-
Okey; Verständnissfrage:
"Es war Bb7 , sollte aber C sein. Ohne zweifel G#m und Fm ."
Bb7, C, G#m, Fm sollen gefunden werden.
Wodurch soll ersetzt werden, bzw wie muss die Funktion _ChordTranspose aufgerufen werden?
Bb7 -> _ChordTranspose("B",7) ?
aber wie dann bei G#m oder Fm? -
[autoit]
#include <Array.au3>
[/autoit]
$string = "Es war Bb7 , sollte aber C sein. Ohne zweifel G#m und Fm ."
$aTmp = StringRegExp($string,"\b(?:[A-G](?:#|b)?m?\d*[^\w ]?\b)",3)
_ArrayDisplay($aTmp) -
eine Frage dazu habe ich noch, wieso wird jeder Tastendruck mit einem Sound von Windows (XP) quittiert, wenn die Zeile mit dem Guictrlcreatelabel() aktiv ist?
Weil das Lable dann Fokus hat. Da _IsPressed() den Tastendruck nicht blockt, versuchst du ins Lable reinzuschreiben
-
Versuch es mal mit ControlSend() . In viele Comboboxen lässt sich "reinschreiben".
-
was hätte HotkeySet ohne 2 Parameter für einen sinn
Das hätte den Sinn, die verknüpfte Funktion zu entfernen.
@Acanis: Suchst du
[autoit]#include <Misc.au3>
[/autoit][autoit][/autoit][autoit]$dll = DllOpen("user32.dll")
[/autoit][autoit][/autoit][autoit]While 1
[/autoit]
Sleep (10)
If _IsPressed("53", $dll) Then
$sPRE = ""
If _IsPressed("10",$dll) THen $sPRE &= "SHIFT+"
If _IsPressed("11",$dll) THen $sPRE &= "STRG+"
If _IsPressed("12",$dll) THen $sPRE &= "ALT+"
ConsoleWrite($sPRE&"S Pressed"&@CRLF)
While _IsPressed("53",$dll) * Sleep(100)
WEnd
EndIf
WEnd
DllClose($dll)Oder vllt eher:
[autoit]_WinAPI_SetWindowsHookEx
[/autoit]
Wobei ich mich damit aber überhaupt nicht auskenne. -
wär schon geil, aber dann würden sich alle programme ja von selber schreiben
Mir würde es schon reichen, wenn ich mir Matrix-Like ein Kabel in den Nacken stecken, und so programmieren könnte.
-
Wenn du wissen möchtest OB das möglich ist: Ja ist es. Ich habe mich aber bisher nicht wirklich damit auseinander gesetzt (Denn außer für Bots braucht man sowas ja nicht oft)
aber ich pack dir mal die NomadMemory.au3 in den ANhang. Damit kannst du so ziemlich alles auslesen glaube ich. -
Ich hoffe doch nicht das du das jetzt gerade für mich geschrieben hast
Doch aber jetzt ist es in meiner UDF Sammlung - ich werd das bestmimt auch nochmal brauchen.Noch mal möchte ich auf die Frage hinweisen, ob jemand ein Programm zum auslesen solcher Datenbanken kennt!
Eehm wenn du eine SQLite Datenbank benutzt, liest du diese einfach mit _SQlite_Query aus. Schau dir mal das Beispiel dazu in der Hilfe an.
Ansonsten gibts nen Haufen tools wie zb. SQLite Manager. -
Bitteschön
FileReadToArray3d & FileWriteFromArray3d
[autoit]#include <Array.au3>
[/autoit] [autoit][/autoit] [autoit]
Dim $3DArray[5][5][3]
_Arraybefuellen()
_FileWriteFromArray3D(@DesktopDir&"\3dim.txt",$3DArray)
Global $New3DArray
_FileReadToArray3D(@DesktopDir&"\3dim.txt",$New3DArray)Func _Arraybefuellen()
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
For $1 = 0 to 4
For $2 = 0 to 4
For $3 = 0 to 2
$3DArray[$1][$2][$3] = $1&","&$2&","&$3
Next
Next
Next
EndFuncFunc _FileWriteFromArray3D($sFile,$aArray,$sDelim="|")
[/autoit] [autoit][/autoit] [autoit]
If UBound($aArray,0) <> 3 Then Return SetError(1)
Local $iUbound_1 = UBound($aArray,1), $iUbound_2 = UBound($aArray,2), $iUbound_3 = UBound($aArray,3)
Local $sRet
For $i_1 = 0 to $iUbound_1-1
For $i_3 = 0 to $iUbound_3-1
For $i_2 = 0 to $iUbound_2-1
$sRet &= $aArray[$i_1][$i_2][$i_3]
If $i_2 < $iUbound_2-1 Then $sRet &= $sDelim
Next
If $i_3 < $iUbound_3-1 Then $sRet &= $sDelim & $sDelim
Next
If $i_1 < $iUbound_1-1 Then $sRet &= @CRLF
Next
FileDelete($sFile)
FileWrite($sFile,$sRet)
EndFuncFunc _FileReadToArray3D($sFilePath,ByRef $aRet,$sDelim="|")
[/autoit]
$sRead = FileRead($sFilePath)
Dim $aRet[100][100][100]
$a_1 = StringSplit($sRead,@CRLF,1)
;~ _ArrayDisplay($a_1)
If $a_1[0] >= UBound($aRet,1) Then
ReDim $aRet[$a_1[0]+100][UBound($aRet,2)][UBound($aRet,3)]
EndIf
For $i_1 = 1 to $a_1[0]
$a_3 = StringSplit($a_1[$i_1],$sDelim&$sDelim,1)
;~ _ArrayDisplay($a_3)
If $a_3[0] >= UBound($aRet,3) Then
ReDim $aRet[UBound($aRet,1)][UBound($aRet,2)][$a_3[0]+100]
EndIf
For $i_3 = 1 to $a_3[0]
$a_2 = StringSplit($a_3[$i_3],$sDelim)
;~ _ArrayDisplay($a_2)
If $a_2[0] >= UBound($aRet,2) Then
ReDim $aRet[UBound($aRet,1)][$a_2[0]+100][UBound($aRet,2)]
EndIf
For $i_2 = 1 to $a_2[0]
$aRet[$i_1][$i_2-1][$i_3-1] = $a_2[$i_2]
;~ ConsoleWrite($a_2[$i_2] & @CRLF)
Next
Next
Next
EndFunc -
die Conttrol ID bleibt eigentlich immer gleich... außer, du machst ein Softwareupdate, dann kann Sie sich ändern (war bei mir einmal so)
Und genau deswegen rate ich zum Advanced Classname. Der ist beständiger gegenüber Software änderungen. Statt 350 (ID) nimmt man dann halt [CLASS:Scintilla; INSTANCE:1] (Advanced Mode).
-
Poste bitte das komplette Script. Aus den paar Schnipseln ist absolut kein Problem ersichtlich!
-
Ich wissen ob und wie autoit das verarbeiten kann was man in ein Micro / Headset spricht.
wenn du zb der spracheingabe befehle wie zb. "Herunterfahren" benutzen willst, musst du dich mit der Microsoft Speech API auseinander setzen. Die hat (natürlich neben vorlesen) auch die funktion der Spracherkennung. Du musst das halt nur in Autoit umbauen.
-
Spoiler anzeigen
[autoit]$hGUI = GUICreate("")
[/autoit] [autoit][/autoit] [autoit]
$hInput = GUICtrlCreateInput("",20,20,300,20)
$hGoogle = GUICtrlCreateButton("Vorlesen mit Google Engine",20,100)
$hMicrosoft = GUICtrlCreateButton("Vorlesen mit Windows speech API",20,200)
GUISetState()While 1 * sleep(10)
[/autoit] [autoit][/autoit] [autoit]
$nMsg = GUIGetMsg()
Switch $nMsg
Case $hGoogle
_GoogleAPI(GUICtrlRead($hInput))
Case $hMicrosoft
_WinSAPI(GUICtrlRead($hInput),50,100) ; ggf. Parameter anpassen.
Case -3
Exit
EndSwitchWend
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Func _GoogleAPI($input)
[/autoit] [autoit][/autoit] [autoit]
If InetGet("http://translate.google.com/translate_tts?q=" & StringReplace($input, " ", "+"), @TempDir & "\test.mp3") = 0 Then Return -1
SoundPlay(@TempDir & "\test.mp3", 1)
FileDelete(@TempDir & "\test.mp3")
Return 1
EndFunc ;==>textToSpeachFunc _WinSAPI($Text, $Rate, $Vol)
[/autoit]
If Not IsDeclared("voice") Then Global $voice = ObjCreate("Sapi.SpVoice")
If Not IsObj($voice) Then Return 0
$voice.Rate = $Rate
$voice.Volume = $Vol
$voice.Speak($Text)
Return 1
EndFunc ;==>_speakUngetestet, bin grade an nem pc ohne autoit.
-
... also - die Informationen zu den Funktionen klingen recht gut. Nur wie bekomme ich die Control-ID heraus? Ist mit Control-ID die "ID" gemeint, die ich mit dem Tool AU3INFO.EXE unter dem Tab "Control" angezeigt bekomme? Dann wäre es ja wirklich einfach ...
Genau so ist es.
Ich bevorzuge aber den Advanced Classname, statt der IDSend(^!{Esc})
... habe ich probiert, leider ohne Erfolg.
[autoit]
Das könnte daran liegen, dass es da "" fehlen.Send("^!{DEL}")
[/autoit] -
Nur der vollständigkeit halber:
http://www.autoitscript.com/forum/index.php?showtopic=64738&st=0 -
Danke Oscar, das ist sogar noch viel besser, weil die "Nutzer" dann nicht gezwungen sind, die Beta zu installieren.
Hätt ich aber auch mal selbst drauf kommen können In der SQLite.dll.au3 wird das selbe schema verwendet, um den Ellenlangen String zu verwenden. VIelleicht sollt ich mich echt mal aufs Ohr hauen. -
Danke an alle die sich Gedanken gemacht haben
Problem gelöst -> Beta benutzt. -
[autoit]
MsgBox(0,"",@ScriptFullPath)
[/autoit]