Autor Beitrag
SteHer
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Mo 20.01.03 22:32 
Hallo,
ich habe folgendes Problem: :roll:
wie kann ich eine Anwendung nach einer bestimmten Zeit der Inaktivität beenden lassen.
Hintergrund ist der:
In einer Firma gibt es nur x Lizenzen eines Viewers (netzwerkhardlockgeschützt)
Er soll aufgerufen werden können, und wenn der Nutzer vergessen hat den Viewer wieder zu beenden und damit für die anderen Kollegen freizugeben, soll mein Delphi-Proggi nach sagen wir 10 oder 15 min den Viewer automatisch beenden.

Welche Möglichkeiten gibt es, so etwas zu realisieren?

Ich bin Newbie und bitte deswegen um schonenden Umgang mit meiner vielleicht naiven Frageweise! :?

_________________
Mit freundlichen Grüßen
SteHer

Computer helfen,
Probleme zu lösen,
die wir ohne sie nicht hätten.
UGrohne
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Veteran
Beiträge: 5502
Erhaltene Danke: 220

Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
BeitragVerfasst: Di 21.01.03 03:45 
Es gibt doch das Event OnIdle von der Application. Da kannste ja eine Startzeit merken (und eine Variable setzen, dass die Zeit jetzt beginnt) und immer wieder abfragen, ob die Zeit schon abgelaufen ist. Bloß für das Ende der Zeit (wenn der Anwender doch wieder was macht) brauchste nochn Event, hat da jmd ne Idee, hab grad keine Lust mehr Delphi aufzumachen, weil ich jetzt ins Bett gehe *g*.

Guats Nächtle
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 21.01.03 03:48 
Das Problem dürfte nur sein, dass es sich um eine fremde Anwendung handelt. :roll:
SteHer Threadstarter
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Di 21.01.03 05:42 
Titel: aus Delphi starten?
@all:Danke erstmal für schnelle Antwort! Wie sieht's denn aus, wenn ich den Viewer aus Delphi heraus starten würde?

_________________
Mit freundlichen Grüßen
SteHer

Computer helfen,
Probleme zu lösen,
die wir ohne sie nicht hätten.
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 21.01.03 06:22 
Überleg mal, was du da gerade gesagt hast. :roll:

Den Viewer mit deinem Programm starten, würde Sinn machen. Aber ob du da weiter kommst, weiß ich auch nicht.

Man könnte dann über den Process-Handle (den man mnit CreateProcess bekommt) und die ProcessID unter NT basierenden System an die CPU-Zeit von dem Prozess darn kommen. Frag mich aber bitte nicht, wie das genau geht.
Popov
Gast
Erhaltene Danke: 1



BeitragVerfasst: Di 21.01.03 06:31 
Du kannst das Programm über CreateProzess starten und überwachen ob das Programm noch läuft. Ich würde dazu die relativ bekannte Prozedur "ExecAndWait" abändern und die Wait-Funktion gegen eine Countdown-Funktion tauschen.

Allerdings hat das alles ein Nachteil. Hier wird nicht die inaktive Zeit gemessen, sondern die die Dauer der Nutzung. Es kann also sein, daß einer die ganze Zeit damit arbeitet, also nicht inaktiv ist.

Es gibt aber eine Windows-Funktion mit der man die inaktive Zeit des Computers feststellen kann. Leider kann ich mich an den Namen nicht erinnern. Ich hab auch schon hier im Forum nachgefragt, allerdings kennt es keiner.
SteHer Threadstarter
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Di 21.01.03 18:39 
@Popov: das ist - denke ich - die gleiche Zeit, die beim Starten eínes Screensavers eine Rolle spielt! Aber das will ich ja nicht! Ansonsten wäre das ganze recht einfach (sagen wir lieber lösbar: Delphi-Programm als Screensaver schreiben, der statt einen bunten Bildschirm zu zaubern, die Anwendung runterfährt. Problem ist aber, daß dieser Timer nur dann tickert, wenn der Anwender GAR NIX macht. Aber er könnte ja z.B. Excel im Vordergrund haben oder im Internet surfen, und darüber den Viewer vergessen! Das bringt uns also trotzdem nicht weiter!

Ich kenne mich mit Hooks nicht aus, hab nur in diversen Abhandlungen gelesen, dass man damit fremde Anwendungen überwachen kann! Wäre das nicht eine Möglichkeit (vorausgesetzt man kennt die Process ID), die Mausaktivität des Viewers zu bespitzeln und einen Timer einzusetzen, der bei Inaktivität seinen Countdown anfängt und immer wieder zurücksetzt, wenn der Anwender die Maus über den Bildschirm des Viewers schiebt??

@Luckie:
Zitat:
Überleg mal, was du da gerade gesagt hast. :)


Genau so meinte ich das ja auch mit createprocess!
Auch wenn ich mich vielleicht ein bisschen unglücklich ausgedrückt habe :oops:
(Ich bin froh, dass ich mit Delphi so einigermassen klarkomme! Ich bin dabei mir das ganze autodidaktisch anzueignen, kenne nur TP6 von früher, hab also geduld mit mir, OK?:smile:)

_________________
Mit freundlichen Grüßen
SteHer

Computer helfen,
Probleme zu lösen,
die wir ohne sie nicht hätten.
matze
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 4613
Erhaltene Danke: 24

XP home, prof
Delphi 2009 Prof,
BeitragVerfasst: Di 21.01.03 19:16 
hmmm...

´wie wäre es denn, wenn du bei jeder mausbewegeung oder jedem ztestendruck einen timer neu startest, wenn dieser timer abgelaufen ist, dann schliesst du den viewer weg !!!

_________________
In the beginning was the word.
And the word was content-type: text/plain.
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 21.01.03 19:23 
Wie wäre es mit genügend Lizenzen kaufen? :roll:
UGrohne
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Veteran
Beiträge: 5502
Erhaltene Danke: 220

Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
BeitragVerfasst: Di 21.01.03 19:25 
Genau das wäre ja wieder ein Screensaver, aber das macht ja wenig Sinn, hilft nur ein bisschen.

Aber was er will ist denke ich wirklich nur mit einem Hook zu machen, es müssen halt die Messages an die Anwendung überwacht werden und demnach ein Timer gesteuert werden.

Kenn mich aber mit Hooks net so aus.

Gruß
SteHer Threadstarter
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Di 21.01.03 21:57 
@all: Eure Ratlosigkeit beruhigt mich! Ich hatte schon gedacht, ich wäre der einzige, der sich mit Hooks nicht auskennt! Das steht aber auch nirgends so beschrieben, dass ein Embryo wie ich das gebacken kriegt! :)

@Luckie: Was die Lizenzen angeht, wäre mir das auch das Liebste! (Wir haben der Firma den Viewer verkauft, und wenn die mehr Lizenzen kaufen würden, würde es uns auch besser gehen als wenn wir jetzt so eine 0815-Lösung stricken müssen) Aber da kann ich nix machen! Wir müssen halt mit der Tatsache leben, dass die Anzahl der Lizenzen vorn und hinten nicht reicht und daher jeder nur für den Moment des Viewens (im wahrsten Sinne einen AUGENBLICK) die Lizenz bekommt! Der Viewer ist ja auch nicht volle 8h pro Tag uind Arbeitsplatz ausgelastet, und dieses Argument reicht dem Chef, vom Kauf weiterer Lizenzen abzusehen.

Wenn alle Stränge reissen, muß ich die temp. Dateien, die der Viewer alle x min. anlegt, abfragen (ist zwar nicht die sicherste und weiß Gott auch nicht die eleganteste Methode, aber sie müßte funkzen und man könnte die blöden Hooks umgehen)

:) Fall Euch dennoch was Hilfreiches einfällt, wäre ich Euch über eine Message dankbar! :)

_________________
Mit freundlichen Grüßen
SteHer

Computer helfen,
Probleme zu lösen,
die wir ohne sie nicht hätten.
smiegel
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 992
Erhaltene Danke: 1

WIN 7
D7 Prof., C#, RAD XE Prof.
BeitragVerfasst: Di 21.01.03 22:01 
Hallo SteHer,

wenn Du Info's zum Thema Hooks suchst, würde ich einmal bei www.entwickler-forum.de/ vorbeischauen und die dortige Suchenfunktion benutzen.

_________________
Gruß Smiegel
Ich weiß, daß ich nichts weiß, aber ich weiß mehr als die, die nicht wissen, daß sie nichts wissen. (Sokrates)
SteHer Threadstarter
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Di 21.01.03 23:56 
Boah, bist Du schnell! Gib's zu, du hast nur auf meinen Beitrag gelauert!

Danke für den Tipp! Da hab ich noch nicht versucht!

_________________
Mit freundlichen Grüßen
SteHer

Computer helfen,
Probleme zu lösen,
die wir ohne sie nicht hätten.
smiegel
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 992
Erhaltene Danke: 1

WIN 7
D7 Prof., C#, RAD XE Prof.
BeitragVerfasst: Mi 22.01.03 00:01 
Hallo,

Zitat:

... du hast nur auf meinen Beitrag gelauert!


eigentlich weniger. War wohl gerade zur rechten Zeit am rechten Ort.

_________________
Gruß Smiegel
Ich weiß, daß ich nichts weiß, aber ich weiß mehr als die, die nicht wissen, daß sie nichts wissen. (Sokrates)