Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Status einer Anwendung herausfinden (https://www.delphipraxis.net/101854-status-einer-anwendung-herausfinden.html)

WS1976 19. Okt 2007 06:10


Status einer Anwendung herausfinden
 
Hallo,

wir versuchen uns, im Moment, an einem Tool zur Installation unserer Anwendungen (vollautomatisch mit allem drum und dran).
Das einzige was uns fehlt ist eine Information über den Status der Insatllationsroutine (z.B. setuppro.exe von Word)
Was wir wissen möchten: Läuft die Routine oder wartet sie auf eine Eingabe?
Hat jemand einen Ansatz mit dem sich das ermitteln lässt?
Ich habe vor, das Ganze, hier komplett mit Source zu veröffentlichen.

Grüsse
Rainer

peschai 19. Okt 2007 06:34

Re: Status einer Anwendung herausfinden
 
möchtest du wissen ob der prozess läuft z.b "setuppro.exe" ? :?:

WS1976 19. Okt 2007 06:37

Re: Status einer Anwendung herausfinden
 
Hallo,

nein, den Prozess hab ich ja selbst angestossen!
Ich muss wissen ob das Programm auf eine Tastatureingabe wartet (Weiter,Abbrechen) oder ob
sonst eine Aktion vom Benutzer erwartet wird.
Mir würde schon helfen wenn ich wüsste wer im Moment den Fokus hat und eventuell was das ist!
(Button, editfeld....)

Grüsse
Rainer

s-off 19. Okt 2007 06:53

Re: Status einer Anwendung herausfinden
 
Hallo,

Du weißt, dass Deine Anwendung läuft, da Du sie selbst gestartet hast.

Du weißt aber auch, wann eine Benutzereingabe benötigt wird, da Du diese selbst anforderst.
Im Klartext: sobald Du eine Maske, einn Dialog - was auch immer - öffnest, in der Interaktion mit dem Benutzer stattfinden soll, setzt Du ein Flag.
Sobald besagte Interaktion abgeschlossen ist, die Maske, der Dialog - was auch immer - geschlossen, bestätigt (...) wird, setzt Du das Flag zurück.

Dieses Flag kannst Du nun jederzeit bequem abfragen und entsprechend handeln.

Nachtrag: bei gutem Design weiß man immer, wo man steht :zwinker:

WS1976 19. Okt 2007 06:57

Re: Status einer Anwendung herausfinden
 
nein,

wir reden aneinander vorbei!
Ein konkretes Beispiel:

Ich starte, von meiner Anwendung aus, die Installationsroutine von Microsoft Office2003.
Irgendwann wartet das Installationstool auf eine Eingabe oder auf den Freigabecode oder sonst etwas. Das versuch ich herauzufinden.
Hätt ich das Installationstool selbst programmiert wär das kein Problem.

Grüsse
Rainer

s-off 19. Okt 2007 07:19

Re: Status einer Anwendung herausfinden
 
Zitat:

Zitat von WS1976
wir reden aneinander vorbei!

Korrekt, habe mich auf die Aussage
Zitat:

[...]Installation unserer Anwendungen[...]
gestützt.

Vielleicht könnte man auf Basis der CPU-Last der Zielanwendung reagieren.
Wenn eine Applikation auf Benutzereingaben wartet, könnte man ja vielleicht davon ausgehen, dass die CPU-Last recht niedrig ist.
Aber verlassen würde ich mich darauf wahrscheinlich nicht.

Wnn Du an das aktive Control der Zielanwendung ran möchtest, musst Du zuerst eine Beziehung zwischen dem Prozess Deiner Anwendung und dem Zielprozess herstellen. Dieses machst Du mit den Funktionen MSDN-Library durchsuchenGetWindowThreadProcessID und MSDN-Library durchsuchenAttachThreadInput.
Anschließend kannst Du mit MSDN-Library durchsuchenGetFocus das aktive Control ermitteln.

Luckie 19. Okt 2007 08:31

Re: Status einer Anwendung herausfinden
 
Man kann Windows unbeaufsichtigt installieren. eventuell gibt es ja was ähnliches für Office. Hast du dich in dieser Richtung schon mal kundig gemacht?

s-off 19. Okt 2007 08:33

Re: Status einer Anwendung herausfinden
 
Zitat:

Zitat von Luckie
Man kann Windows unbeaufsichtigt installieren. eventuell gibt es ja was ähnliches für Office. Hast du dich in dieser Richtung schon mal kundig gemacht?

Das war nur ein Beispiel.
Ich gehe mal davon aus, dass sie noch weitere Anwendungen automatisiert installieren, also eine generelle Lösung haben wollen.

WS1976 19. Okt 2007 08:49

Re: Status einer Anwendung herausfinden
 
Hallo Luckie, Hallo s-off,

für Office mags das geben. Mein Problem liegt aber viel tiefer und ich suche nach einer generellen Lösung.
Ziel des Tools: Ich will alles, also z.B. Office, Virenscanner, Winzip, SAP, Delphi installieren.
Ausserdem soll das Tool dem Rechner einen anderen Namen geben und ihn in die Domäne bringen können.

Status meines Projekts:
Das Tool kann bisher all das. Sogar die automatischen Boots dazwischen werden ausgeführt.
Leider ist das bisher alles Zeitgesteuert.Ich habe ein Installationsscript geschrieben, darin können Zeiten eigegeben werden.
Nachteil: Für das Skript benötige ich die Maximalzeiten, sodass das alles sehr lange dauert.
Eine Reaktion auf die Aktion des Setupprogrammes wäre eleganter.

Grüsse
Rainer

s-off 19. Okt 2007 09:46

Re: Status einer Anwendung herausfinden
 
Zitat:

Zitat von WS1976
Eine Reaktion auf die Aktion des Setupprogrammes wäre eleganter.

Diese Möglichkeit wird Dir das Installationsprogramm aber kaum bieten - jedenfalls nicht allgemeingültig.
Von daher ist das Vorgehen, die Oberfläche der Installationsroutine zu zerlegen, aus meiner Sicht schon die geeignete.


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:33 Uhr.
Seite 1 von 2  1 2      

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