![]() |
Timer in DLL ohne ComCtrl
Moin Leute,
Wie kann ich einen Timer in einer DLL schreiben ohne dabei die VCL ComCtrl zu verwenden? Soweit ^^ mit viel Grüßen DP |
Re: Timer in DLL ohne ComCtrl
|
Re: Timer in DLL ohne ComCtrl
Daran dachte ich auch schon.
Nur gehört der DLL nicht das Fenster -- Hat sich erledigt, geht auch so :) |
Re: Timer in DLL ohne ComCtrl
Ähem ... du kannst auch 0 statt einem gültigen Fensterhandle angeben. Ein Timer braucht ja kein Fenster. Aber dann braucht der Timer mindestens eine Callback-Funktion ...
|
Re: Timer in DLL ohne ComCtrl
Kannst du villeicht ein Beispiel machen.
Bei mir hält er sich einfach nicht ans Delay :? |
Re: Timer in DLL ohne ComCtrl
Oder Du benutzt AllocateHWnd.
Damit kannst du einer fensterlosen Komponente eine Methode geben um auf Windows-Botschaften zu reagieren. Vielleicht funktioniert das auch in einer DLL. |
Re: Timer in DLL ohne ComCtrl
Ne kann ich nicht, lässt der Prozess nicht zu.
Der crasht dann. Das dürfte aj so mit dem Timer klappen, nur brauch ich maln gutes Beispiel. |
Re: Timer in DLL ohne ComCtrl
Zitat:
Beispiel muß ich nochmal nachliefern wenn ich mein PSDK wieder hinbekommen hab. Läuft irgendwie gerade nicht ... |
Re: Timer in DLL ohne ComCtrl
Scheduler ich weiß nicht was du meinst.
Das läuft so: Meine DLL bekommt ne Nachricht vom Hauptprogramm über madCodeHook. Soweit so gut.. In der Nachricht steht ene Delay Zeit in Millisekunden und die soll der Timer nutzen.
Delphi-Quellcode:
Dann ruf ichw enn ich die Nachricht erhalte einfach diese Funktion auf.
const IDC_TIMER1 = 100;
var Continue: boolean; SendString: string; LastSocket: integer; Delay: integer; function Funktion: pointer; stdcall; begin Send(LastSocket, SendString[1], 26, 0); if Continue = True then SetTimer(0, IDC_TIMER1, Delay, Funktion) else begin end; end; Aber dann macht er ohne irgendein Delay die ganze Zeit spammen. EDIT: Ich glaub ich weiß was falsch ist |
Re: Timer in DLL ohne ComCtrl
Ich will dir damit nur sagen, daß du niemals auch nur auf eine 100%ige Einhaltung deiner Vorgaben hoffen kannst. Es ist eben kein Echtzeitbetriebssystem.
In welchem Verhältnis stehen "DLL" und "Hauptprogramm"? Ist die DLL ins Hauptprogramm geladen? Warum arbeitest du mit Sockets? Versuche einfach mal zu beschreiben, was du tun willst - anstatt dich auf eine Methode zu versteifen, die u.U. nicht optimal zum Ziel führt. Also was willst du tun? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:31 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz