_ServiceRunning("Alerter", "RECHNERNAME")
Beiträge von bernd670
-
-
Hallo,
hier eine Funktion zum prüfen ob ein Dienst läuft, Du musst nur darauf achten das Du den Dienstnamen und nicht den Anzeigenamen angibst.
Spoiler anzeigen
[autoit]Global Const $SC_MANAGER_CONNECT = 0x0001
[/autoit] [autoit][/autoit] [autoit]
Global Const $SERVICE_INTERROGATE = 0x0080
Global Const $SERVICE_CONTROL_INTERROGATE = 0x00000004If Not _ServiceRunning("Alerter") Then
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
MsgBox(0, "", "Warndienst läuft nicht!")
Else
MsgBox(0, "", "Warndienst läuft!")
EndIf;===============================================================================
[/autoit] [autoit][/autoit] [autoit]
; Description: Checks if a service is running on a computer
; Parameters: $sServiceName - name of the service to check
; $sComputerName - name of the target computer. If empty, the local computer name is used
; Requirements: None
; Return Values: On Success - 1
; On Failure - 0
; Note: This function relies on the fact that only a running service responds
; to a SERVICE_CONTROL_INTERROGATE control code. Check the ControlService
; page on MSDN for limitations with using this method.
;===============================================================================
Func _ServiceRunning($sServiceName, $sComputerName = ".")
Local $hAdvapi32
Local $arRet
Local $hSC
Local $hService
Local $bRunning = 0$hAdvapi32 = DllOpen("advapi32.dll")
[/autoit] [autoit][/autoit] [autoit]
If $hAdvapi32 = -1 Then Return 0$arRet = DllCall($hAdvapi32, "long", "OpenSCManager", "str", $sComputerName, "str", "ServicesActive", "long", $SC_MANAGER_CONNECT)
[/autoit] [autoit][/autoit] [autoit]If IsArray($arRet) And $arRet[0] <> 0 Then
[/autoit] [autoit][/autoit] [autoit]
$hSC = $arRet[0]
$arRet = DllCall($hAdvapi32, "long", "OpenService", "long", $hSC, "str", $sServiceName, "long", $SERVICE_INTERROGATE)If IsArray($arRet) And $arRet[0] <> 0 Then
[/autoit] [autoit][/autoit] [autoit]
$hService = $arRet[0]
$arRet = DllCall($hAdvapi32, "int", "ControlService", "long", $hService, "long", $SERVICE_CONTROL_INTERROGATE, "str", "")
If IsArray($arRet) Then $bRunning = $arRet[0]
DllCall($hAdvapi32, "int", "CloseServiceHandle", "long", $hService)
EndIfDllCall($hAdvapi32, "int", "CloseServiceHandle", "long", $hSC)
[/autoit] [autoit][/autoit] [autoit]
EndIfDllClose($hAdvapi32)
[/autoit] [autoit][/autoit] [autoit]Return $bRunning
[/autoit]
EndFunc ;==>_ServiceRunningEdit: hier gibt es die Orginal-UDF.
-
Mit dem style $ES_RIGHT!
-
Hallo,
mach mal am Ende von $Freigabe den Backslash weg! Es sollte eingentlich auch ohne Domäne gehen, ausser es gibt auch ein Lokalen Benutzer mit dem gleichen Namen!
-
Hallo,
ist doch logisch, wenn man eine Datei im Modus 1 öffnet wird der Dateizeiger an das Ende der Datei gesetzt. Ein lesen ab dieser Position gibt natürlich nur eine Leerstring zurück.
[autoit]$sFile = @ScriptDir & '\test.txt'
[/autoit]
$hFile = FileOpen($sFile, 1) ; zum Anhängen öffnen
If $hFile <> -1 Then
MsgBox(0, "Dateizeiger" ,"Der Dateizeiger steht auf Position " & FileGetPos($hFile))
MsgBox(0, 0, FileRead($hFile))
FileWriteLine($hFile, Random(1000, 9999, 1))
FileSetPos($hFile, 0, 0)
MsgBox(0, 0, FileRead($hFile))
FileClose($hFile)
EndIf -
Hallo,
hast Du im WinSCP unter Einstellungen (Ctrl-Alt-P) -> Übertragung -> Fortsetzen die Übertragungsfortsetzung und die automatische Wiederverbindung aktiviert? Wenn nicht dann aktivier das mal.
-
Du willst doch nur die Zahl haben, dann so:
[autoit]$i = "SP-ID : 0000012345.678901"
[/autoit]
$asResult=StringRegExp($i, "SP-ID : ([0-9]{10}\.[0-9]{6})",1)
MsgBox(0,"",$asResult[0]) -
Netter Versuch, seit wann braucht man so was für die eigene hp!
Closed
-
Hallo,
es kommt auch auf die benutzte Timerfunktion an. So läuft er weiter.
Spoiler anzeigen
[autoit]#include <GUIConstantsEx.au3>
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
#include <Timers.au3>Opt("TrayAutoPause",0)
[/autoit] [autoit][/autoit] [autoit]
Opt("TrayOnEventMode",1)
Opt("GUIOnEventMode",1)
Opt("TrayMenuMode",1)$settingsitem = TrayCreateMenu("Settings")
[/autoit] [autoit][/autoit] [autoit]
$displayitem = TrayCreateItem("Display", $settingsitem)
$printeritem = TrayCreateItem("Printer", $settingsitem)
TrayCreateItem("")
$aboutitem = TrayCreateItem("About")
TrayCreateItem("")
$exititem = TrayCreateItem("Exit")
TrayItemSetOnEvent(-1, '_End')TraySetState()
[/autoit] [autoit][/autoit] [autoit]
$hGui = GUICreate('test', 400, 300)
GUISetOnEvent($GUI_EVENT_CLOSE, '_End')
$hLabel = GUICtrlCreateLabel('0', 10, 10, 100, 20)
GUISetState()
$count = 0
_Timer_SetTimer($hGui, 1000, "_Count")
;~ AdlibEnable('_Count', 1000)
While 1
Sleep(10)
WEndFunc _End()
[/autoit] [autoit][/autoit] [autoit]
_Timer_KillAllTimers($hGui)
Exit
EndFuncFunc _Count($hWnd, $Msg, $iIDTimer, $dwTime)
[/autoit]
#forceref $hWnd, $Msg, $iIDTimer, $dwTime
$count += 1
GUICtrlSetData($hLabel, $count)
EndFunc -
-
-
Hallo,
hast Du dir schon mal die Beispiele in der Hilfe angeschaut!
-
Wenn Du wirklich eine Antwort erwartest solltest Du uns den entsprechen Quellcode zur Verfügung stellen.
-
Hallo,
probiers mal so:
[autoit]Run("""C:\Dokumente und Einstellungen\Admin\Eigene Dateien\au3_prog\mother-child-test\child01.exe""")
[/autoit]
[autoit]
oder so:Run(@ComSpec & " /C ""C:\Dokumente und Einstellungen\Admin\Eigene Dateien\au3_prog\mother-child-test\child01.exe""")
[/autoit]RR04, hast Du dir überhaupt den 1. Beitrag komplett durchgelesen?!
-
Hallo,
die Includes haben sich etwas geändert Du musst noch
[autoit]#include <WindowsConstants.au3>
[/autoit]hinzufügen!
-
Hallo,
Du benötigst wahrscheinlich die UDF http.au3!
-
Hallo,
da ist ein Fehler in der aktuellen Excel.au3 die scheint nämlich nur mit der englischen Version von Excel korrekt zu arbeiten.
Probier mal die aktuelle beta da wurde das gefixt. -
Ich werde mich als Moderator bestimmt nicht dafür verbürgen das eine EXE keinen Schaden anrichten kann. Zumal es jedem Nutzer erlaubt ist seine Beiträge zu ändern und damit auch die Dateianhänger jederzeit durch neue auszutauschen. Da werden wir ja nie fertig mit prüfen und wer schützt uns dann vor Schadsoftware. Eine Prüfung des Quellcodes fällt auch flach, den woher soll ich wissen das die Exe genau aus dem Quellcode erstellt wird.
Hier sollte jeder alt genug sein um zu entscheiden ob ein Programm vertrauenswürdig ist oder nicht.
-
-
Hallo,
das Programm ist noch mit Version 3.2.2.0 erstellt worden. Seit dem haben sich ein paar Include's geändert und den Befehl RunAsSet gibt es nicht mehr.
So sollte es wieder gehen (ungetestet):
Spoiler anzeigen
[autoit];~ Author: <Der_Doc>
[/autoit] [autoit][/autoit] [autoit]
;~ Name: <LoginAs.exe>
;~ AutoIt Version: 3.2.2.0 & aktuelle Beta
;~ Version: <1.1>
;~ Datum: 02.03.2007
;~ Ergänzungen: ytwinky, MD
;~ Angepasst an Version 3.3.0.0 (27.05.2009) bernd670
#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>Dim $Programm
[/autoit] [autoit][/autoit] [autoit]
GUICreate("Ausführen als..", 375, 140)
GUICtrlCreateLabel("Programm:", 45, 12)
GUICtrlCreateLabel("Benutzername:", 45, 42)
GUICtrlCreateLabel("Kennwort:", 45, 72)
GUICtrlCreateLabel("Domain:", 45, 102)
GUICtrlCreateIcon("shell32.dll", 194, 5, 60, 32, 32)
$In_Programm = GUICtrlCreateInput(@ComSpec, 120, 10, 169, 21)
$Durchsuchen = GUICtrlCreateButton("Durchsuchen", 290, 11, 80, 20)
$In_Domain = GUICtrlCreateCombo(@LogonDomain, 120, 100, 169, $CBS_DROPDOWNLIST + $CBS_AUTOHSCROLL)
GUICtrlSetData(-1, @ComputerName & '-Arbeitsgruppe|' & @LogonDomain & '-Domain', @LogonDomain)
$In_Benutzer = GUICtrlCreateCombo('Benutzer wählen', 120, 40, 169, 21, $CBS_DROPDOWNLIST + $CBS_AUTOHSCROLL)
GUICtrlSetData($In_Benutzer, _GetUsers(GUICtrlRead($In_Domain)))
$In_Kennwort = GUICtrlCreateInput('', 120, 70, 169, 21, $ES_PASSWORD)
$bt_Login = GUICtrlCreateButton("RunIt", 314, 100, 57, 21, $BS_DEFPUSHBUTTON)
GUICtrlSetFont(-1, 10, 800, 0)
$Copy = GUICtrlCreateLabel("© 2007 Der_Doc && ytwinky", 245, 127)
GUISetState(@SW_SHOW)
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
Exit
Case $Durchsuchen
$Programm = FileOpenDialog("Programm-Auswahl", @ScriptDir & "\", "Anwendung (*.exe)", 1)
If $Programm <> "" And FileExists($Programm) Then GUICtrlSetData($In_Programm, $Programm)
Case $bt_Login
$Programm = GUICtrlRead($In_Programm)
If FileExists($Programm) Then
Select
Case GUICtrlRead($In_Benutzer) = "Benutzer wählen"
MsgBox(32, "Fehler-PopUp", "Erst Benutzernamen eintragen", 2)
GUICtrlSetState($In_Benutzer, $GUI_FOCUS)
Case GUICtrlRead($In_Kennwort) = ""
MsgBox(32, "Fehler-PopUp", "Erst Kennwort eintragen", 2)
GUICtrlSetState($In_Kennwort, $GUI_FOCUS)
Case Else
RunAs(GUICtrlRead($In_Benutzer), GUICtrlRead($In_Domain), GUICtrlRead($In_Kennwort), 1, $Programm)
Exit
EndSelect
Else
MsgBox(16, "Ooops..", "Das angegebene Programm " & $Programm & " gibt es nicht!")
EndIf
EndSwitch
WEndFunc _GetUsers($Domain = "localhost")
[/autoit]
Local $wbemFlagReturnImmediately = 0x10, $wbemFlagForwardOnly = 0x20, $colItems = "", $s
Local $objWMIService = ObjGet("winmgmts:\\" & $Domain & "\root\CIMV2")
$colItems = $objWMIService.ExecQuery("Select * FROM Win32_UserAccount", "WQL", $wbemFlagReturnImmediately * $wbemFlagForwardOnly)
If IsObj($colItems) Then
For $objItem In $colItems
If Not $objItem.Disabled Then $s &= $objItem.Name & "|"
Next
Else
MsgBox(0, "WMI-Ausgabe", "Keine WMI-Objekte gefunden für Klasse: Win32_UserAccount")
Exit 12
EndIf
Return StringLeft($s, StringLen($s) - 1)
EndFunc ;==>_GetUsers