Leichenschänder!
Beiträge von L3viathan
-
-
Du kannst dir eine UDF bauen, die als Wrapper für ControlClick dient:
[autoit]
[/autoit]
Func _ControlClick($title, $text, $controlID , $button="left" , $clicks=1 , $x=-1 , $y=-1 )
ControlClick($title,$text,$controlID,$button,$clicks,$x,$y)
Sleep(2000)
EndFunc -
Wenn du tun willst, was ich denke dass du tun willst, musst du die Dateien selbst hashen, nicht die Prozessnamen
-
minx: Ja, ist mir klar, aber das sieht irgendwie falsch aus (weil ja durchaus mehrere Bedingungen zutreffen können). Aber die ElseIf-Variante wäre natürlich equivalent.
-
Moin moin,
ich hab vorhin beim Aufräumen ein altes und kaputtes Skript gefunden, und hab es jetzt mal korrigiert. Es ist nicht so komplex oder mächtig, hilft aber beim Verständnis davon, wie Programmiersprachen funktionieren. Es ist daher eher als Lehrstück als als nützliches Tool zu betrachten.
Im Prinzip ist es einfach ein simpler rekursiver Evaluator, der gleichzeitig Aspekte eines Tokenizers und Parsers in sich vereint. Wegen seiner Einfachheit braucht es noch nicht mal einer Baumstruktur, geschweige denn eines echten Tokenizers. Wenn ihr es schafft, das Skript so zu verändern, dass es auch Klammern unterstützt, habt ihr es verstanden, dürft euch auf die Schulter klopfen und nach Hause gehen.
Er kann Terme der Form "2*x-4*6==7" oder "9-x*x*x" auswerten.Spoiler anzeigen
[autoit]$gleichung="2*3*x-9*x==3"
[/autoit]
$x=4
Func _Eval($gleichung)
If StringInStr($gleichung,"==") Then
$sides=StringSplit($gleichung,"==",3)
If Number(_Eval($sides[0])) == Number(_Eval($sides[1])) Then
Return "TRUE"
Else
Return "FALSE"
EndIf
EndIf
If StringInStr($gleichung,"+") Then
$parts=StringSplit($gleichung,"+",2)
$return=0
For $term In $parts
$return += _Eval($term)
Next
ConsoleWrite($gleichung&"-->"&$return&@CRLF)
Return $return
EndIf
If StringInStr($gleichung,"-") Then
$parts=StringSplit($gleichung,"-")
$return=_Eval($parts[1])
For $i=2 To UBound($parts)-1
$return -= _Eval($parts[$i])
Next
ConsoleWrite($gleichung&"-->"&$return&@CRLF)
Return $return
EndIf
If StringInStr($gleichung,"*") Then
$parts=StringSplit($gleichung,"*",2)
$return=1
For $term In $parts
$return *= _Eval($term)
Next
ConsoleWrite($gleichung&"-->"&$return&@CRLF)
Return $return
EndIf
If StringInStr($gleichung,"/") Then
$parts=StringSplit($gleichung,"/")
$return=_Eval($parts[1])
For $i=2 To UBound($parts)-1
$return /= _Eval($parts[$i])
Next
ConsoleWrite($gleichung&"-->"&$return&@CRLF)
Return $return
EndIf
If $gleichung == "x" Then Return $x ;x wird ausgewertet
Return $gleichung ;Ansonsten ist es wohl eine Zahl
EndFunc
MsgBox(64,$gleichung,"= " & _Eval($gleichung))
Lange kein AutoIt mehr gemacht, könnte eins dem Skript möglicherweise ansehen.. -
Zitat von AntiSpeed
Das würde das ganze zumindestens schwer knackbar machen lassen.
[Blockierte Grafik: http://media.tumblr.com/tumblr_lgdmijHH9K1qcqwzv.png]
-
Alle Versuche, mit AutoIt eine Lizenzprüfung zu machen, müssen zwangsläufig scheitern, da AutoIt eine interpretierte Sprache ist.
-
Wenn's kostenlos und etwas professioneller sein darf, Scribus.
Cheater Dieter: "Photoshop" ist mitnichten alte Rechtschreibung. Es ist einfach kein Deutsch.
-
Whoops, danke für die Glückwünsche! Hab das komplett übersehen...
Danke auch an Sprenger120, der mich auf den Thread aufmerksam gemacht hat.
BadBunny: Nein. -
50% okay.
wo stehen die in einer Reihe? Als Bild? Ne Textdatei? In nem anderen Programm? ...? -
bessere Beschreibung bitte.
"liest" = ?
"schreibt" = ? -
Das beste kostenlose Webhosting gibt es immer noch bei http://000webhost.com
-
"While 2",
[autoit]
Prinzipiell:
[/autoit]
While True ;1 geht auch, ist aber identisch. Das ist keine Nummerierung
;Machen, was das Programm machen soll
If Ausstiegsbedingung Then Exit; Ausstiegsbedingung könnte PixelSearch sein, was aber sehr ungenau ist.
WEnd
Das ist aber sehr unelegant. Was möchtest du denn genau erreichen? -
So sieht's bei mir aus. (Win7)
-
-
Send($ID) --> Send(GUICtrlRead($ID))
-
Extrem hässlich, aber geht:
Spoiler anzeigen
[autoit]#include <Misc.au3>
[/autoit] [autoit][/autoit] [autoit]
Opt("MouseCoordMode",2)
$dll="user32.dll"
GUICreate("")
$button = GUICtrlCreateButton("5 seconds flat",0,0,150,30)
GUISetState()
While 1
Switch _IsPressed("01",$dll)
Case True
$mgp = MouseGetPos()
If $mgp[0] >= 0 And $mgp[0] <= 150 And $mgp[1] >= 0 And $mgp[1] <= 30 Then
If _waitforSeconds(5) Then MsgBox(0,"","Funktion ausführen")
EndIf
Case False
Sleep(50)
EndSwitch
WEndFunc _waitforSeconds($seconds)
[/autoit]
$ms = $seconds * 1000
$timer = TimerInit()
Do
If not _IsPressed("01",$dll) then return False
Until TimerDiff($timer) >= $ms
If _IsPressed("01",$dll) Then Return True
Return False
EndFunc
edit: Eigentlich müsste das wohl gehen, indem du einen Hook auf das Event setzt, was eintritt, wenn man einen Button runterdrückt (normal kann man darauf nicht reagieren, sondern nur darauf, dass der Button wieder losgelassen wird) -
Sam-Luca wird sich freuen, wenn er eines Tages diesen Thread entdeckt...
-
[autoit]
Global $coords
[/autoit]
$dll=DllOpen("user32.dll")
GUICreate("",Default,Default)
$button = GUICtrlCreateButton("Click",100,100)
While 1
If _isPressed("02",$dll) Then $coords = MouseGetPos()
Switch GUIGetMsg()
Case $button
WinActivate("anderes Fenster")
Case -3
Exit
EndSwitch
WEnd -
FileSetTime mit Flag 1:
[autoit]FileSetTime ( "Datei.txt", "19990205000000", 1)
[/autoit]
0 = Modified, 1 = Created, 2 = AccessedWenn du als vierten Parameter 1 setzt, wirkt das ganze auch noch rekursiv in Ordnerstrukturen.