Beiträge von aIT-newUSER
-
-
Hallo Gleichgesinnte,
ich möchte eine GUI schreiben, welche mir den Windows Update-Dienst überwacht.
Spoiler anzeigen
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 476, 96, 192, 124)
$input= GUICtrlCreateLabel("", 96, 32, 105, 21)
$Label1 = GUICtrlCreateLabel("Windows Update", 16, 32, 66, 17)
$Start = GUICtrlCreateButton("Start", 216, 32, 97, 25, $WS_GROUP)
$Stop = GUICtrlCreateButton("Stop", 328, 32, 113, 25, $WS_GROUP)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###Func _RetrieveServiceState($s_Machine, $s_ServiceName)
Local Const $wbemFlagReturnImmediately = 0x10
Local Const $wbemFlagForwardOnly = 0x20
Local $colItems = "", $objItem
Local $objWMIService = ObjGet("winmgmts:\\" & $s_Machine & "\root\CIMV2")
If @error Then
MsgBox(16, "_RetrieveServiceState", "ObjGet Error: winmgmts")
Return
EndIf
$colItems = $objWMIService.ExecQuery ("SELECT * FROM Win32_Service WHERE Name = '" & $s_ServiceName & "'", "WQL", _
$wbemFlagReturnImmediately + $wbemFlagForwardOnly)
If @error Then
MsgBox(16, "_RetrieveServiceState", "ExecQuery Error: SELECT * FROM Win32_Service")
Return
EndIf
If IsObj($colItems) Then
For $objItem In $colItems
Return $objItem.State
Next
EndIf
EndFunc ;==>_RetrieveServiceStateDo
$service = "wuauserv"
$input= GUICtrlCreateLabel(" " & _RetrieveServiceState(@ComputerName, $service), 96, 32, 105, 21)
EndIf
sleep (3000)
until 1 = 2While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
ExitCase $Start
RunWait("net.exe start wuauserv")
$Input = GUICtrlCreateLabel(" " & _RetrieveServiceState(@ComputerName, $service), 96, 32, 105, 21)Case $Stop
RunWait("net.exe stop wuauserv")
$Input = GUICtrlCreateLabel(" " & _RetrieveServiceState(@ComputerName, $service), 96, 32, 105, 21)EndSwitch
WEnd- Im "$input= GUICtrlCreateLabel("", 96, 32, 105, 21)" Feld soll immer der aktuelle Status stehen, also ob er gestoppt ist oder gestartet.
- Über die Buttons start und stop möchte ich den Dienst starten und stoppen können, jedoch soll sich der status in "$input= GUICtrlCreateLabel("", 96, 32, 105, 21)" dann auch ändern.Wenn ich eine Do - Until oder eine While-Schleife einfüge wird mir zwar der aktuelle status angezeigt, jedoch funktionieren die start-stop-buttons nicht mehr.
Lasse ich die schleifen weg, funktionieren die buttons, allerdings hat der status dann keinen einfluss wenn ich über cmd den dienst starte oder stoppe dann kriegt der status das nicht mit da keine schleife vorhanden istWeis hier jemand weiter ? bitte um hilfe -> D A N K E ...
-
Hallo,
kann hier mir jemand weiterhelfen und mir sagen wir ich die MsgBox-Ausgabe unterbinden kann und das Ergebnis des Strings einfach in eine Variable schreiben kann ?
Variable anstelle der Msgbox. Komme hier gerade einfach nicht weiter, bitte um hilfe ... thx @ allCode
Alles anzeigenMsgBox(0, '', _RegSearch('HKEY_LOCAL_MACHINE', 'v3.3.4.0')) Func _RegSearch($sRegPath, $sSearch) Local $sKey, $sVal, $sVar, $ret, $i = 0, $j = 0 While True $i += 1 $sKey = RegEnumKey($sRegPath, $i) If @error Then ExitLoop $ret = _RegSearch($sRegPath & '\' & $sKey, $sSearch) If $ret <> '' Then ExitLoop $j = 0 While True $j += 1 $sVal = RegEnumVal($sRegPath & '\' & $sKey, $j) If @error Then ExitLoop $sVar = RegRead($sRegPath & '\' & $sKey, $sVal) If $sVar == $sSearch Then Return $sRegPath & '\' & $sKey WEnd WEnd Return $ret EndFunc
-
Na das Problem ist an deinem Beispiel, dass nur eine MSGbox erscheint, aber die Datei nicht kopiert wird ...
-
Hallo Leute,
ich habe mal wieder ein Problem, an dem ich nicht weiterkomme, vielleicht hat von euch jemand die Erläuchtung
Folgendes:
In Windows Betriebssystemen ist die Option "Rechter Mausklick auf eine Datei > Kopieren" gegeben, und anschließend kann ich mir den passenden Ablageordner suchen, und dann mit "Rechter Mausklick > Einfügen" die Datei ablegen.Kann ich das auch irgendwie mit Autoit hinbekommen ?
- Bei Filecopy muss ich ja zwingend eine "Destination" angeben
- Und _ClipPutFile klappt auch irgendwie nicht.Beispiel:
Ich möchte vom Pfad "C:\TEMP" die Datei "Installlog.txt" in die Zwischenablage kopieren, mehr soll vorerst nichts geschehen.
Dann gehe ich z.B. mit der Maus auf den Desktop und sage "Rechte Maustaste > Einfügen" und dann soll die Datei "Installlog.txt" auf den Desktop kopiert werden.Kann mir hierbei jemand weiterhelfen ? Besten Dank schonmal im voraus.
BR
-
Hallo @ all,
ist es möglich einen TrayTip auch mit mehr als 255 Zeichen zu erstellen ?
Oder kann man einen ToolTip auch an der rechten unteren Ecke ausrichten ?
Schöne Grüße
-
Hi,
wiso muss ich 2 Scripte erstellen ? Der Pfad ist bei einem x64-System auch nicht anders :O !
@WindowsDir & "\System32\winevt\Logs\Internet Explorer.evtx"
-
Hallo Gleichgesinnte,
heute ist mir ein seltsames Phänomen aufgefallen, ich weis nur nicht ist es ein Bug oder mache ich irgendwas falsch.
Folgendes Script auf einem x64-System mit der Option "UseX64=n" funktioniert nicht und das File wird nicht kopiert ...
[autoit]#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
[/autoit]
#AutoIt3Wrapper_UseUpx=n
#AutoIt3Wrapper_UseX64=n
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
DirCreate(@TempDir & "\LOGS\EventLogs")
FileCopy(@WindowsDir & "\System32\winevt\Logs\Internet Explorer.evtx", @TempDir & "\LOGS\EventLogs")Wenn ich hingegen die Option "UseX64=y" setzte, wird das File kopiert ...
[autoit]#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
[/autoit]
#AutoIt3Wrapper_UseUpx=n
#AutoIt3Wrapper_UseX64=y
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
DirCreate(@TempDir & "\LOGS\EventLogs")
FileCopy(@WindowsDir & "\System32\winevt\Logs\Internet Explorer.evtx", @TempDir & "\LOGS\EventLogs")Hat jemand erfahrungen damit ? Das Sript soll sowohl auf x86 und x64-Systemen laufen und das File kopieren.
Bitte um HIIIIILFE. Danke im voraus -
-
-
-
-
Hallo,
eine kleine Frage an euch alle, da ich iwie nicht mehr weiterkomme und alle Beispiele die ich bei Google finden kann, behandeln das Problem nicht
Ich möchte folgenden Befehl ausführen:
RunWait(@COMSPEC & " /c Dir " & $Path & " > test.txt", "", @SW_HIDE)
Leider wird mir die Variable "$Path" nicht ausgewertet. Diese Variable wird mit RegRead aus der Registry ausgelesenWenn ich z.B. folgenden Befehl ausführe klappt das ganze und es wird die txt-Datei beschrieben:
RunWait(@COMSPEC & " /c Dir " & @WindowsDir & " > test.txt", "", @SW_HIDE)
Kann mir jemand sagen, wie ich diese Abfrage hinbekommen kann ?
Danke schon mal im voraus. -
@TheLuBu -> Danke genau das wollte bei mir nicht funktionieren
-
-
-
Hallo Gleichgesinnte,
ich mache eine DOS-Abfrage und lasse diese in eine Textdatei schreiben - funktioniert auch soweit !
Nun möchte ich diese erzeugte Textdatei auslesen
Es ist so, dass in dieser Textdatei mehrere Informationen abgelegt sind, z.B:--- copy & paste ---
Available profiles:
Protection
Updater
Updater$ma000007
Monitoring--- copy & paste ---
Ich möchte nun den Wert "Updater$ma000007" auslesen und in einer Variable speichern. Das Problem dabei ist, dass der Endwert "ma000007" nicht immer gleich ist, er kann auch mal "ma000005" oder "ma000002" oder irgendeine Zahl beinhalten. Weis wer Rat, wie ich diese Abfrage hinbekommen kann und die Textdatei auslesen kann :O ?
-
Hallo,
scheinbar gibt es ein kleines Problem mit der Zip.au3 in Verbindung mit einem Command-Line Parameter.
Ziel ist dass das Script erkennt ob per commandline ein parameter mitgegeben wurde z.B: /path=c:\testfolder
Wenn das Script ohne commandline-parameter gestartet wurde, funktioniert es, wenn ich jedoch das script über eine batchdatei mit parameter aufrufe, erhalte ich
folgende Fehlermeldung: array variable has incorrect number of subscripts or subscript dimension range exceeded.
Weis jemand rat, ich weis nicht warum es in Verbindung mit der Zip.au3 fehlschlägt ??Mein Script (mit Fehlermeldung):
#include <Process.au3>
#include <Array.au3>
#include "Zip.au3";**************** Start Auswahl Datei-Speicherort ****************
$DSort = FileSelectFolder("Speicherort auswählen ...", "", 4, "")
If $DSort <> "" Then
DirCreate("LOGS")
Else
MsgBox(0, "Collect", "Abbrechen wurde gewählt" & @CRLF & "" & @CRLF & "Script wird beendet")
Exit
EndIf
$FileNameKC = "\Collect_" & @ComputerName & "_" & @MDAY & "_" & @MON & "_" & @YEAR; checking for command-line parameters
If $CmdLine[0] = 0 Then
MAIN()
Exit
EndifIf StringInStr($CmdLine[1],"/path=",0) Then
;ConsoleWrite($CmdLine[1])
$CmdL=StringSplit($CmdLine[1],"=")
If StringLen($CmdL[2])>0 Then
MsgBox(0, "", $CmdL[2])
Else
HELPME()
Endif
Else
HELPME()
Endiffunc MAIN()
;**************** Archiv erstellen und Dateien packen ****************
$Archiv = $DSort & $FileNameKC & ".zip" ; Ort und Name des Archives
$Archivfile = @TempDir & "\LOGS" ; Datei, Ordner welche ins Archiv sollen$Zip = _Zip_Create($Archiv)
_Zip_AddFile($Zip,$Archivfile)Exit
EndFuncfunc HELPME()
MsgBox(0, "tool.exe", "available parameters: /path=YOURPATH")
Exit
EndFuncMein Script (ohne Fehlermeldung)
; checking for command-line parameters
If $CmdLine[0] = 0 Then
MAIN()
Exit
EndifIf StringInStr($CmdLine[1],"/path=",0) Then
;ConsoleWrite($CmdLine[1])
$CmdL=StringSplit($CmdLine[1],"=")
If StringLen($CmdL[2])>0 Then
MsgBox(0, "", $CmdL[2])
Else
HELPME()
Endif
Else
HELPME()
Endiffunc MAIN()
MsgBox(0, "MAIN", "ok, its working - no paramaters given")
Exit
EndFuncfunc HELPME()
MsgBox(0, "tool.exe", "available parameters: /path=YOURPATH")
Exit
EndFunc -
Du bist ja schneller als die Polizei erlaubt
1000 Dank
-
Hallo,
ich habe eine Frage hinsichtlich SplitString.
Ich habe eine Zeichenfolge (Zahlen-Buchstabenkombination) z.B. "HU-20110525-0024" und ich möchte die ersten 7 Zeichen (HU-2011) entfernen und das Minuszeichen zwischen den Zahlen (-) auch, dass
die Zeichenfolge als Endergebnis "05250024" in einer MsgBox angezeigt wird.Leider bringen mich die ganzen Befehle "StringReplace" oder "StringRegExp" nicht weiter
Weiß jemand rat ?