AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Laufende Programme unter Windows 7 - werden die unter- oder gar abgebrochen?

Laufende Programme unter Windows 7 - werden die unter- oder gar abgebrochen?

Ein Thema von Delphi-Laie · begonnen am 23. Aug 2012 · letzter Beitrag vom 24. Aug 2012
Antwort Antwort
Seite 1 von 2  1 2   
hathor
(Gast)

n/a Beiträge
 
#1

AW: Laufende Programme unter Windows 7 - werden die unter- oder gar abgbrochen?

  Alt 23. Aug 2012, 20:18
Bei WIN 7 gibt es

Darstellung und Leistung von WINDOWS anpassen
Leistungsoptionen -> Datenausführungsverhinderung

Da kannst Du Dein Programm anmelden.
Es wird dann von der Datenausführungsverhinderung ignoriert.

Besser wäre es, das Programm SAUBER zu programmieren!
Was ist, wenn ein Programm Standby, Hibernate oder Shutdown aufruft?
Dein "beschissenes" Programm reagiert nicht!
Sowas würde bei mir gleich von der Platte fliegen!

Geändert von hathor (23. Aug 2012 um 20:22 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.399 Beiträge
 
Delphi 12 Athens
 
#2

AW: Laufende Programme unter Windows 7 - werden die unter- oder gar abgbrochen?

  Alt 23. Aug 2012, 20:58
In Windows 7 Laufen alle Fenster durch den Windows-Desktop-Manager, welcher für die Aero-typischen Darstellungen (diese milchige Transparenz und Co.) zuständig ist.
Wenn ein Programm/Fenster nicht mehr reagiert, dann wird ein screenshot davon gemacht, das Fenster auf dem Desktop ausgeblendet und stattdessen ein "Ersatzfenster" mit dem eingetrübten Foto angezeigt. (eingetrübt, damit man sieht, daß es hängt)

Das Ersatzfenster läßt sich nun verschieben, minimieren und Dergleichen, weil es nicht zum hängenden Prozess gehört, sonderm zum Desktopmanager.
Außerdem reagiert dieses Fenster auf den Schließenbutton oben rechts, wodurch dieses Programm dan abgeschossen wird, so als hätte man es über den Taskmanager beendet.
Das ist auch der Grund, warum bei häßlich geskinnten Programmen da urplötzlich die Windowstitelleiste auftaucht.



Also ich schließe mich an und rate zum ordentlichen Programmieren, wobei man also verhindert, daß das Programm hängen bleibt.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#3

AW: Laufende Programme unter Windows 7 - werden die unter- oder gar abgbrochen?

  Alt 23. Aug 2012, 21:51
Bei WIN 7 gibt es

Darstellung und Leistung von WINDOWS anpassen
Leistungsoptionen -> Datenausführungsverhinderung
Das hat (mal wieder) nichts mit der Fragestellung zu tun.

Zur eigentlichen Frage hilft vielleicht dieser Artikel in dem das Verhalten von Windows dokumentiert ist: http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx
(hat himi schon angeschnitten, aber der Artikel geht noch etwas ins Detail...)
MfG
  Mit Zitat antworten Zitat
Delphi-Laie

Registriert seit: 25. Nov 2005
1.474 Beiträge
 
Delphi 10.1 Berlin Starter
 
#4

AW: Laufende Programme unter Windows 7 - werden die unter- oder gar abgebrochen?

  Alt 23. Aug 2012, 22:50
Danke für die Hinweise, vielleicht kann ich damit etwas bewerkstelligen.

Ich verbitte mir allerdings Verbalausfälle in bezug auf meine Programme/Programmierung. Application.Processmessages bläht den Code (sowohl Quell- als auch compilierten) auf und verlangsamt die Programmausführung, also die Ablaufgeschwindigkeit. Es hat also durchaus auch seine Berechtigung, das NICHT einzusetzen. Ein Programm sollte auch die Freiheit haben, ungestört werkeln zu dürfen. Daß neueres Windows damit nicht adäquat umgehen kann, ist in gewisser Weise Winzigweichs Schuld, denn Windows vorher machte auch nicht solche Anstalten darum. Auch wenn Windows das natürlich nicht unterschieden kann: Nicht jedes Programm, das die Kommunikation verweigert, "hängt" tatsächlich.

Sollte "hathor" sogar derselbe wie in der Entwickler-Ecke sein, wundert mich dieser sein "rauher Ton" (um es mal dezent auszudrücken) überhaupt nicht.

Geändert von Delphi-Laie (24. Aug 2012 um 15:06 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.399 Beiträge
 
Delphi 12 Athens
 
#5

AW: Laufende Programme unter Windows 7 - werden die unter- oder gar abgbrochen?

  Alt 23. Aug 2012, 23:09
Es verbietet dir keiner, daß dein Code ohne ProcessMessages stundenlang laufen darf.
Aber dafür gibt es Threads.

Visuelle Oberflächen und vorallem der Hauptthread dürfen aber nunmal nicht einfach so nicht mehr auf den Benutzer reagieren, also hat Windows nun etwas drin, was dem Benutzer vor sowas wenigstens etwas beschützt.

Fazit: Es liegt an deinem Programm und nicht an Windows.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Delphi-Laie

Registriert seit: 25. Nov 2005
1.474 Beiträge
 
Delphi 10.1 Berlin Starter
 
#6

AW: Laufende Programme unter Windows 7 - werden die unter- oder gar abgebrochen?

  Alt 24. Aug 2012, 14:48
Fazit: Es liegt an deinem Programm und nicht an Windows.
Daß neueres Windows damit nicht adäquat umgehen kann, ist in gewisser Weise Winzigweichs Schuld, denn Windows vorher machte auch nicht solche Anstalten darum.
Soviel zur "Schuldfrage".


Das interessiert mich nun doch näher: Mein Sortierkino läuft auch nur im VCL-(Haupt-)Thread, doch da macht Windows 7 - z.B. nach dem Start und darauffolgenden Abbruch des Bildschirmschoners - auch nicht solche Zicken mit dem hellblauen Rödelkreis. Warum, ist mir unklar. Mein weiter oben erwähntes Rechenprogramm gibt auch fortlaufend aus - allerdings nur in der Titelleiste des Formulares, weil die fortlaufend automatisch aktualisiert/aufgefrischt wird, nichts jedoch auf das Canvas wie das Animationsprogramm.

Puh, wenigstens dieses eine Mal Glück gehabt, denn an der graphikausgabeintensiven Sortieranimation auch mit einem zusätzlichen Thread (inkl. synchronize!) rumzumachen, verspüre ich keinen Antrieb.

Die Datenausführungsverhinderung für alle außer den explizit genannten oder nur für wichtige Windowsprogramme einzuschalten, klingt plausibel, funktioniert aber leider auch nicht: Die Berechnung wird dennoch gestoppt und der ge-/beliebte blaue Rödekreis erscheint erneut. Leider muß dazu der Computer bzw. Windows neu gestartet werden. Hat also MS/WW das dem Windows immer noch nicht komplett abgewöhnen können.

So, jetzt geht es an die Threadauslagerung der Berechnungen.

Danke noch einmal!

Geändert von Delphi-Laie (24. Aug 2012 um 15:07 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#7

AW: Laufende Programme unter Windows 7 - werden die unter- oder gar abgbrochen?

  Alt 23. Aug 2012, 23:14
Wenn dein Programm nun mal nicht auf Nachrichten reagiert innerhalb von fünf Sekunden, dann geht Windows eben davon aus, dass es nicht mehr reagiert. Das kann eine Schleife sein, dass dein Programm nicht auf Windows nachrichten reagiert, das kann aber auch ein Funktionsaufruf sein, der nicht nach fünf Sekunden zurückkehrt. Und die Kritik an dein Programmkonzept scheint mir durchaus berechtigt. Aktionen, die länger dauern, lagert man nun mal in Threads aus, damit das Fenster eben noch reagiert. Und aufrufe von ProsessMessage blähen nicht das Programm auf. Dass es durchaus langsamer werden kann, wenn Nachrichten abgearbeitet werden müssen, ist hingegen richtig.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.399 Beiträge
 
Delphi 12 Athens
 
#8

AW: Laufende Programme unter Windows 7 - werden die unter- oder gar abgbrochen?

  Alt 23. Aug 2012, 23:22
Dass es durchaus langsamer werden kann, wenn Nachrichten abgearbeitet werden müssen, ist hingegen richtig.
Wobei es ja extrem bremst, wenn man dieses paar millionen (hunderte) Mal die Sekunde aufruft.
Aber es sagt ja keiner, daß man es mehr als 10 Mal die Sekunde aufrufen muß.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#9

AW: Laufende Programme unter Windows 7 - werden die unter- oder gar abgbrochen?

  Alt 24. Aug 2012, 08:03
...Winzigweichs...
Ich kanns nicht mehr hören. Ja, Du hast in Englisch aufgepasst.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.989 Beiträge
 
Delphi 12 Athens
 
#10

AW: Laufende Programme unter Windows 7 - werden die unter- oder gar abgebrochen?

  Alt 24. Aug 2012, 15:33
Daß neueres Windows damit nicht adäquat umgehen kann, ist in gewisser Weise Winzigweichs Schuld, denn Windows vorher machte auch nicht solche Anstalten darum.
Das stimmt schlicht nicht. Klicke unter XP einfach ein paarmal in ein solches nicht reagierendes Fenster, dann kannst du dort das Verhalten provozieren. Bei einer Firmeninstallation wird dann in der Regel direkt angeboten das Programm zu beenden, bei der Home Edition standardmäßig nur angezeigt, dass es nicht reagiert.

Der große Unterschied ist hauptsächlich, dass Windows den ursprünglichen Fensterinhalt unter XP nicht zwischengespeichert hatte und deshalb das Fenster schlicht gar nicht mehr aktualisiert hat. Deshalb sah es so aus als ob es noch reagiert. Aber das war schlicht falsch, da es ja dennoch sein konnte, dass es nicht mehr reagiert. Das Problem für den User war so, dass er nicht erkennen konnte, wenn ein Programm schon abgestürzt war, und so ggf. ewig gewartet hat, obwohl das Programm schon tot war.

Dass das Programm abgebrochen wird, passiert bei mir auch nicht, es sei denn ich klicke das als Benutzer an. Ansonsten läuft die Berechnung bei mir normal weiter und das Programm berappelt sich wieder sobald es den Vorgang beendet hat und die Anzeige wieder aktualisiert.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 12:03 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz