Announcement

Collapse
No announcement yet.

SetTimer und Callback im NT-Dienst

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • SetTimer und Callback im NT-Dienst

    <pre>
    Hallo,
    <br>
    Benutze SetTimer in Verbindung mit Zeiger auf eine CallBack Funktion
    <br>
    <b>procedure</b> TimerCallBackProc( Wnd: Hwnd; uMsg,idEvent: Uint; dwTime: DWORD);<b>stdcall</b>;
    <b>begin</b>
    Inc(cTimerCount);
    <b>if</b> cTimerCount >= 0 <b>then</b> ......
    <b>end</b>;
    <br>
    <b>procedure</b> SettheTimer;
    <b>begin</b>
    SetTimer( Handle, 1, 1000, @TimerCallBackProc);
    <b>end</b>;
    <br>
    Läuft alles gut bis eine Benutzer Neuanmeldung durchgeführt wurde
    dann Fehler in Proc.

    1. Welches Handle muss ich verwenden? Application.MainFrom.Handle oder nur Handle?
    2. Wie erstelle ich einen Timer im Dienst mit CallBack Func?
    <br>
    M.f.G. Hendrik Leesch
    [email protected]
    </pre>

  • #2
    Hi

    Handle = 0, heist Handle MUSS NULL sein. Steht auch so in der API-Hilfe. Entweder soll eine WM_TIMER Message an ein Fenster = Handle gesendet werden:

    <pre>
    SetTimer( Handle, 1, 1000, <b>nil</b>);

    </pre>

    oder eine Callback aufgerufen werden:

    <pre>
    SetTimer( <b>0</b>, 1, 1000, @TimerCallBackProc);

    </pre>

    Gruß Hagen

    PS: Dein jetziges Problem muss aber nichts mit der Timer routine zu tun haben

    Comment


    • #3
      Hallo,<br>
      <br>
      fast richtig...<br>
      ist Handle = 0 dann wird idEvent ignoriert!!!<br>
      habe mich auch mit KillTimer beschäftigt.<br>
      ist Handle in SetTimer = 0 dann muss in KillTimer<br>
      KillTimer( Handle, idEvent);<br>
      der idEvent = Rückgabewert von SetTimer sein.<br>
      <br>
      Aber Danke!<br>
      <br>
      H.Leesc

      Comment


      • #4
        Ja und ? DU MUSST ID-Event eh ignorieren, am besten immer auf 0 setzen. Der Rückgabewert von SetTimer() liefert Dir die Timer-ID die Du nutzen solltest. Gibst Du eine ID vor kann es sehr wohl sein das SetTimer() fehlschlagen muss, da die gleiche ID schon existieren kann.

        Gruß Hage

        Comment

        Working...
        X