Oder du schaust mal bei Opt() unter "ExpandEnvStrings".
Beiträge von K4z
-
-
Hö? Du kannst das doch ganz einfach mit den TCP-Befehlen lösen... Da wirds genug Beispiele geben.
EDIT: z.B. das -
[autoit]
ShellExecute('C:\Dokumente und Einstellungen\Administrator\Desktop\test.cmd', $Dongnum)
[/autoit] -
Ja, dafür kann der Mathelehrer wirklich nix, aber ich weiß noch, dass ich oft genug vergessen hab den Taschenrechner umzustellen und dann irgendein Müll raußbekommen hab.
-
Solang ich keine Taste drück oder die Maus bewege, funktioniert das ganze zumindest bei mir einwandfrei. Also wird es wohl nicht an der Funktion selbst liegen...
-
Ich glaub das ist einer der häufigsten Fehler überhaupt, die ich in der Mathematik kenne:D
Sin(), Cos() und Tan() müssen im Bogenmaß angegeben werden, also z.B. dann so:Spoiler anzeigen
[autoit]#include <Array.au3> ;Einbinden von erweiterten Array Funktionen (z.B. _arraydisplay)
[/autoit] [autoit][/autoit] [autoit]$jo=CirclePos(200,4) ;Ruft die Funnktion CirclePos(Durchmesser=200, Bestandteile=4) auf.
[/autoit] [autoit][/autoit] [autoit]
GUICreate("jo",200,200,0,0) ;Erstellt ein Fenster
GUISetState(@sw_show) ;Macht das Fenster sichtbar
$M=GUICtrlCreateButton("M",0-10+100,0-10+100,20,20) ;Erstellt den Mittelpunktsknopf
GUICtrlSetColor($M,0xFFFFFF) ;Schriftfarbe von $M
GUICtrlSetBkColor($M,0x000000) ;Hintergrundfarbe von $M
GUICtrlCreateButton("1",$jo[0][0]-10+100,$jo[0][1]-10+100,20,20) ;müsste 100 | 0 sein
GUICtrlCreateButton("2",$jo[1][0]-10+100,$jo[1][1]-10+100,20,20) ;müsste 0 | 100 sein
GUICtrlCreateButton("3",$jo[2][0]-10+100,$jo[2][1]-10+100,20,20) ;müsste -100 | 0 sein
GUICtrlCreateButton("4",$jo[3][0]-10+100,$jo[3][1]-10+100,20,20) ;müsste 0 | -100 sein
_arraydisplay($jo) ;Zeigt das Array in einem Fenster mit werten anFunc CirclePos($Durchmesser,$Anzahl) ;Funktion Deklarieren
[/autoit]
$pi = 3.14159265358979
Dim $return[$Anzahl][2] ;Erstellt ein 2-Dimensionales Array
$grad=360/$Anzahl ;Die Gradzahl errechnen
$Radius=$Durchmesser/2 ;Radius berechnen
For $i=0 To $Anzahl-1 ;Fortschrittsvariable erhöhen pro Durchlauf
$return[$i][1]=sin(($pi/180)*$i*$grad) * $Radius ;vertikale Position in das Array eintragen ;IRGENDWO IST HIER EIN FEHLER
$return[$i][0]=cos(($pi/180)*$i*$grad) * $Radius ;horizontale Position in das Array eintragen ;IRGENDWO IST HIER EIN FEHLER
Next ;Schleifenbegrenzung
Return $return ;Gibt das 2-Dimensionale Array zurück
EndFunc ;Funktionsende -
Außerdem läuf so dein Prozessor auf Volllast...
Ich hab vor kurzem ein Beispielscript geschrieben, das genau das macht, was du machen möchtest:
Link -
Zu deinem Blockinput-Problem:
Du könntest einfach alle Tastendrücke mit _WinAPI_SetWindowsHookEx abfangen. Hier mal ein Beispiel, bei dem nur beim Drücken von F8 eine msgbox auftaucht und sich das Script beendet, alle anderen Tastendrücke werden ignoriert.Spoiler anzeigen
[autoit]#include <WindowsConstants.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <WinAPI.au3>OnAutoItExitRegister("_Exit")
[/autoit] [autoit][/autoit] [autoit]
$user_dll = DllOpen("user32.dll")$pStub_KeyProc = DllCallbackRegister("_KeyProc", "int", "int;ptr;ptr")
[/autoit] [autoit][/autoit] [autoit]
$hHookKeyboard = _WinAPI_SetWindowsHookEx($WH_KEYBOARD_LL, DllCallbackGetPtr($pStub_KeyProc), _WinAPI_GetModuleHandle(0), 0)HotKeySet("{F8}", "_Func")
[/autoit] [autoit][/autoit] [autoit]While Sleep(100)
[/autoit] [autoit][/autoit] [autoit]
WEndFunc _Func()
[/autoit] [autoit][/autoit] [autoit]
MsgBox(0, "", "Entsperrt!")
_Exit()
EndFuncFunc _KeyProc($nCode, $wParam, $lParam)
[/autoit] [autoit][/autoit] [autoit]
If $nCode < 0 Then Return _WinAPI_CallNextHookEx($hHookKeyboard, $nCode, $wParam, $lParam)
Local $tKEYHOOKS = DllStructCreate($tagKBDLLHOOKSTRUCT, $lParam)
Local $vkCode = DllStructGetData($tKEYHOOKS, "vkCode")
If ($wParam = $WM_KEYDOWN) And $vkCode <> 0x77 Then ; // 0x77 -> F8
DllCall($user_dll, 'int', 'keybd_event', 'int', 0x0, 'int', 0, 'int', 0, 'ptr', 0)
Return -1
EndIf
Return _WinAPI_CallNextHookEx($hHookKeyboard, $nCode, $wParam, $lParam)
EndFuncFunc _Exit()
[/autoit]
DllCallbackFree($pStub_KeyProc)
_WinAPI_UnhookWindowsHookEx($hHookKeyboard)
DllClose($user_dll)
Exit
EndFunc -
Probiers doch einfach mal mit StdoutRead(), kanns jetzt grad nicht testen.
-
Schau dir das mal an.
-
schreibs halt lieber als pn^^
-
Und wo genau kommst du nicht weiter?
Spoiler anzeigen
[autoit]Global $iVar = 10
[/autoit] [autoit][/autoit] [autoit]
HotKeySet("{NUMPADADD}", "_inc")
HotKeySet("{NUMPADSUB}", "_dec")While Sleep(100)
[/autoit] [autoit][/autoit] [autoit]
WEndFunc _inc()
[/autoit]
$iVar += 5
ConsoleWrite($iVar&@CRLF)
EndFunc
Func _dec()
$iVar -= 5
ConsoleWrite($iVar&@CRLF)
EndFunc -
Du kannst es ja einfach "aufbröseln", z.B. so:
[autoit]#include <Array.au3>
[/autoit][autoit][/autoit][autoit]
$sString = "08.00 bis 08.30 Hotline ( X )" & @CRLF & _
"08.30 bis 09.00 Hotline ( X )" & @CRLF & _
"09.00 bis 09.30 Hotline ( R )"$aRegExp = StringRegExp($sString, "(\d\d)\.(\d\d) bis (\d\d)\.(\d\d) Hotline \( (X|R) \)", 3)
[/autoit]
_ArrayDisplay($aRegExp)
Und dann kannste ja ganz einfach mit If-Abfragen prüfen, ob die aktuelle Zeit in einem der Zeiträume ist(For-Schleife), oder was du sonst noch machen willst... -
Und wie bei vielen Dingen, helfen auch hier reguläre Ausdrücke eine kompfortable Lösung zu finden:)
-
Also bei mir hat Int 2 Parameter:D
Int ( expression [, flag ] )
Flag: [optional] Defines behavior.
Can be one of the following:
Default = the result is auto-sized integer. See remarks.
1 = the result is 32bit integer.
2 = the result is 64bit integer.Wurde das bei neueren AutoIt Versionen vielleicht weggelassen?
Hab v3.3.8.1Und mit nem 32bit Integer läuft das bei mir auch so, wie ichs geschrieben hab...
-
SEuBo:
[autoit]
Ich hab mir jetzt nur kurz das erste Script angeschaut, aber es sollte in Zeile 16 eher so aussehn:If Int(DllStructGetData($tPixelData, 1, $iIndex), 1) = 0xFF000000 Then
[/autoit]Edit: Beim zweiten genau das gleiche.
-
Also zu deinem ersten Problem: Man könnte z.B. einfach prüfen, wie ähnlich die Sätze sind, beispielsweise mit der aus PHP bekannten Funktion _similar_text die hier nachgebaut wurde und eben ab einer bestimmten Prozentzahl eine Funktion aufrufen.
Zu deinem zweiten Problem: Ich denke das lässt sich am kompfortabelsten mit regulären Ausdrücken lösen...Edit: wenn du case-insensitive vergleichen möchtest, dann einfach das doppelte '='-Zeichen durch ein einfaches ersetzten...
-
Hier noch eine Möglichkeit ohne StringToASCIIArray():
Spoiler anzeigen
[autoit]$sString = 'TestTestTest'
[/autoit] [autoit][/autoit] [autoit]
$sCrypted = _crypt_xor($sString, 0xFF)
$sEnCrypted = _crypt_xor($sCrypted, 0xFF)ConsoleWrite("String: "&$sString&@CRLF)
[/autoit] [autoit][/autoit] [autoit]
ConsoleWrite("Crypted: "&$sCrypted&@CRLF)
ConsoleWrite("Encrypted: "&$sEnCrypted&@CRLF)Func _crypt_xor($sString, $iCrypt = 0xFF)
[/autoit]
Local $tString = DllStructCreate('BYTE['&StringLen($sString)&']'), $sCrypt = ''
DllStructSetData($tString, 1, $sString)
For $iI = 1 To StringLen($sString)
$sCrypt &= Chr(BitXOR(DllStructGetData($tString, 1,$iI), 0xFF))
Next
Return $sCrypt
EndFunc -
So wie das aussieht, liegt das an der automatischen Resize-Funktion. Sobald ich ein Bild mit weniger als 150*150 verwende läuft die Animation, drüber ist sie weg.
-
Ich hätte es mir vielleicht mal bissle genauer anschaun solln