AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Too stupid to execute and wait

Ein Thema von QuickAndDirty · begonnen am 9. Aug 2011 · letzter Beitrag vom 10. Aug 2011
Antwort Antwort
Seite 5 von 5   « Erste     345   
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.944 Beiträge
 
Delphi 12 Athens
 
#41

AW: Too stupid to execute and wait

  Alt 9. Aug 2011, 14:24
MainFormHandle kannte mein D7 nicht, deswegen nur Handle. Und GetForeGroundWindow ist gefährlich, da dein Programmfenster beim ausführen des Codes nicht das oberste Fenster sein muss.
ok, sollten aber jetzt soweit alle mit dem code einverstanden sein???
Andreas
Monads? Wtf are Monads?
  Mit Zitat antworten Zitat
Benutzerbild von ChrisE
ChrisE

Registriert seit: 15. Feb 2006
Ort: Hechingen
504 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#42

AW: Too stupid to execute and wait

  Alt 9. Aug 2011, 14:26
[WITZ]Code? ... einverstanden? ... ich dachte wir reden hier über Glaubensfragen [/WITZ]
Gruß, Chris
Christian E.
Es gibt 10 Arten von Menschen, die die Binär lesen können und die die es nicht können

Delphi programming rules
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#43

AW: Too stupid to execute and wait

  Alt 9. Aug 2011, 14:58
WaitForSingleObject produziert scheinbar wie vorgesehen einen deadlock wenn der aufgerufen prozess ein neues Fenster erzeugt.
Und die msdn hatte recht...(seltsam) mit MsgWaitForMultipleObjects geht es dann trotzdem.
Es funzt, aber keiner weiß warum. Das ist unbefriedigend.

Ich vermute:
Du hast bei Shellexecute dein eigenes WindowHandle angegeben. Anscheinend werden aus deiner setup.exe dahin Messages gesendet o.ä. Und MsgWaitforMultipleObjectes geht auch bei ankommenden Messages raus. Jetzt ist nur die Frage, was für Messages kommen denn da rüber? Kannst die ja mal mit PeekMessage abholen wenn R=Wait_Object_0 + 1 ist.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.944 Beiträge
 
Delphi 12 Athens
 
#44

AW: Too stupid to execute and wait

  Alt 9. Aug 2011, 15:42
Nun diese funktion ist einfach ein krasser fall von Copy Paste Programmierung...und jetzt musste ich auf einmal verstehen was da schief läuft....
...bis ich eben die MSGWAITFORMultipleObjects methode in der MSDN fand....
Im Moment leigt kein Interresse daran vor Windows weiter zu verstehen.....^^ ...äääh...doch liegt es....

Das SEE_MASK_NOZONECHECKS flag

bringt mir das irgendwelche Vorteile, wenn ich die SFX.exe sowieso mit "als Administrator Ausführen" starten muss damit es läuft?
Andreas
Monads? Wtf are Monads?
  Mit Zitat antworten Zitat
samso

Registriert seit: 29. Mär 2009
439 Beiträge
 
#45

AW: Too stupid to execute and wait

  Alt 9. Aug 2011, 19:23
Himitsu hat zwar recht damit, dass Application.ProcessMessages auch das Einfrieren der Hauptanwendung vermeidet, aber deshalb wurde diese Sequenz ja nicht eingebaut. Sondern damit sollte der Deadlock verhindert werden. Ich behaupte, dass der Deadlock wegen der Verwendung des "SEE_MASK_NOASYNC"-Flags entsteht. Falls das richtig sein sollte, würde das Hauptmotiv für die Einführung MSGWAITFORMultipleObjects und Application.ProcessMessages zunächst mal wegfallen. Ob Du es dann wieder einführst, um das Einfrieren der Hauptanwendung zu verhindern, steht auf einem anderen Blatt.

SEE_MASK_NOZONECHECKS vermeidet lediglich eine Nachfrage, falls man das Setup-Programm von einem Netzwerklaufwerk gestartet werden soll. Das hat also mit dem hier diskutierten Problem nichts zu tun.
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.944 Beiträge
 
Delphi 12 Athens
 
#46

AW: Too stupid to execute and wait

  Alt 10. Aug 2011, 14:46
Ich teste das mal.
Andreas
Monads? Wtf are Monads?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 5 von 5   « Erste     345   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:29 Uhr.
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