Hi und willkommen!
Habe dir direkt mal in den anderen (Frage-)Thread geschrieben.
Viel Spaß im Forum.
Hi und willkommen!
Habe dir direkt mal in den anderen (Frage-)Thread geschrieben.
Viel Spaß im Forum.
Hi,
das "@ScriptDir" bei deinem Code interpretiert AutoIt als String.
So sollte es gehen:
Run(@ComSpec & ' /C regedit /e ' & @ScriptDir & '\winrar.reg HKEY_CURRENT_USER\Software\WinRAR')
[/autoit]Gerne
Manchmal übersieht man halt was.
Wenn du keine Fragen mehr hast, am besten auf "Gelöst" setzen.
Du musst noch in den Unterschlüssel "Run", d.h. auf "CurrentVersion" klicken und das "Run" suchen und auswählen. Da sollte dann eigentlich "cmd" enthalten sein.
Eigenartig.
Drücke mal "Start + R" und gebe "regedit" ein.
Versuche danach, zum Schlüssel "HKEY_LOCAL_MACHINE\\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" zu navigieren.
Ist dort der Eintrag "cmd" vorhanden?
Welche Windows Version hast du?
Man muss 1. als Admin starten und 2. auf 64Bit überprüfen (und ggf. anpassen), dann sollte es funktionieren:
#RequireAdmin
[/autoit] [autoit][/autoit] [autoit]$iReturn = _SetRegAutostart('cmd', @WindowsDir & '\System32\cmd.exe') ;=>Legt CMD als Autostart Programm fest
MsgBox(64, 'Info', 'Return : ' & $iReturn & ' | @Error : ' & @error)
Func _SetRegAutostart($sName, $sPath)
Local $iReturn, $sMainKey = 'HKLM'
If @CPUArch = 'X64' Then
$sMainKey = $sMainKey & '64'
EndIf
$iReturn = RegWrite($sMainKey & '\SOFTWARE\Microsoft\Windows\CurrentVersion\Run', $sName, 'REG_SZ', $sPath)
SetError(@error)
Return $iReturn
EndFunc
Stimmt, vor Sleep sollte noch _FTP_Close, das habe ich vergessen...
Soweit ich den TE verstanden habe gibt's keine Abbruchbedingung.
Ich weiß nicht, ob man den Login wirklich nur vor die Schleife setzen kann, da ja auch irgendwann ein Timeout eintritt, oder?
Von daher dachte ich, dass man die Verbindung stabil halten sollte.
Hi,
auch wenn eigentlich die Hilfe (mit den erforderlichen Grundlagen) ausreichen sollte und du den Code verstehen solltest,
hier mal ein ungetestetes Beispiel:
#include <FTPEx.au3>
[/autoit] [autoit][/autoit] [autoit]#region Settings
Const $sServer = 'test.mymabbo.org' ; Servername
Const $sUser = 'test234' ; Benutzername
Const $sPassword = 'x' ; Passwort des Benutzers
Const $sLocalFile = @ScriptDir & '\Beispiel.dat' ; Lokale Datei, die hochgeladen werden soll
Const $sRemoteFile = 'Beispiel.dat' ; Datei auf dem Server
#endregion
Global $hFTP_Open, $hFTP_Connect
[/autoit] [autoit][/autoit] [autoit]_StartLoop(15)
[/autoit] [autoit][/autoit] [autoit]Func _StartLoop($iMin)
Local $iMS, $iCounter = 1
$iMS = $iMin * 60 * 1000 ; rechnet Min in MS um
while FileExists($sLocalFile) ; Vorgang wird solange wie Datei existiert ausgeführt -> Endlosschleife
_LogIn($sServer, $sUser, $sPassword) ; Loginvorgang
If $hFTP_Connect = 0 Then
MsgBox(16, 'Fehler', 'Benutzerdaten überprüfen, konnte keine Verbindung zum Server herstellen.')
EndIf
_FTP_FilePut($hFTP_Connect, $sLocalFile, $sRemoteFile) ; Datei $sLocalFile hochladen
If @error Then
MsgBox(16, 'Fehler', 'Fehler beim Upload der Datei.')
Else
MsgBox(64, 'Info', 'Datei erfolgreich hochgeladen (zum ' & $iCounter & '. Mal).')
EndIf
$iCounter = $iCounter + 1 ; optionaler Counter
_FTP_Close($hFTP_Open)
Sleep($iMS) ; wartet 15 Minuten
WEnd
EndFunc
Func _LogIn($sServer, $sUser, $sPassword)
$hFTP_Open = _FTP_Open('FTP1')
$hFTP_Connect = _FTP_Connect($hFTP_Open, $sServer, $sUser, $sPassword)
Return $hFTP_Connect
EndFunc
EndSwitch und wEnd fehlen am Ende...
Das sieht man allerdings auch an der Fehlermeldung, die der Interpreter ausspuckt, wenn du den Skript ausführst.
Ich empfehle dir die Grundlagen von AutoIt und diesen hilfreichen Thread: https://autoit.de/index.php?page=Thread&threadID=13785
Edit: Ich hoffe, dass das kein Login-Klauprogramm o.Ä. ist, dann bist du nämlich hier falsch.
Edit2: Außerdem kann ich auch Shadowigor in allen Punkten zustimmen.
Wenn du Hilfe erwartest, solltest du den Fehler richtig beschreiben... "Geht nicht" hilft keinem weiter.
Auch der Titel ist absolut nicht aussagekräftig und deine Rechtschreibung...
Edit3: Gerade ist mir auch aufgefallen, dass du in Zeile 40 deines Codes einen falschen Variablennamen nutzt, was auch zum Absturz führen kann,
sofern "Felix" und "123" eingegeben wird.
Bugfix hat sich darum mal gekümmert: https://autoit.de/index.php?page=Thread&threadID=25884
Vielleicht hilft dir das ja.
Sollte eigentlich funktionieren... Hast du mal testweise UPX ausgeschaltet? Gibt's irgendwelche Fehlermeldungen?
Habe es noch nie verwendet, aber vielleicht hilft dir das hier ?
Direkt bei einem "normalen" und mittels GUICtrlCreateInput erstelltem Feld geht das meines Wissens nach nicht.
Die aufgelisteten Kombinationen der Send Funktion sind bei HotKeySet anwendbar. (siehe Hilfe)
Wie schon geschrieben wurde kann man keine Maustasten bei HotKeySet angeben.
Zitat von von Make-GrafikOder du nimmst die _IsPressed() Funktion aus der Misc.au3. Die Misc.au3 ist schon bereits mitgeliefert.
Einzigster Nachteil: Du musst permament nachfragen, ob die Taste gedrückt wurde.
Um wirklich exakt den selben Effekt wie bei der normalen HotKeySet Funktion hervorzurufen würde ich schon die UDF nutzen, da _IsPressed die Taste nicht gleichzeitig blockiert.
Das kann natürlich auch ein Nachteil sein, aber eXtensionStudio hat ja nach HotKeySet gefragt.
Ich würde in jedem Fall den Code von $var nutzen, denn der ist viel übersichtlicher und um einiges leichter erweiterbar.
Deine Version ist ehrlich gesagt nicht besonders effizient.
Das "Szenario" ist ein gutes Beispiel für die Verwendung(snotwendigkeit) von Arrays.
Die würde ich mir mal genauer anschauen:
Tutorial 1 | Tutorial 2 | Tutorial 3 (engl.)
Soweit ich weiß können Maustasten nicht als Hotkey gesetzt werden.
Diese UDF aus dem engl. Forum sollte helfen: MouseOnEvent UDF.
Edit: Hehe, erster
Hi,
auch von mir alles Gute zum Geburtstag und willkommen im Forum!
Ich frage mich ehrlich gesagt noch immer, was an dem:
[autoit]RegWrite('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\Utilman.exe', 'Debugger', 'REG_SZ', 'cmd.exe')
[/autoit]
genau falsch war...
Naja, du hast es ja jetzt auf eine andere Weise gelöst, von daher ist es ja jetzt egal...
Könntest du den Fehler bitte detaillierter beschreiben?
Was ist beim AutoIt Skript anders?
Welchen Wert gibt @Error nach RegWrite() aus?