AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

NetScheduleJobAdd Parameter?!

Offene Frage von "RobertP"
Ein Thema von RobertP · begonnen am 4. Sep 2006 · letzter Beitrag vom 4. Sep 2006
Antwort Antwort
RobertP

Registriert seit: 19. Aug 2006
181 Beiträge
 
Turbo Delphi für Win32
 
#1

NetScheduleJobAdd Parameter?!

  Alt 4. Sep 2006, 15:21
Moin, ich hab ein Problem mit der Funktion NetScheduleJobAdd:

Nen Task erstellen funktioniert, allerdings hab ich keine Ahnung was für Werte ich für die Parameter setzen soll. Die MSDN Library hat mich irgendwie mehr verwirrt als geholften Also JobTime muss ich in Millisekunden nach Mitternacht angeben, des funktioniert auch. Nur der Rest nicht. Wie gebe ich DaysOfMonth, DaysOfWeek und Flags an? Kann mir da bitte jemand helfen? Danke!


Delphi-Quellcode:
A.JobTime:=timeaftermidnight; // Millisekunden nach Mitternacht
    A.DaysOfMonth:= 0; // ??
    A.DaysOfWeek := 0;// ??
    A.Flags:=1; // ??
    A.Command:=PWideChar(path+#0); // Pfad zum Programm
    error:=NetScheduleJobAdd(nil, PA, JobId);
Grüße,
MrPayne
Robert
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: NetScheduleJobAdd Parameter?!

  Alt 4. Sep 2006, 17:19
Moin Mr.Payne,

DaysOfMonth ist eine Bitfeld, dass heisst:
Jedes Bit des DWORD hat, allgemein ausgedrückt, eine eigene Bedeutung.
Im konkreten Fall steht hier jedes Bit (von rechts begonnen) für den Tag des Monats (1. bis 31.) an dem der Job gestartet werden soll.
Beispiel:
Du übergibst hier 5. Binär also 0000 0000 0000 0000 0000 0000 0000 1001 (32 Bit, da DWORD)
=> Der Job wird am 1. und 4. eines jeden Monats ausgeführt.

Analog gilt dies auch für DayOfWeek, wobei hier Bit 0 für Montag steht, Bit 1 für Dienstag usw.
Beispiel:
Du übergibst hier 7. Binär also 0000 1011 (8 Bit, da Char)
=> Der Job wird am Montag, Dienstag und Donnerstag gestartet.

Um jetzt zu ermitteln, welchen Wert Du übergeben musst, kannst Du so vorgehen:

DaysOfMonth := (2 shl (NummerDesErstenTages-1)) or (2 shl (NummerDesZweitenTages-1)) or ...

Das geht natürlich auch in einer Schleife, so dass die Gesamtzahl der Tage nicht festgeschrieben werden muss.
Den ersten Tag direkt zuweisen, die übrigen mit or ergänzen.

Für DaysOfWeek gilt dies analog. Wenn Du hier Montag den Wert 0 (Sonntag = 6) zuordnest, kannst Du Dir jeweils das -1 sparen.

Wird bei den beiden Werten 0 angegeben, so wird der Job nur einmal, bei ersten Auftreten von JobTime, gestartet.

Die Flags sollten in MSDN-Library durchsuchenAT_INFO erklärt sein (ggf. über MSDN-Library durchsuchenNetScheduleJobAdd zu erreichen)

Um mehrere Flags zu kombinieren muss auch or verwendet werden.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
RobertP

Registriert seit: 19. Aug 2006
181 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: NetScheduleJobAdd Parameter?!

  Alt 4. Sep 2006, 18:50
Jetzt hab ichs endlich gecheckt wie des geht!! BIG THANKS!!
Robert
  Mit Zitat antworten Zitat
RobertP

Registriert seit: 19. Aug 2006
181 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: NetScheduleJobAdd Parameter?!

  Alt 4. Sep 2006, 22:26
Kann es sein dass man mit NetSchedule nicht alles machen kann was mit den geplanten Tasks normalerweise möglich ist? Was mach ich z.B. wenn ich nen Task machen will der nur einmal ausgeführt wird aber an nem bestimmten Datum? Oder wenn ich nen Task täglich ausführen will? (Wenn man nicht den Umweg über wöchentlich und dann an allen Tagen nimmt)

Najo bin jetzt eh erstmal paar Tage in Urlaub vielleicht fällt mir ja da au was ein

Grüße,
MrPayne
Robert
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:24 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz