1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. Scritch

Beiträge von Scritch

  • Dienste starten und beenden

    • Scritch
    • 30. Dezember 2010 um 16:26

    Danke, genau das was ich gesucht habe. Funktioniert auf der Kommandozeile wunderbar, nur im Script leider nicht :pinch:

    [autoit]

    Local $pcname[1] = ["PCname"]
    For $a = 0 to ubound($pcname) - 1
    Local $commandName = "psservice" & "\\" & $pcname[$a] & " " & "setconfig Remote-Registrierung auto"
    Run(@ComSpec & " /c " & $commandName, "", @SW_HIDE)
    next

    [/autoit]
  • Dienste starten und beenden

    • Scritch
    • 30. Dezember 2010 um 14:37

    UEZ:
    Um ehrlich zu sein, verstehe ich dein Script nicht so recht :pinch:

    Habe meine Problematik mal etwas anders gelöst:

    [autoit]

    #include <array.au3>

    [/autoit][autoit][/autoit][autoit]

    Local $pcname[1] = ["PCname"]

    [/autoit][autoit][/autoit][autoit]

    For $a = 0 to ubound($PCname) - 1
    Local $commandName = "sc \\" & $PCname[$a] & " " & "start RemoteRegistry"
    Run(@ComSpec & " /c " & $commandName, "", @SW_HIDE)
    next

    [/autoit]

    Wie ich das jetzt mit dem aktivieren/deaktivieren hinbekommen, weiss ich nicht.
    Das kann man an der Kommandozeile scheinbar nicht für Remoterechner machen...

  • Dienste starten und beenden

    • Scritch
    • 28. Dezember 2010 um 15:19

    Da hatte jemand einen nervösen Finger :D
    Remote: Ok, darum gehts mir eig. primär - hatte ich das nicht erwähnt? :pinch:
    Aber wie stelle ich d as nun wieder an?

  • Dienste starten und beenden

    • Scritch
    • 28. Dezember 2010 um 14:53

    Ok, probiere ich mal. Allerdings ließ sich der Service auch nicht starten nachdem ich ihn händisch aktiviert habe

  • Dienste starten und beenden

    • Scritch
    • 28. Dezember 2010 um 14:38

    Oki, danker erstmal. Allerdings: habe ich was übersehen? Meine geänderte Variante (habe den Dienst nur ausgetauscht) funktioniert nämlich nicht. Können deaktivierte Dienste auch gestartet werden, wenn nicht, kann man sie per AutoIT aktivieren?

    Spoiler anzeigen
    [autoit]

    Global $STANDARD_RIGHTS_REQUIRED = 0x000F0000
    Global $SC_MANAGER_CONNECT = 0x0001
    Global $SC_MANAGER_CREATE_SERVICE = 0x0002
    Global $SC_MANAGER_ENUMERATE_SERVICE = 0x0004
    Global $SC_MANAGER_LOCK = 0x0008
    Global $SC_MANAGER_QUERY_LOCK_STATUS = 0x0010
    Global $SC_MANAGER_MODIFY_BOOT_CONFIG = 0x0020

    [/autoit] [autoit][/autoit] [autoit]

    Global $SC_MANAGER_ALL_ACCESS = BitOR($STANDARD_RIGHTS_REQUIRED, _
    $SC_MANAGER_CONNECT, _
    $SC_MANAGER_CREATE_SERVICE, _
    $SC_MANAGER_ENUMERATE_SERVICE, _
    $SC_MANAGER_LOCK, _
    $SC_MANAGER_QUERY_LOCK_STATUS, _
    $SC_MANAGER_MODIFY_BOOT_CONFIG)

    Global $SERVICE_QUERY_CONFIG = 0x0001
    Global $SERVICE_CHANGE_CONFIG = 0x0002
    Global $SERVICE_QUERY_STATUS = 0x0004
    Global $SERVICE_ENUMERATE_DEPENDENTS = 0x0008
    Global $SERVICE_START = 0x0010
    Global $SERVICE_STOP = 0x0020
    Global $SERVICE_PAUSE_CONTINUE = 0x0040
    Global $SERVICE_INTERROGATE = 0x0080
    Global $SERVICE_USER_DEFINED_CONTROL = 0x0100

    [/autoit] [autoit][/autoit] [autoit]

    Global $SERVICE_ALL_ACCESS = BitOR($STANDARD_RIGHTS_REQUIRED, _
    $SERVICE_QUERY_CONFIG, _
    $SERVICE_CHANGE_CONFIG, _
    $SERVICE_QUERY_STATUS, _
    $SERVICE_ENUMERATE_DEPENDENTS, _
    $SERVICE_START, _
    $SERVICE_STOP, _
    $SERVICE_PAUSE_CONTINUE, _
    $SERVICE_INTERROGATE, _
    $SERVICE_USER_DEFINED_CONTROL)

    [/autoit] [autoit][/autoit] [autoit]

    Global $SERVICE_CONTROL_STOP = 0x00000001
    Global $SERVICE_CONTROL_INTERROGATE = 0x00000004

    [/autoit] [autoit][/autoit] [autoit]

    ;#comments-start***
    ;Example - stop print spooler service
    If _ServiceRunning("Remote-Registrierung") Then
    _StopService("Remote-Registrierung")
    If @error Then
    MsgBox(64, "", "Failed to stop Spooler service")
    Else
    MsgBox(64, "", "Spooler service stopped")
    EndIf
    Else
    _StartService("Remote-Registrierung")
    If @error Then
    MsgBox(64, "", "Failed to start Spooler service")
    Else
    MsgBox(64, "", "Spooler service started")
    EndIf
    EndIf
    #comments-end***

    [/autoit] [autoit][/autoit] [autoit]

    ;===============================================================================
    ;
    ; Description: Starts a service
    ; Syntax: _StartService($sServiceName)
    ; Parameter(s): $sServiceName - Name of service to start
    ; Requirement(s): None
    ; Return Value(s): On Success - Sets @error = 0
    ; On Failure - Sets:
    ; @error = 1056: Already running
    ; @error = 1060: Service does not exist
    ; Author(s): SumTingWong
    ; Documented by: noone
    ;
    ;===============================================================================

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func _StartService($sServiceName)
    Local $arRet
    Local $hSC
    Local $hService
    Local $lError = -1

    [/autoit] [autoit][/autoit] [autoit]

    $arRet = DllCall("advapi32.dll", "long", "OpenSCManager", _
    "str", "", _
    "str", "ServicesActive", _
    "long", $SC_MANAGER_CONNECT)
    If $arRet[0] = 0 Then
    $arRet = DllCall("kernel32.dll", "long", "GetLastError")
    $lError = $arRet[0]
    Else
    $hSC = $arRet[0]
    $arRet = DllCall("advapi32.dll", "long", "OpenService", _
    "long", $hSC, _
    "str", $sServiceName, _
    "long", $SERVICE_START)
    If $arRet[0] = 0 Then
    $arRet = DllCall("kernel32.dll", "long", "GetLastError")
    $lError = $arRet[0]
    Else
    $hService = $arRet[0]
    $arRet = DllCall("advapi32.dll", "int", "StartService", _
    "long", $hService, _
    "long", 0, _
    "str", "")
    If $arRet[0] = 0 Then
    $arRet = DllCall("kernel32.dll", "long", "GetLastError")
    $lError = $arRet[0]
    EndIf
    DllCall("advapi32.dll", "int", "CloseServiceHandle", "long", $hService)
    EndIf
    DllCall("advapi32.dll", "int", "CloseServiceHandle", "long", $hSC)
    EndIf
    If $lError <> -1 Then SetError($lError)
    EndFunc

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ;===============================================================================
    ;
    ; Description: Stops a service
    ; Syntax: _StopService($sServiceName)
    ; Parameter(s): $sServiceName - Name of service to stop
    ; Requirement(s): None
    ; Return Value(s): On Success - Sets:
    ; @error = 0
    ; On Failure - Sets:
    ; @error = 1062: Already stopped
    ; @error = 1060: Service does not exist
    ; Author(s): SumTingWong
    ; Documented by: noone
    ;
    ;===============================================================================
    Func _StopService($sServiceName)
    Local $arRet
    Local $hSC
    Local $hService
    Local $lError = -1

    [/autoit] [autoit][/autoit] [autoit]

    $arRet = DllCall("advapi32.dll", "long", "OpenSCManager", _
    "str", "", _
    "str", "ServicesActive", _
    "long", $SC_MANAGER_CONNECT)
    If $arRet[0] = 0 Then
    $arRet = DllCall("kernel32.dll", "long", "GetLastError")
    $lError = $arRet[0]
    Else
    $hSC = $arRet[0]
    $arRet = DllCall("advapi32.dll", "long", "OpenService", _
    "long", $hSC, _
    "str", $sServiceName, _
    "long", $SERVICE_STOP)
    If $arRet[0] = 0 Then
    $arRet = DllCall("kernel32.dll", "long", "GetLastError")
    $lError = $arRet[0]
    Else
    $hService = $arRet[0]
    $arRet = DllCall("advapi32.dll", "int", "ControlService", _
    "long", $hService, _
    "long", $SERVICE_CONTROL_STOP, _
    "str", "")
    If $arRet[0] = 0 Then
    $arRet = DllCall("kernel32.dll", "long", "GetLastError")
    $lError = $arRet[0]
    EndIf
    DllCall("advapi32.dll", "int", "CloseServiceHandle", "long", $hService)
    EndIf
    DllCall("advapi32.dll", "int", "CloseServiceHandle", "long", $hSC)
    EndIf
    If $lError <> -1 Then SetError($lError)
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    ;===============================================================================
    ;
    ; Description: Checks to see if a service is installed
    ; Syntax: _ServiceExists($sServiceName)
    ; Parameter(s): $sServiceName - Name of service to check
    ; Requirement(s): None
    ; Return Value(s): On Success - Returns 1
    ; On Failure - Returns 0
    ; Author(s): SumTingWong
    ; Documented by: noone
    ;
    ;===============================================================================
    Func _ServiceExists($sServiceName)
    Local $arRet
    Local $hSC
    Local $bExist = 0

    $arRet = DllCall("advapi32.dll", "long", "OpenSCManager", _
    "str", "", _
    "str", "ServicesActive", _
    "long", $SC_MANAGER_CONNECT)
    If $arRet[0] <> 0 Then
    $hSC = $arRet[0]
    $arRet = DllCall("advapi32.dll", "long", "OpenService", _
    "long", $hSC, _
    "str", $sServiceName, _
    "long", $SERVICE_INTERROGATE)
    If $arRet[0] <> 0 Then
    $bExist = 1
    DllCall("advapi32.dll", "int", "CloseServiceHandle", "long", $arRet[0])
    EndIf
    DllCall("advapi32.dll", "int", "CloseServiceHandle", "long", $hSC)
    EndIf
    Return $bExist
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    ;===============================================================================
    ;
    ; Description: Checks to see if a service is running
    ; Syntax: _ServiceRunning($sServiceName)
    ; Parameter(s): $sServiceName - Name of service to check
    ; Requirement(s): None
    ; Return Value(s): On Success - Returns 1
    ; On Failure - Returns 0
    ; Author(s): SumTingWong
    ; Documented by: noone
    ;
    ;===============================================================================
    Func _ServiceRunning($sServiceName)
    Local $arRet
    Local $hSC
    Local $hService
    Local $bRunning = 0

    [/autoit] [autoit][/autoit] [autoit]

    $arRet = DllCall("advapi32.dll", "long", "OpenSCManager", _
    "str", "", _
    "str", "ServicesActive", _
    "long", $SC_MANAGER_CONNECT)
    If $arRet[0] <> 0 Then
    $hSC = $arRet[0]
    $arRet = DllCall("advapi32.dll", "long", "OpenService", _
    "long", $hSC, _
    "str", $sServiceName, _
    "long", $SERVICE_INTERROGATE)
    If $arRet[0] <> 0 Then
    $hService = $arRet[0]
    $arRet = DllCall("advapi32.dll", "int", "ControlService", _
    "long", $hService, _
    "long", $SERVICE_CONTROL_INTERROGATE, _
    "str", "")
    $bRunning = $arRet[0]
    DllCall("advapi32.dll", "int", "CloseServiceHandle", "long", $hService)
    EndIf
    DllCall("advapi32.dll", "int", "CloseServiceHandle", "long", $hSC)
    EndIf
    Return $bRunning
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    ;===============================================================================
    ; Description: Delete a Windows Service
    ; Syntax: _ServDelete($iName[, $Computer])
    ; Parameter(s): $iName - The name of the service to delete
    ; $Computer - The network name of the computer (optional) The local computer is default
    ; Requirement(s): None
    ; Return Value(s): Success - Deletes the service
    ; Failure Sets @Error = -1 if service is not found
    ; Author(s) GEOSoft
    ; Modification(s):
    ; Note(s):
    ; Example(s):
    ;===============================================================================

    [/autoit] [autoit][/autoit] [autoit]

    Func _ServDelete($iName, $Computer = ".")
    $Service = ObjGet("winmgmts:\\" & $Computer & "\root\cimv2")
    $sItems = $Service.ExecQuery("Select * from Win32_Service")
    For $objService in $sItems
    If $objService.Name == $iName Then
    $objService.StopService($objService.Name)
    $objService.Delete($objService.Name)
    Return
    EndIf
    Next
    Return SetError(-1)
    EndFunc ;<==> _ServDelete()

    [/autoit] [autoit][/autoit] [autoit]

    ;===============================================================================
    ; Description: Return the details of a Windows Service
    ; Syntax: _ServGetDetails($iName[, $Computer])
    ; Parameter(s): $iName - The name of the service to check
    ; $Computer - The network name of the computer (optional) The local computer is default
    ; Requirement(s): None
    ; Return Value(s): Success - Returns an array of the service details where element (-1 = Yes, 0 = No)
    ; [1] = Computer Network Name
    ; [2] = Service Name
    ; [3] = Service Type (Own Process, Share Process)
    ; [4] = Service State (Stopped, Running, Paused)
    ; [5] = Exit Code (0, 1077)
    ; [6] = Process ID
    ; [7] = Can Be Paused (-1, 0)
    ; [8] = Can Be Stopped (-1, 0)
    ; [9] = Caption
    ; [10] = Description
    ; [11] = Can Interact With Desktop (-1, 0)
    ; [12] = Display Name
    ; [13] = Error Control (Normal, Ignore)
    ; [14] = Executable Path Name
    ; [15] = Service Started (-1, 0)
    ; [16] = Start Mode (Auto, Manual, Disabled)
    ; [17] = Account Name (LocalSystem, NT AUTHORITY\LocalService, NT AUTHORITY\NetworkService)
    ; Failure Sets @Error = -1 if service not found
    ; Author(s) GEOSoft
    ; Modification(s):
    ; Note(s):
    ; Example(s): $Var = _ServGetDetails("ATI Smart")
    ; $Dtl = "System Name|Name|Type|State|ExitCode|Process ID|Can Pause|Can Stop|Caption|Description|"
    ; $Dtl = StringSplit($Dtl & "Interact With DskTop|Display Name|Error Control|Exec File Path|Started|Start Mode|Account", '|')
    ; For $I = 1 To $Var[0]
    ; MsgBox(4096,$Dtl[$I], $Var[$I])
    ; Next
    ;===============================================================================

    [/autoit] [autoit][/autoit] [autoit]

    Func _ServGetDetails($iName, $Computer = ".")
    Local $Rtn = ''
    $Service = ObjGet("winmgmts:\\" & $Computer & "\root\cimv2")
    $sItems = $Service.ExecQuery("Select * from Win32_Service")
    For $objService in $sItems
    If $objService.Name == $iName Then
    $Rtn &= $objService.SystemName & '|' & $objService.Name & '|' & $objService.ServiceType & '|' & $objService.State & '|'
    $Rtn &= $objService.ExitCode & '|' & $objService.ProcessID & '|' & $objService.AcceptPause & '|' & $objService.AcceptStop & '|'
    $Rtn &= $objService.Caption & '|' & $objService.Description & '|' & $objService.DesktopInteract & '|' & $objService.DisplayName & '|'
    $Rtn &= $objService.ErrorControl & '|' & $objService.PathName & '|' &$objService.Started & '|' & $objService.StartMode & '|'
    $Rtn &= $objService.StartName
    Return StringSplit($Rtn, '|')
    EndIf
    Next
    Return SetError(-1)
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    ;===============================================================================
    ; Description: Return the current state of a Windows Service
    ; Syntax: _ServGetState($iName[, $Computer])
    ; Parameter(s): $iName - The name of the service to check
    ; $Computer - The network name of the computer (optional) The local computer is default
    ; Requirement(s): None
    ; Return Value(s): Success - Returns the state of the service
    ; Failure Sets @Error = -1 if service not found
    ; Author(s) GEOSoft
    ; Modification(s):
    ; Note(s):
    ; Example(s):
    ;===============================================================================

    [/autoit] [autoit][/autoit] [autoit]

    Func _ServGetState($iName, $Computer = ".")
    $Service = ObjGet("winmgmts:\\" & $Computer & "\root\cimv2")
    $sItems = $Service.ExecQuery("Select * from Win32_Service")
    For $objItem in $sItems
    If $objItem.Name == $iName Then Return $objItem.State
    Next
    Return SetError(-1)
    EndFunc ;<==> _ServGetState()

    [/autoit] [autoit][/autoit] [autoit]

    ;===============================================================================
    ; Description: List the currently installed services
    ; Syntax: _ServListInstalled([,$Computer])
    ; Parameter(s): $Computer - The network name of the computer (optional) The local computer is default
    ; Requirement(s): None
    ; Return Value(s): Success - Returns the state of the service
    ; Failure Sets @Error = -1 if service not found
    ; Author(s) GEOSoft
    ; Modification(s):
    ; Note(s):
    ; Example(s):
    ;===============================================================================

    [/autoit] [autoit][/autoit] [autoit]

    Func _ServListInstalled($Computer = ".")
    Local $Rtn = ''
    $Service = ObjGet("winmgmts:\\" & $Computer & "\root\cimv2")
    $sItems = $Service.ExecQuery("Select * from Win32_Service")
    For $objService in $sItems
    $Rtn &= $objService.Name & '|'
    Next
    Return StringSplit(StringTrimRight($Rtn, 1), '|')
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    ;===============================================================================
    ; Description: Pause a Windows Service
    ; Syntax: _ServPause($iName[, $Computer])
    ; Parameter(s): $iName - The name of the service to start
    ; $Computer - The network name of the computer (optional). The local computer is default
    ; Requirement(s): None
    ; Return Value(s): Success - Pauses the service
    ; Failure Sets @Error = -1 if service not found or service is already paused
    ; Author(s) GEOSoft
    ; Modification(s):
    ; Note(s):
    ; Example(s):
    ;===============================================================================

    [/autoit] [autoit][/autoit] [autoit]

    Func _ServPause($iName, $Computer = ".")
    $Service = ObjGet("winmgmts:\\" & $Computer & "\root\cimv2")
    $sItems = $Service.ExecQuery("Select * from Win32_Service Where State = 'Running' ")
    For $objService in $sItems
    If $objService.Name == $iName Then
    $objService.PauseService($objService.Name)
    Return
    EndIf
    Next
    Return SetError(-1)
    EndFunc ;<==> _ServPause()

    [/autoit] [autoit][/autoit] [autoit]

    ;===============================================================================
    ; Description: Resumes a previously paused Windows auto-start service
    ; Syntax: _ServResume($iName[, $Computer])
    ; Parameter(s): $iName - The name of the service to start
    ; $Computer - The network name of the computer (optional). The local computer is default
    ; Requirement(s): None
    ; Return Value(s): Success - Resumes the service
    ; Failure Sets @Error = -1 if service not found
    ; Author(s) GEOSoft
    ; Modification(s):
    ; Note(s):
    ; Example(s):
    ;===============================================================================

    [/autoit] [autoit][/autoit] [autoit]

    Func _ServResume($iName, $Computer = ".")
    $Service = ObjGet("winmgmts:\\" & $Computer & "\root\cimv2")
    $sItems = $Service.ExecQuery("Select * from Win32_Service Where State = 'Paused' and StartMode = 'Auto'")
    For $objService in $sItems
    If $objService.Name == $iName Then
    $objService.ResumeService($objService.Name)
    Return
    EndIf
    Next
    Return SetError(-1)
    EndFunc ;<==> _ServResume()

    [/autoit]
  • Dienste starten und beenden

    • Scritch
    • 28. Dezember 2010 um 12:04

    Moin,

    dass man Dienste mit AutoIT beenden kann, weiß ich. Aber kann man auch welche starten? Oder muss ich den Weg über die Konsole gehen?

  • Registry auf fernen Rechner

    • Scritch
    • 28. Dezember 2010 um 09:20

    Ich wollte mich mit meiner Kennung an dem System anmelden. Da es mir primär nur um die Druckerports geht die in Current_User angezeigt werden, und diese für den ganzen PC dieselben sind, dachte ich mir gehe ich den Weg. Aber der ist wohl steiniger als ich dachte.

  • Registry auf fernen Rechner

    • Scritch
    • 23. Dezember 2010 um 15:50

    Muss hier nochmal kurz pushen, damit ich keinen neuen Thread aufmachen muss.
    Ich wollte bei einem fernen PC gerne auf HKEY_CURRENT_USER zugreifen.
    Schaffe ich das auch mit meiner Kennung ohne dass wer anders angemeldet
    und ohne das dass ich mich manuell anmelden muss?

  • Registry auf fernen Rechner

    • Scritch
    • 23. Dezember 2010 um 15:18

    So, Fehler gefunden. Habe das Array bei eins, nicht bei null angefangen abzuarbeiten.

  • Registry auf fernen Rechner

    • Scritch
    • 23. Dezember 2010 um 13:13

    So. Habe das jetzt mal in mein Script eingebaut. Funktionieren tuts aber irgendwie nicht wirklich.

    Spoiler anzeigen
    [autoit]

    For $z = 1 To UBound($yfnrpc) - 1
    ;FileWrite($auswertung, @crlf & $pcname[$z] & @crlf)
    For $i = 1 to 100
    $var = RegEnumVal("\\" & $pcname[$z] & "\" & "HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\PrinterPorts", $i);Liest den Schlüssel
    If @error <> 0 Then ExitLoop
    $wert = RegRead("\\" & $pcname[$z] & "\" & "HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\PrinterPorts", $var);Liest den Wert des Schlüssels
    If $wert = $lpt then
    FileWrite($auswertung, $var & ";" & "LPT1" & ";" & "SN nicht verfügbar" & @crlf)
    EndIf
    next
    next

    [/autoit]

    Habe eine Funktion, die die PC-Namen bei mir im Netzwerk in ein Array schreibt. Funktioniert einwandfrei! Will ich die Namen aus dem Array jedoch benutzen (in der Schleife), setzt es aus und macht scheinbar gar nichts mehr! Witzig jedoch: Trage ich meinen PC-Namen von Hand in das Script ein, soll es so funktionieren wie es soll. Woran kann das liegen?

  • Registry auf fernen Rechner

    • Scritch
    • 23. Dezember 2010 um 10:29

    Augen auf beim Fensterkauf - werde dann nochmal nachschauen :)

  • Registry auf fernen Rechner

    • Scritch
    • 23. Dezember 2010 um 10:24

    Ok.
    Wie? In der Hilfe gibs darüber ja nichts.

  • Registry auf fernen Rechner

    • Scritch
    • 23. Dezember 2010 um 10:13

    Moin,

    ist es möglich Einträge aus der Registry auszulesen?
    Also, RegRead-mäßig?

  • Vergleich von 2 Werten

    • Scritch
    • 22. Dezember 2010 um 08:21
    Zitat

    Sicher, dass beim RegRead nicht irgendwo noch Leerzeichen oder ähnliches drin sind?

    Btw.: Ist in AutoIt zwar egal, aber Werte vergleichen eigentlich mit ==

    Ja, bin ich mir sicher. Daher hatte ich ja erst die Messagebox eingebaut um das zu prüfen! Den Wert den ich vergleichen möchte bekomme ich ja.
    Mag es damit zusammenhängen dass darin ; und , drin vorkommen? If not funktioniert in dem Zusammenhang nämlich auch nicht.
    Habe sowohl = als auch == ausprobiert ;)

  • Vergleich von 2 Werten

    • Scritch
    • 21. Dezember 2010 um 16:43

    Moin,

    wiedereinmal melde ich mich zurück, was sicherlich wieder nur eine Kinderspiel ist. Dennoch sehe ich nicht wo mein Fehler liegt :sleeping:
    Ich wollte gerne einen Wert aus der Registry mit einem vorgegebenen vergleichen. Wenn sie übereinstimmen soll etwas in eine Datei geschrieben werden.

    Spoiler anzeigen
    [autoit]

    #include <Array.au3>
    #include <File.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Global $auswertung = @ScriptDir & "\auswertung.csv"
    FileOpen ($auswertung , 1)
    Global $lpt = "winspool,LPT1:,15,45"
    For $i = 1 to 100
    $var = RegEnumVal("HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\PrinterPorts", $i);Liest den Schlüssel
    If @error <> 0 Then ExitLoop
    If $var = "Lexmark E240 (Kopie 1)" Then
    $wert = RegRead("HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\PrinterPorts", $var);Liest den Wert des Schlüssels
    ;MsgBox(4096, "Ordner für Programme:", $wert)
    If $wert = $lpt then
    FileWrite($auswertung, $var & ";" & "LPT1")
    EndIf
    EndIf
    next
    FileClose($auswertung)

    [/autoit]


    Passieren tut da nichts. Habe schon paar mal 2 Werte verglichen - aber diesmal kommt irgendwie nichts bei rum.

  • Mehrere Werte aus Registry auslesen

    • Scritch
    • 21. Dezember 2010 um 15:16

    Ok, danke dir. Kann ich die Registry auch durchsuchen?

  • Mehrere Werte aus Registry auslesen

    • Scritch
    • 16. Dezember 2010 um 16:14

    Moin,
    ich möchte aus der Registry etwas auslesen. Das mache ich ja hiermit:

    [autoit]

    $var = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion", "ProgramFilesDir")
    MsgBox(4096, "Program files are in:", $var)

    [/autoit]


    Wunderbar. Wie aber kann ich die Werte aller Schlüssel auslesen und in ein Array packen wenn ich die Schlüsselnamen nicht weiss? Ich möchte jetzt z. B. aller Werte von hier haben: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion
    Geht das überhaupt?

    Nächste Sache wäre, die Registry mit AutoIT zu durchsuchen. Geht das auch?

  • Von PC auf Linuxserver

    • Scritch
    • 13. Dezember 2010 um 12:49

    Hallo,

    entschuldigt wenn das hier nicht ganz hinpasst, aber ich muss eine Datei von sich in einem Netzwerk befindlichen Rechner auf einen Linuxserver kopieren. Kann ich das mit AutoIT bewerkstelligen? Alternativ oder parallel dazu würde es mich auch interssieren wie man es ohne AutoIT lösen kann.

  • Von PC auf Linuxserver

    • Scritch
    • 13. Dezember 2010 um 12:19

    Ok, klingt logisch. Ich probiers mal. Danke :)

  • Hardware auslesen

    • Scritch
    • 3. Dezember 2010 um 12:48

    Sorry für die sperrlichen informationen. Das problem mit meinem Drucker habe ich, glaube ich zumindest, selber lösen können. In der Registry wird ein Schlüssel mit dem aktuell lokal angeschlossenen Printer angelegt.
    HKEY_CURRENT_USER -> Printers/Settings/Wizzard
    Ob das nur geht wenn der Drucker beim Start eingeschaltet war, oder ob der Wert dauerhaft gespeichert wird also sich merkt ob der Drucker mal sngeschlossen war, weiss ich nicht. Wenn man ihn jedenfals löscht, einen nicht an den PC angeschlossenen Drucker als Standard definiert, den PC neustartet wird wieder der dort aufgelistet der beim Systemstart angeschlossen und eingeschaltet war.

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™