Der Windows Taskplaner (Aufgabenplanung) eignet sich hervorragend, um wiederkehrende Aufgaben an bestimmten Wochentagen und/oder zu bestimmten Uhrzeit auszuführen. Heute möchten wir Ihnen zeigen, wie man mittels VB6 eine Windows Aufgabe anlegen kann. Fügen Sie nachfolgenden Code in ein Modul ein: Option Explicit ' Wochentage Public Enum EnumDays Monday = 1 Tuesday = 2 Wednesday = 4 Thursday = 8 Friday = 16 Saturday = 32 Sunday = 64 EveryDay = 1 Or 2 Or 4 Or 8 Or 16 Or 32 Or 64 End Enum ' Erstellt einen neuen Task, der autom. zu der ' angegebenen Uhrzeit ausgeführt wird ' Der Task wird als SYSTEM-Task eingerichtet Public Function NTTaskCreate(ByVal sCmdLine As String, _ ByVal sTime As String, _ Optional ByVal RunRepeatly As Boolean = True, _ Optional ByVal DaysOfWeek As EnumDays = EnumDays.EveryDay, _ Optional ByVal DaysOfMonth As Long = 0, _ Optional ByVal Interactive As Boolean = False, _ Optional ByVal sComputer As String = ".") As Long Dim oWMI As Object Dim oTask As Object Dim nResult As Long Dim JobId As Long Dim vDate As Date ' Fehlerbehandlung aktivieren On Error GoTo ErrHandler ' Uhrzeit muss im Format YYYYMMDDHHMMSS.MMMMMM(+-)OOO übergeben werden ' wobei YYYYMMDD durch ******** ersetzt werden muss ' (+-)OOO ist der Offset zur UTC Zeitangabe vDate = Date$ & " " & sTime sTime = "********" & Format$(vDate, "hhnnss") & ".000000" & _ NTTaskTimeoffset() Set oWMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & _ sComputer & "\root\cimv2") Set oTask = oWMI.Get("Win32_ScheduledJob") nResult = oTask.Create(sCmdLine, sTime, RunRepeatly, DaysOfWeek, _ DaysOfMonth, Interactive, JobId) ' Objekte freigeben Set oTask = Nothing Set oWMI = Nothing NTTaskCreate = nResult On Error GoTo 0 Exit Function ErrHandler: ' Service wird nicht unterstützt NTTaskCreate = 1 End Function ' Hilfsfunktion ' Ermittelt die Zeit-Differenz zwischen UTC und lokaler Zeit Public Function NTTaskTimeoffset() As String Dim oList As Object Dim oTask As Object Dim sOffset As String ' Fehlerbehandlung On Error GoTo ErrHandler Set oList = GetObject( _ "winmgmts:{impersonationLevel=impersonate}").InstancesOf( _ "Win32_ComputerSystem") For Each oTask In oList sOffset = Format$(Val(Trim$(oTask.CurrentTimeZone)), "000") If Val(sOffset) > 0 Then sOffset = "+" & sOffset Exit For Next ' Objekt freigeben Set oList = Nothing On Error GoTo 0 NTTaskTimeoffset = sOffset Exit Function ErrHandler: NTTaskTimeoffset = "+000" Set oList = Nothing End Function Aufrufbeispiel: nResult = NTTaskCreate("D:\MyExe.exe backup", "20:40", True, _ EnumDays.Tuesday Or EnumDays.Thursday) If nResult <> 0 Then MsgBox "Fehler " & CStr(nResult) & vbCrLf & "Die Aufgabe konnte nicht erstellt werden!" End If Mögliche Rückgabewerte:
Hinweis: Dieser Tipp wurde bereits 14.336 mal aufgerufen. Voriger Tipp | Zufälliger Tipp | Nächster Tipp
Anzeige
Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv Vol.6 (einschl. Beispielprojekt!) Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! - nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten - Symbol-Galerie mit mehr als 3.200 Icons im modernen Look Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m. |
sevWizard für VB5/6 Professionelle Assistenten im Handumdrehen Erstellen Sie eigene Assistenten (Wizards) im Look & Feel von Windows 2000/XP - mit allem Komfort und zwar in Windeseile :-) Tipp des Monats April 2024 Skyfloy Chart von Microsoft und dazu noch gratis Tutorial für Microsoft Chart Controls für Microsoft .NET Framework 3.5 TOP Entwickler-Paket TOP-Preis!! Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1605.50 EUR... |
||||||||||||||||||||||||||||||
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein. |