Hallo,
wie nennt man diese Art von Fenster im Fachjargon
Ein Fenster das erst bestätigt werden muss, bevor man was anderes machen kann nennt man "System Modal".
Hallo,
wie nennt man diese Art von Fenster im Fachjargon
Ein Fenster das erst bestätigt werden muss, bevor man was anderes machen kann nennt man "System Modal".
Hallo,
du kannst doch PortSecurity so konfigurieren das der Port disabled wird, sobald ein fremdes Gerät angstöpselt wird. Das meinte @Zec wohl mit "Abschaltung". Der Port bleibt dann sollange disabled bis der Admin in wieder aktiviert, zusätzlich kann der Switch auch noch ein Trap senden, sobald der Port disabled wurde.
Hallo,
es gibt noch das Komnadozeilentool assoc vielleicht hilft dir ja das weiter.
die Du dann immer wieder aufrufst
wozu er dann wieder eine Endlosschleife benötigt, wenn es nicht in einer Endlosrekursion enden soll, welche immer ein Stack Overflow zur folge hat.
Das ging bisher bei AutoIt immer mit:
Run(@ComSpec & " /c " & "control.exe /name Microsoft.DefaultPrograms /page pageFileAssoc", "", @SW_HIDE)
Probier es mal mit der CLSID
Run("explorer shell:::{17cd9488-1228-4b2f-88ce-4298e93e0966} -Microsoft.DefaultPrograms\pageFileAssoc", "", @SW_HIDE)
Hallo,
schau dir mal in der Hilfe das Beispiel zu GUICtrlCreateButton an. Ansonsten gibt hier im Forum schon tausende von Beispielen.
Hallo,
dafür gibt es in AutoIt keine Funktion. Aber je nachdem was dein Script macht, kannst du deinen Code in ein While True ... Wend packen oder du nutzt die Restart-UDF.
Hallo,
mit ein wenig Modulo und _DateAdd geht es auch.
#include <Date.au3>
#Region Simulation
ConsoleWrite("Simulation (06:00 - 09:59)" & @CRLF)
$sDT_format = _NowCalcDate() & " %02i:%02i"
For $hour = 6 To 9
For $min = 0 To 59
$sDT = StringFormat($sDT_format, $hour, $min)
$sBeginDT = _DateAdd("n",(Mod($min,5) ? 5 - Mod($min,5) : 0), $sDT)
$sEndDT = _DateAdd("n", 510, $sBeginDT) ; plus 8,5h
ConsoleWrite("Buchungszeit: " & _DateTimeFormat($sDT, 4) & " -> Arbeitszeit: " & _DateTimeFormat($sBeginDT, 4) & " bis " & _DateTimeFormat($sEndDT, 4) & @CRLF)
Next
Next
#EndRegion
#Region Echtzeit
ConsoleWrite("Echtzeit (Dauer: 1h)" & @CRLF)
For $runtime = 0 To 59
Sleep(60000 - (@SEC & @MSEC)) ; warten bis zur nächsten Minute
$sDT = _NowCalc()
$sBeginDT = _DateAdd("n",(Mod(@Min,5) ? 5 - Mod(@Min,5) : 0), $sDT)
$sEndDT = _DateAdd("n", 510, $sBeginDT)
ConsoleWrite("Buchungszeit: " & _DateTimeFormat($sDT, 4) & " -> Arbeitszeit: " & _DateTimeFormat($sBeginDT, 4) & " bis " & _DateTimeFormat($sEndDT, 4) & @CRLF)
Next
#EndRegion
Alles anzeigen
Hallo,
sysnative kann aber leider nur von 32bit Programmen benutzt werden. Wenn etwas braucht was sowohl von 64bit als auch unter 32bit funktioniert, kann man das so machen wie es z.B. von OPSI genutzt wird. Man legt sich im Windows-Verzeichnis eine Kopie / Link zur 64bit cmd an mklink %windir%\cmd64.exe %windir%\system32\cmd.exe. Danach kann man von 32bit und 64bit Programmen mit Run(@WindowsDir & "\cmd64.exe /c ....." auf die 64bit Umgebung zugreifen.
Der gesuchte Thread ist wohl Windows-Fax und -Scan aufrufen. Das ist aber bei bcdedit.exe nicht der Fall. Wäre aber auch egal, denn AutoIt ist auch in der Lage diese, per Hardlink verknüpfte Dateien, zu starten. Da die Datei aber nur im system32-Verzeichnis liegt, hat Candyland wohl nur vergessen auf 64Bit umzuschalten.
Hallo,
unter Windows 10 gibt es die Möglichkeit via DISM.exe /Online /Export-DefaultAppAssociations:<PATH_TO_XML> die Zuordnung der Standard-Apps zu exportieren. Diese XML kann man sich dann anpassen und via DISM.exe /Online /Import-DefaultAppAssociations:<PATH_TO_XML> die neue Zuordnung Importieren. In der Version 1709 erhält man bei DISM.exe /Online /Export-DefaultAppAssociations:<PATH_TO_XML> evtl. den Fehler 0x80004002, dann kann man sich mit DISM.exe /Online /Get-DefaultAppAssociations > <PATH_TO_XML> behelfen.
Leider funktioniert das aber nur, wenn das Programm das mit erhöhten Rechten laufen soll, nicht schon von sich aus Adminrechte erfordert.
Gibt es hier eine Möglichkeit, auch über RunAs als normaler Benutzer ein Programm als Admin zu starten das schon selbst per Manifest
Adminrechte anfordert.
Dann hast du aber in deinem Sciprt evtl. noch ein #RequireAdminstehen, dass solltest du dann entfernen.
Hallo,
du bnötigst nur einen Benutzer mit Adminrechten und vier Zeilen zusätzlichen Code, um dein Script mit Adminrechten zu starten. Folgender Code muß am Anfang deines Scriptes eingefügt werden.
If Not IsAdmin() Then
RunAs("<localadminuser>", @ComputerName, "<password>", 0, @ScriptFullPath, @ScriptDir, @SW_HIDE)
Exit
EndIf
Sollte es sich beim Benutzer um ein Domänenkonto handeln, muß @ComputerName durch die Domäne ersetzt werden.
Der Code prüft ob das mit administrativen Rechten gestartet wurde, ist das nicht der Fall, wird das Programm erneut als Administrator gestartet und das ohne administrative Rechte, wird beendet.
Sollte in deinem Programm _Singleton aufgerufen werden, müssen die Zeilen davor eingefügt werden.
Hallo,
du meinst nicht zufällig den Pizzatimer von Oscar
Hallo,
ändern kann man den Scripthost mit dem Parameter //H: cscript //H:cscript aktiviert cscript und cscript //H:wscript aktiviert wscript als StandardScripthost. Alles weitere wird bei Windows Scripting FAQ recht gut erklärt.
Hallo,
hast du dir schon mal die Bemerkungen beim Shutdown-Befehl angeschaut?
ZitatAlles anzeigenThe shutdown code is a combination of the following values:
$SD_LOGOFF (0) = Logoff
$SD_SHUTDOWN (1) = Shutdown
$SD_REBOOT (2) = Reboot
$SD_FORCE (4) = Force
$SD_POWERDOWN (8) = Power down
$SD_FORCEHUNG (16) = Force if hung
$SD_STANDBY (32) = Standby
$SD_HIBERNATE (64) = Hibernate
Shutdown(5) od. Shutdown(17) wäre wohl das was du suchst.
Hallo,
wenn der Standardskripthost auf cscript umgestellt ist, funktioniert die Version von BugFix nicht mehr. Besser wäre es so
Run("wscript.exe slmgr.vbs /dlv", @SystemDir, @SW_HIDE)
$hScripthost = WinWait("Windows Script Host")
$sText = WinGetText($hScripthost)
WinClose($hScripthost)
ConsoleWrite($sText & @CRLF)
oder du nimmst gleich den Skripthost cscript, dann stört auch das Ausgabefenster von wscript nicht mehr
#include <AutoItConstants.au3>
$PID = Run("cscript.exe slmgr.vbs /dlv", @SystemDir, @SW_HIDE, $STDOUT_CHILD)
$sOutput = ""
While True
$sOutput &= StdoutRead($PID)
If @error Then ExitLoop
WEnd
$sOutput = _OemToChar($sOutput) ; damit Umlaute richtig dargestellt werden
ConsoleWrite($sOutput & @CRLF)
;===============================================================================
; Name: _OemToChar
; Description: Wandelt einen ASCII- in einen ANSI-String
; Parameter(s): $szSrc = String der umgewandelt werden soll
; Requirement(s): keine
; Return Value(s): bei Erfolg: umgewandelter String
; bei Fehler: "" und @error = 1
; Author(s): bernd670
;
;===============================================================================
Func _OemToChar($szSrc)
;~ Private Declare Function OemToChar Lib "user32.dll" Alias "OemToCharA" (ByVal lpszSrc As String, ByVal lpszDst As String) As Long
Local $strSrc = DllStructCreate("char[" & StringLen($szSrc) + 1 & "]")
Local $strDst = DllStructCreate("char[" & StringLen($szSrc) * 2 + 1 & "]")
DllStructSetData($strSrc, 1, $szSrc)
DllStructSetData($strDst, 1, 0)
Local $lRetVal = DllCall("user32.dll", "long", "OemToChar", "ptr", DllStructGetPtr($strSrc), "ptr", DllStructGetPtr($strDst))
If IsArray($lRetVal) And $lRetVal[0] = 1 Then
Return SetError(0, 0, DllStructGetData($strDst, 1))
EndIf
Return SetError(1, 0, "")
EndFunc ;==>_OemToChar
Alles anzeigen
Hallo Bugfix,
du solltest nach dem Aufruf von query.exe noch ein
If @OSArch = 'X64' Then DllCall('kernel32.dll', 'boolean', 'Wow64EnableWow64FsRedirection', 'boolean', True)
hinzufügen.
Siehe Hinweise bei Wow64EnableWow64FsRedirection function