Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - Timer wird nach Benutzer wechseln nicht ausgelöst.


Jojojoxx - Sa 25.06.05 13:11
Titel: Timer wird nach Benutzer wechseln nicht ausgelöst.
Hallo!

Ich habe folgendes Problem:
Wenn ich bei meiner Anwendung unter WIndows XP Benutzer wechseln mache, so läuft der Timer in meinem Programm zwar weiter, jedoch löst er den Code dahinter nicht aus!? Bleibe ich in der normalen Windows-Umgebung, dann funktioniert alles ganz normal!!!
Was mich jetzt verwundert ist, das ein zweiter Timer ganz normal weiterläuft und ohne Probleme funktioniert!?
Hier ist mal der Code vom fehlerhaften Timer:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
procedure TForm1.Timer2Timer(Sender: TObject);
begin
TimerStat:=TimerStat + 1;
if TimerStat=ShutPC then
begin
ShellExecute(Application.Handle, 'open', PChar(Zeile3), '-s -t 01'nil, SW_SHOWNORMAL);
Timer2.Enabled:=False;
end;
end;


Habt ihr dazu eine Idee???
Danke euch!

mfg

Jojo

Moderiert von user profile iconChristian S.: Code- durch Delphi-Tags ersetzt.


hallo - Sa 25.06.05 13:42

Ein bisschen mehr Code wäre mal nicht schlecht...


Jojojoxx - Sa 25.06.05 13:50

Wüsste nicht, was ihr noch an Code gebrauchen könntet...
Es geht ja nur um den Timer. Die Variable ShutPC ist eine vom Benutzer eingegebene Zahl (in Sek.),
die mit der Timer-Variable "TimerStat" abgeglichen wird, der Timer läuft mit einem Intervall von 1 sek. und setzt so die Variable
TimerStat immer nach 1 sek. um 1 höher. Und sobald die Variablen den gleichen Wert haben, soll der Code in der IF-Anweisung ausgeführt werden...

mfg

Jojo


Heiko - Sa 25.06.05 15:16

user profile iconJojojoxx hat folgendes geschrieben:
Was mich jetzt verwundert ist, das ein zweiter Timer ganz normal weiterläuft und ohne Probleme funktioniert!?
Es funktioniert also der Code im Timer?

Das dein Programm nicht funktioniert könnte auch daran liegen, das XP das starten eines Programmes bei einem abgemeldeten User nicht mehr erlaubt aus Sicherheitsgründen.


Jojojoxx - Sa 25.06.05 15:27

@Heiko: Das kann natürlich sein.
Ich werde mal versuche in einem kleinen Programm den Code ausführen zu lassen, mal sehen, ob das klappt.
Ich melde mich dann gleich nochmal...

mfg

Jojo


Jojojoxx - Sa 25.06.05 15:44

Hi!

Ja, es liegt an Windows, sobald der Benutzer gewechselt wurde, lässt sich nix mehr ausführen...
Könnte man denn nicht das Programm als Service laufen lassen, dann sollte das doch möglich sein, oder???

mfg

Jojo


Heiko - Sa 25.06.05 15:57

Dann müsste es allerdings möglich sein, da die Programme ja auch laufen, wenn gerade keiner angemeldet ist.


Jojojoxx - Sa 25.06.05 16:45

Wie kann ich denn das Proggi in einen Service verwandeln???
Habe leider keine Ahnung, wie das geht :(

mfg

Jojo


Heiko - Sa 25.06.05 18:12

Es heißt ja eigentlich auch nicht Service sonder Dienst ;). Finden tust du hier [http://www.delphi-forum.de/viewtopic.php?t=33738&start=0&postdays=0&postorder=asc&highlight=] etwas darüber.


Jojojoxx - Sa 25.06.05 18:15

Danke dir!
Werde mich gleich mal ein bisschen damit befassen!

edit: Ich sehe gerade, dass dann ja ein "neues Programm" gemacht wird. Wie kann ich die Programme denn dann "kooperieren" lassen, sodass ich z.B. Variablen unter den beiden Programmen vergleichen kann??
mfg

Jojo


Heiko - Sa 25.06.05 18:27

In dem du Messages verschickst.


Jojojoxx - Sa 25.06.05 18:35

Hi!

Hab gerade mal im Forum gesucht, aber nix gefunden!
Wie geh ich denn an sowas ran?? Wie verschicke ich diese Messages??
Danke für deine Hilfe!

mfg

Jojo


Heiko - Sa 25.06.05 18:39

ICh habe es auf Anhieb gefunden ;). Wenn du unter Suche in: Delphi-Forum, Delphi-Library MESSAGE SENDEN suchst findest du z.B. das hier [http://www.delphi-forum.de/viewtopic.php?t=42942&highlight=message+senden].


Jojojoxx - Sa 25.06.05 18:58

Ich habe mir gerade dieses SharedMemory-Projekt heruntergeladen!
Aber jetzt verstehe ich gar nix mehr :(

mfg

Jojo


Heiko - Sa 25.06.05 19:03

Eröffne dazu am besten ein neues Thema ;). Das passt hier langsam nicht mehr unter der Überschrift.