Autor |
Beitrag |
Maisinator
      
Beiträge: 167
Win XP HE SP3, Win Vista HP SP2
Delphi ;-)
|
Verfasst: Sa 19.09.09 17:22
hallo,
wie kann ich bei einem programm, welches ich mit schellexecute ausführe, den status anzeigen? vlt. mit statusbar usw...???
THX
_________________ Das Unmögliche wagen, um das Mögliche möglich zu machen...
|
|
Xentar
      
Beiträge: 2077
Erhaltene Danke: 2
Win XP
Delphi 5 Ent., Delphi 2007 Prof
|
Verfasst: Sa 19.09.09 17:38
Was für einen "Status" meinst du..?
_________________ PROGRAMMER: A device for converting coffee into software.
|
|
Maisinator 
      
Beiträge: 167
Win XP HE SP3, Win Vista HP SP2
Delphi ;-)
|
Verfasst: Sa 19.09.09 18:14
ich mein, wenn man ein programm mit shellexecute öffnet, was ein bisschen größer ist (so 20 mb) dauert es ja immer ein bisschen, bis das programm geladen wurde, diesen zeitraum mein ich mit status. also etwas ähnliches, wie z.b. das windows kopierfenster, mit dem statusbalken oder einfach eine prozentzahl, die ansteigt...
_________________ Das Unmögliche wagen, um das Mögliche möglich zu machen...
|
|
Xentar
      
Beiträge: 2077
Erhaltene Danke: 2
Win XP
Delphi 5 Ent., Delphi 2007 Prof
|
Verfasst: Sa 19.09.09 19:11
*grübel* so ein Thema hatten wir doch vor Kurzem erst.
Und dabei sind wir zu dem Ergebnis gekommen, dass man NICHT rausfinden kann, wann ein Programm "fertig" gestartet ist - da man eben nicht weiß, was das Programm zur Initialisierung noch alles macht.
_________________ PROGRAMMER: A device for converting coffee into software.
|
|
jaenicke
      
Beiträge: 19326
Erhaltene Danke: 1749
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Sa 19.09.09 19:15
Man kann das ohne Rückmeldung von dem Programm nicht als Fortschritt anzeigen, aber bei den meisten Programmen kann man durchaus erkennen, wenn die fertig geladen sind.
Dazu gibts auch was in der Library.
// EDIT:
Doch nicht in der Library, aber im Forum:
www.delphi-forum.de/....php?p=460553#460553
|
|
Tryer
      
Beiträge: 226
Erhaltene Danke: 7
|
Verfasst: Sa 19.09.09 19:34
Eine Lösung mit ShellExecuteEx() und WaitForInputIdle() ist auch denkbar.
Ein "Prozentwert" ist nur denkbar wenn man das Startverhalten der Anwendung genau kennt, dann kann man z.B. die Anzahl der erzeugten Threads/Handle und den Speicherverbrauch auswerten. Weder leicht noch sehr präzise. WaitForInputIdle oder die Funktion welche Jaenicke genannt hat erlauben es aber zumindest eine Sanduhr anzuzeigen o.ä.
Grüsse, Dirk
|
|
Maisinator 
      
Beiträge: 167
Win XP HE SP3, Win Vista HP SP2
Delphi ;-)
|
Verfasst: Sa 19.09.09 20:29
ok, danke. wie würde das denn mit WaitForInputIdle() aussehen?
_________________ Das Unmögliche wagen, um das Mögliche möglich zu machen...
|
|
jaenicke
      
Beiträge: 19326
Erhaltene Danke: 1749
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Sa 19.09.09 20:33
Da wären wir wieder bei deinem Lieblingsthema, der englischen Doku:
msdn.microsoft.com/e...ibrary/ms687022.aspx
|
|
Maisinator 
      
Beiträge: 167
Win XP HE SP3, Win Vista HP SP2
Delphi ;-)
|
Verfasst: Sa 19.09.09 21:40
mmh ja, im gegensatz zu shellexecute versteh ich diesmal nur bahnhof
kann mir das vlt. jemand erklären?? bitte...
_________________ Das Unmögliche wagen, um das Mögliche möglich zu machen...
|
|
jaenicke
      
Beiträge: 19326
Erhaltene Danke: 1749
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Sa 19.09.09 21:42
|
|