Einfach $test = ControlClick(::::)
msgbox(0,"",$test)
Wenn 0, dann passt entweder der Fenstertitel nicht, oder die ControlID
Einfach $test = ControlClick(::::)
msgbox(0,"",$test)
Wenn 0, dann passt entweder der Fenstertitel nicht, oder die ControlID
Ich kann so jetzt keine Fehler entdecken
Schau mal den Rückgabewert vom ControlClick an , ob der 1 ist oder 0.
btw: In Abschnitt Add-In Fenster kannst du für WinWait auch ein TimeOut einstellen anstelle des Sleeps.
Probier's einfach mit 2xSelect und lasse Switch weg.
Probier mal RunAsSet in der Daten.exe aus. Könnte sein, dass dass das mit den Rechteübergaben so nicht funktioniert, ansonsten weiß ich leider nichts mehr, mit dem ich dir helfen könnte.
2 Sachen sind mir noch aufgefallen:
1. Ich hoffe Zeile 7 bleibt nicht ausdokumentiert.
2. Der Befehl RunAsSet wurde in der neuen Version durch RunAs ersetzt.
User.exe ???
Zeile 11
[autoit]RunWait("test.txt", "X:",1)
[/autoit]Wie willst du eine Textdatei ausführen, dafür benötigst du ShellExecute.
Ich denke da fehlt ein Backslash
FileCopy("X:\Batch\Daten.cmd", "C:\",1)
Einfach alles in eine Schleife.
[autoit][/autoit]#include <GUIConstantsEx.au3>
Opt("TrayMenuMode",1) ; Default tray menu items (Script Paused/Exit) will not be shown.
$settingsitem = TrayCreateMenu("Settings")
$displayitem = TrayCreateItem("Display", $settingsitem)
$printeritem = TrayCreateItem("Printer", $settingsitem)
TrayCreateItem("")
$aboutitem = TrayCreateItem("About")
TrayCreateItem("")
$exititem = TrayCreateItem("Exit")
TraySetState()
#Region ### START Koda GUI section ### Form=
$Form3 = GUICreate("Form3", 413, 305, 246, 181)
$Button1 = GUICtrlCreateButton("Button1", 40, 40, 321, 209, 0)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
$msg = TrayGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
Select
Case $msg = 0
ContinueLoop
Case $msg = $aboutitem
Msgbox(64,"about:","AutoIt3-Tray-sample")
Case $msg = $exititem
ExitLoop
EndSelect
WEnd
Du kannst ihn mit BlockInput daran hindern, dass er Eingaben machen kann. Wenn dann aber die Automatik nicht 100%ig funkt, dann kann man das Script nur noch über den Taskmanager beenden.
Du kannst auch den WinWaitActive Befehlen ein Timeout verpassen, und bei Timeout die Datei löschen und das Script beenden.
Oder du kannst vor jedem WinWaitActive diesen Code einfügen
If Not ProcessExists($pad) Then
FileDelete($Exe)
Exit
EndIf
btw: Du solltest für 'Nero-8.3.6.0_deu.exe' eine Variable vergeben, sonst funkts sowieso nicht (z.B. $Exe)
Das wird so nicht funktionieren!
Wenn du wirklich mitten unter Installation abbrechen willst, dann mach dir einen HotKey zu einer Funktion, die den Prozess schließt, die Datei löscht und das Script beendet.
[autoit]Func Abbruch()
ProcessClose($pad)
FileDelete($pad)
Exit
EndFunc
Bei einer EXE-Datei brauchst du kein FileClose oder FileOpen oder wie auch immer.
[autoit]If $Abbruch = 1 Then
ProcessClose($pad)
FileDelete($pad)
EndIf
Ja, ich hatte die Änderung auch nicht gesehen.
P.S.: Auch von mir Herzlich Willkommen!
Es ist möglich, hab sowas auch schon mal erfolgreich gemacht, finde den Code jetzt aber nicht.
Aus der Hilfe:
It is possible to access remote registries by using a keyname in the form "\\computername\keyname". To use this feature you must have the correct access rights on NT/2000/XP/2003, or if you are using a 9x based OS the remote PC must have the remote registry service installed first (See Microsoft Knowledge Base Article - 141460).
Ich glaube du braucht dazu noch den Befehl RunAs.
If Asc(StringLeft($String,1)) > 115 And IsString(StringLeft($String,1)) Then MsgBox(64,"Info","Der erste Buchstabe ist größer als 's'")
[/autoit]Gegebenenfalls vielleicht StringLower verwenden.
Ich glaub, dass ist mir 800km zu weit weg.
Also vom Ordner in dem das Script läuft, oder?
[autoit]@ScriptDir&"\IE\IE.exe"
[/autoit]Du musst das Array auf 3 erweitern
[autoit]$aOut[3]
[/autoit]Dann der neuen Variable auch etwas zuweisen
[autoit]$aOut[2] = GUICtrlRead($hURL)
[/autoit]Und nach der Funktion fügst du diese 2 Zeilen ein um die Daten von der Funktion in eine Ini-Datei zu schreiben
[autoit]$Datei = @ScriptDir&"\Benutzerdaten.ini"
IniWriteSection($Datei,$array[0],"Pwd="&$array[1] & @LF & "URL="&$array[2])
Hoffe du wolltest das so ungefähr haben!
Das ist schon klar, aber es fehlt mindestens noch ein'C:' wenn nich mehr.
Verwende die Zeile, die ich schon gepostet habe und ersetze FileCreateShortcut mit FileCopy.
Bei dir fehlt das was beim Quellpfad!
[autoit]"\IE\IE.exe","
[/autoit]Wo soll das sein?
Da macht man eigentlich eine Verknüpfung:
[autoit]FileCreateShortcut("C:\IE\IE.exe","C:\Dokumente und Einstellungen\All Users\Startmenü\Programme\Autostart\IE.exe.lnk")
[/autoit]