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.347 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. |
sevISDN 1.0 Überwachung aller eingehender Anrufe! Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. 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 Neu! sevCommand 4.0 Professionelle Schaltflächen im modernen Design! Mit nur wenigen Mausklicks statten auch Sie Ihre Anwendungen ab sofort mit grafischen Schaltflächen im modernen Look & Feel aus (WinXP, Office, Vista oder auch Windows 8), inkl. große Symbolbibliothek. |
||||||||||||||||||||||||||||||
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. |