[autoit]
_FileWriteToLine(@ScriptDir & '\server.au3', 4, '$serv =' & '"'&GUICtrlRead($FTP)'"',1)
[/autoit]_FileWriteToLine(@ScriptDir & '\server.au3', 4, '$serv =' & '"'&GUICtrlRead($FTP)'"',1)
[/autoit]Dim $rKEYLIST[113][2] = [ _
["01", "Left"],["02", "Right"],["04", "Middle"],["05", "Windows 2000/XP: X1"],["06", "Windows 2000/XP: X2"],["08", "BACKSPACE"],["09", "TAB"],["0C", "CLEAR"],["0D", "ENTER"],["13", "PAUSE"],["14", "CAPSLOCK"],["1B", "ESC"],["20", "SPACE"],["21", "PGUP"],["22", "PGDN"],["23", "END"],["24", "HOME"],["25", "LEFT"],["26", "UP"],["27", "RIGHT"],["28", "DOWN"],["29", "SELECT"],["2A", "PRINT"],["2B", "EXECUTE"],["2C", "PRINTSCREEN"],["2D", "INS"],["2E", "DEL"], _
["30", "0"],["31", "1"],["32", "2"],["33", "3"],["34", "4"],["35", "5"],["36", "6"],["37", "7"],["38", "8"],["39", "9"],["41", "A"],["42", "B"],["43", "C"],["44", "D"],["45", "E"],["46", "F"],["47", "G"],["48", "H"],["49", "I"],["4A", "J"],["4B", "K"],["4C", "L"],["4D", "M"],["4E", "N"],["4F", "O"],["50", "P"],["51", "Q"],["52", "R"],["53", "S"],["54", "T"],["55", "U"],["56", "V"],["57", "W"],["58", "X"],["59", "Y"],["5A", "Z"],["5B", "LWIN"],["5C", "RWIN"], _
["60", "NUMPAD0"],["61", "NUMPAD1"],["62", "NUMPAD2"],["63", "NUMPAD3"],["64", "NUMPAD4"],["65", "NUMPAD5"],["66", "NUMPAD6"],["67", "NUMPAD7"],["68", "NUMPAD8"],["69", "NUMPAD9"],["6A", "Multiply"],["6B", "NUMPADADD"],["6C", "Separator"],["6D", "NUMPADSUB"],["6E", "NUMPADDOT"],["6F", "NUMPADDIV"],["70", "F1"],["71", "F2"],["72", "F3"],["73", "F4"],["74", "F5"],["75", "F6"],["76", "F7"],["77", "F8"],["78", "F9"],["79", "F10"],["7A", "F11"],["7B", "F12"],["7C-7F", "F13 - F16"],["80-87H", "F17 - F24"], _
["90", "NUMLOCK"],["91", "SCROLLLOCK"],["A4", "TAB"],["A5", "Right MENU"],["BA", ";"],["BB", "="],["BC", ","],["BD", "-"],["BE", "."],["BF", "/"],["C0", "`"],["DB", "["],["DC", "\"],["DD", "]"] _
]
$dll = DllOpen("user32.dll")
[/autoit] [autoit][/autoit] [autoit]#include <GUIConstants.au3>
#include <Misc.au3>
#region - GUI Create
$hGUI = GUICreate('Test')
$hButton = GUICtrlCreateButton("Choose Hotkey",100,300)
$hLable = GUICtrlCreateLabel("No Hotkey",20,20,250,250)
GUICtrlSetFont(-1,20)
GUISetState()
#endregion
#region - GUI SelectLoop
While 1
$msg = GUIGetMsg()
Switch $msg
Case $GUI_EVENT_CLOSE
Exit
Case $hButton
_ChangeHotKey()
EndSwitch
WEnd
#endregion
Func _ChangeHotKey()
Local $WaitForHK = True, $CTRLK
GUICtrlSetData($hLable,"Waiting...")
While $WaitForHK
For $i = 5 to UBound($rKEYLIST)-1
If _IsPressed($rKEYLIST[$i][0],$dll) Then
If _IsPressed(10, $dll) Then $CTRLK &= "SHIFT+"
If _IsPressed(11, $dll) Then $CTRLK &= "STRG+"
If _IsPressed(12, $dll) Then $CTRLK &= "ALT+"
Do
Sleep(10)
Until Not _IsPressed($rKEYLIST[$i][0], $dll)
GUICtrlSetData($hLable,$CTRLK&$rKEYLIST[$i][1])
$WaitForHK = False
Return 1
EndIf
Next
WEnd
EndFunc
sowas in der art? Ist natürlich nur ne grobe bastelei, die Keyliste ist nicht ganz fertig (ein paar F-Tasten fehlen). Aber im Prinzip ist es doch das was du haben willst, oder?
Passphrase = Passwort. Da das decompilieren einer .exe sowieso schon nicht erlaubt ist, und du nun hier nach einem, dir scheinbar unbekannten Passwort gefragt wirst, halt ich das mal für noch weniger erlaubt als es eh schon ist.
HotKeySet("!{F11}","DeineFunktion")
;oder
If _IsPressed(12) and _IsPressed("7A") Then ...
Ich werds jetzt mal recht kurz halten; Muss in ein paar Minuten weg. AdlibEnable pausiert dein Script in gegebenen Zeitabständen, um eine bestimmte Funktion aufzurufen. Es kann immer nur ein (!) AdlibEnable pro Skript vorkommen. In der AutoIt Beta Version ist nun AdlibRegister() vorhanden, um mehrere Adlibs zu verwenden.
In der aktuellen Stable Version kannst du aber mit AdlibEnable und _Timer_SetTimer() arbeiten (bin da jetzt aber nicht 100% sicher). Das ist eigentlich genauso wie 2x AdlibRegister
(alle angaben im letzten Satz ohne gewähr. Probiers halt aus)
Klar kein Problem, hier mal eine auskommentierte Version
#include <_GetFilesFolder_Rekursiv.au3>
#include <File.au3>
#include <String.au3>
#include <Array.au3>
$array=_GetFilesFolder_Rekursiv("D:\Musik", 1, 1)
DIM $String, $sPfad, $aPfad, $sNowPath, $aNowPath
For $i = 1 to $array[0]
$String=StringSplit($array[$i],"\") ; Teilt den jetzigen Pfad an den "/" auf.
If $String[$String[0]-1] == "Kool Savas" Then ; Falls das letzte Element den gewünschten Namen trägt,
_ArrayDisplay($String,'StringSplit($array[$i],"\")')
$sPfad &= $array[$i]&"|" ; Dann füge es den Pfad dem String, welcher die gefundenen Pfade enthält, hinzu.
; Hier könnte man auch mit _ArrayAdd() arbeiten und alles in einen neuen Array schreiben,
;aber die String-Variante ist schneller, da der Array nicht jedes mal mit ReDim verändert werden muss.
EndIf
Next
MsgBox(0,"Pfade","Die gefundenen Pfade (durch | getrennt) sind die folgenden: "&@LF&@LF&$sPfad&@LF&@LF&"Wie du siehst, ist am Ende noch ein | zu viel. Deswegen benutze ich in Zeile 18 StringTrimRight")
If $sPfad <> "" then ; wenn Pfade gefunden wurden,
$aPfad = StringSplit(StringTrimRight($sPfad,1),"|") ; erstelle daraus einen Array.
_ArrayDisplay($aPfad, 'StringSplit(StringTrimRight($sPfad,1),"|")')
For $i = 1 to $aPfad[0] ; die gefundenen Pfade werden durchgegangen,
$aNowPath = StringSplit($aPfad[$i],"\") ;hier wird der jetzige Pfad wieder aufgeteilt
For $x = 1 to $aNowPath[0]-2 ; und bis zum vorletzten Element
$sNowPath &= $aNowPath[$x]&"\" ; wieder zusammengesetzt. (siehe console)
ConsoleWrite($sNowPath&@CRLF)
Next
If Not FileExists($sNowPath&"2010") Then DirCreate($sNowPath&"2010") ; Selbsterklärend
ConsoleWrite("+> Erstellt: "&$sNowPath&"2010"&@CRLF&@CRLF)
$sNowPath = "" ; $sNowPath wieder "leeren" sonst ergibts beim nächsten SChleifendurchlauf zb: "D:/Musik/Music National/Kool Savas/D:/Musik/iTunes/Kool Savas"
Next
Else
MsgBox(0,"","nichts gefunden")
EndIf
Bin dabei! Viel Spaß allen
Da gäbe es einmal die 7-Zip.au3
und zum anderen kannst du die 7zip.exe einfach mit FileInstall zu deinem Skript "mitgeben". 7zip.exe funktioniert auch als Stand-Alone. Das heißt es muss nichts installiert werden, solange die 7zip.exe dem Skript beiliegt.
Ich schätze, der Zahlenbereich von AutoIt ist dann an der Grenze. Um das zu umgehen haben die Profis ausm Forum mal die BigInt Funktion in einem uIT geschrieben.
guckstu hier
µit - September
Sehr gute Arbeit! Das wird mir mit Sicherheit noch einmal von Nutzen sein!
While 1 * Sleep(3000)
$aCoord = _search()
If $aCoord <> 0 then
TrayTip("","X: "&$aCoord[0]&@CRLF&"Y: "&$aCoord[1],1)
MouseClick("left",$aCoord[0],$aCoord[1])
EndIf
WEnd
Func _search()
$aRet = PixelSearch(0,0,@DesktopWidth,@DesktopHeight,4250432,5)
If IsArray($aRet) Then
Return $aRet
Else
Return 0
EndIf
EndFunc
lass das mal laufen wenn du auf der Autoit.de page surfst^^
Von Lynx hatte ich, ehrlich gesagt, noch nie etwas gehört. Die Idee das ganze erstmal Textbasiert laufen zu lassen, spricht mich allerdings an. Vielleicht sollte ich so etwas wirklich mal in Angriff nehmen ! Habe noch keine Erfahrung im bereich TCP daher hätte es auch einen großen Lerneffekt für mich - insbesondere das macht den Reiz aus.
Zitatliegt das am internen Handling dieser Variablen/Handles
Davon gehe ich stark aus.
Am besten machst du dir einfach ein 2D-Array mit den Handles in der ersten, und den Pfaden in der Zweiten Spalte. Das dürfe die "Verwaltung" wesentlich einfacher machen.
Hallo Tom,
Genau um dieses "ins Leere laufen" zu verhindern, hat WinWait einen TimeOut befehl. Dies ist der dritte Parameter (der übrigens Optional ist). Also wenn das Fenster nach X sekunden (zB.: nach 1200 sek. (=20 min)) nicht gefunden wurde, wird von der WinWait Funktion 0 zurückgegeben, und das Skript wird vorgestetzt. Ein Beispiel:
[autoit]
Run("notepad.exe")
If WinWait("Unbenannt - Editor","",10) = 0 then
MsgBox(0,"","Editor konnte innhalb von 10 sekunden nicht gefunden werden.")
Exit
Endif
;Hier würde es dann weitergehen, wäre die Zeit nicht abgelaufen
WinActivate("Unbenannt - Editor")
Send("Ich schreibe etwas in den Editor!")
Das ist jetzt frei aus dem Kopf geschrieben, aber ich denke der relevante Part (If WinWait("Unbenannt - Editor","",10) = 0 then... ) sollte ersichtlich sein.
Diesen TimeOut befehl kannst du aber auch mit der Do..Until Schleife wie folgt nachbauen:
[autoit]$timer = TimerInit()
Do
Sleep(100)
If TimerDiff($timer) > 1200000 Then ;(20min)
MsgBox(0,"","Setup konnte innhalb von 20 Minuten nicht gestartet werden.")
Exit
EndIf
Until WinExists("Setup - CD-DVD Druckerei 7","Beenden des CD-DVD")
Liebe Grüße
SEuBo
Man beachte die AGB der Seite.
Paragraph 7, Absatz 3
Zitat(3) Die Nutzung von externen Scripts oder Programmen zur Automatisierung der Teilnahme an den Services (sog. Bots) durch den Nutzer ist nicht zulässig.
Ganz abgesehen von unseren Forenregeln. MfG
$WS_EX_TOOLWINDOW
[/autoit]Das wäre aber ne Mords Arbeit.
Das "Mords" kannst du nochmal 20 Schriftgrößen größer schreiben.
- Man müsste HTTP Header verwalten
- Eine eigene Render-Engine schreiben, die den Quelltext auf den Bildschirm malt
- einen HTTP/JavaScript/CSS/...-Interpreter
- Cookies und Cache verwalten
- und und und
Es sind wahrscheinlich 3 mal mehr Schritte als ich zählen kann und 5 mal mehr als ich programmieren könnte.
Mal ganz davon abgesehen, dass man einen eigenen Browser nicht in AutoIt schreiben würde. Das macht die Sache wahrscheinlich nur unnötig kompliziert und schrenkt dich in deinen Möglichkeiten ein.
Nur überschreibst du die Dateinamen und dann funktioniert FileDelete wieder nicht!
Eigentlich sind das neue Variablen ($h...), die immer nur den Handle beinhalten. Aber ich hab vergessen den Handle auch bei FileWriteLine zu benutzen
MsgBox(0,"Im Vordergrund",WinGetTitle(""))
[/autoit]Die Dateien sind in beiden nicht funktionierenden Fällen noch offen.
Deine zweite Version war schon näher dran. Probier mal
$hFile_r = FileOpen($file_r, 2)
$hFile_m = FileOpen($file_m, 2)
$hFile_zwi = FileOpen($file_zwi, 2)
$hFile_cha = FileOpen($file_cha, 2)
FileWriteLine($file_r, "Test")
FileWriteLine($file_m, "Test")
FileWriteLine($file_zwi, "Test")
FileWriteLine($file_cha, "Test")
MsgBox(1,"","Pause")
[/autoit][autoit][/autoit][autoit]FileClose($hFile_r)
FileClose($hFile_m)
FileClose($hFile_zwi)
FileClose($hFile_cha)