Verhalten von Windows 7 beim beenden von DOS Programmen

Still in use?

Moderator: Moderatoren

Antworten
Lucki
Rookie
Rookie
Beiträge: 3
Registriert: Do, 28. Jun 2012 14:59

Verhalten von Windows 7 beim beenden von DOS Programmen

Beitrag von Lucki »

Hallo,

ich habe folgendes Problem: Auf einem neuen Windows 7 SP1 32 Bit PC kann ein älteres Clipper DOS Programm einfach mit dem Schließen Button des Fensters ohne Rückfrage beendet werden. Die Einstellung "Warnung, wenn aktiv" in der Verknüpfung ist richtig gesetzt, wird aber ignoriert.

Bereits getestet:
Als Test eine Verknüpfung auf C:\Windows\System32\edit.com (Der mitgelieferte, alte DOS Editor) erstellt, gleiches verhalten.
_Default.pif angesehen: Einstellung "Warnung, wenn aktiv" ist auch gesetzt.
Kompatibilitätseinstellungen auch wirkungslos.

Ich finde weder mit Suchmaschinen noch in diesem Forum etwas zu diesem Problem. Daher habe ich den Verdacht, dass es sich evtl. um eine ganz tolle "Tunningeinstellung" handelt. Ich habe leider auf die schnelle keine Vergleichsmöglichkeit zu einer frischen 32 Bit Installation von Installations-DVD statt einer OEM Wiederherstellung.

Meine Fragen:
Ist dies das Defaultverhalten?
Wie kann man dies ändern? Key oder Gruppenrichtlinie

Gruß, Lucki
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Verhalten von Windows 7 beim beenden von DOS Programmen

Beitrag von AUGE_OHR »

Lucki hat geschrieben:Die Einstellung "Warnung, wenn aktiv" in der Verknüpfung ist richtig gesetzt, wird aber ignoriert.
kein Wunder den seit Win98 werden keine PIF Files mehr verwendet ;)
du könntest ja mal versuchen ob über den Kompatibilitäts-Modus was geht.
gruss by OHR
Jimmy
Lucki
Rookie
Rookie
Beiträge: 3
Registriert: Do, 28. Jun 2012 14:59

Re: Verhalten von Windows 7 beim beenden von DOS Programmen

Beitrag von Lucki »

Danke für die Antwort, beides hilft mir leider nicht weiter.

zu 1) Ich denke die PIF Dateien werden bzw. wurden evtl. nicht mehr vollständig ausgewertet. Laut MS Dokumentation wurden diese unter Windows XP definitiv noch verwendet:

http://www.microsoft.com/resources/docu ... x?mfr=true
"PIFs allow you to set default properties for MS-DOS programs, such as font size, screen colors, and memory allocation."
"When you change any settings in an MS-DOS-based program, a PIF is automatically created."

http://www.microsoft.com/resources/docu ... x?mfr=true

"If you want to change the settings of an existing PIF file, locate the shortcut to the program file and right-click it. Click Properties and make the appropriate changes."


Unter Windows 7 wird bei mir ebenso auf dem Desktop eine .pif für ein DOS Programm statt einer .lnk bei einem anderes Shortcut angelegt, das Dateiformat ist Binär, ich kann darin jedoch einige Einstellungen erkennen z. B. die verwendete Schriftart, den Pfad zu CONFIG.NT und AUTOEXEC.NT.

Ich habe inzwischen einige Versuche gemacht, Warnung wenn aktiv wurde auch unter Windows 2000 und XP anscheinend ignoriert. Bei Windows 2000 und XP wird bei mir immer gewarnt, also ist hier das Verhalten genau andersrum.

zu 2) Siehe ersten Post, hatte ich schon versucht.

Am wichtigsten ist für mich im Moment Feedback zu erhalten, ob sich andere Windows 7 Installationen definitiv auch so verhalten. Ich habe es früher schon ein paar mal erlebt, dass Hersteller ihr vorinstalliertes Windows "getunnt" haben und später nur eine Neuinstallation half um auf einen Standard zu kommen.

Gruß, Lucki
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2932
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 13 Mal
Danksagung erhalten: 34 Mal
Kontaktdaten:

Re: Verhalten von Windows 7 beim beenden von DOS Programmen

Beitrag von Wolfgang Ciriack »

Also bei mir (Win7 Ultimae 32bit) ist das auch Default-Verhalten, keine Rückfrage, Fenster wird einfach geschlossen.
Viele Grüße
Wolfgang
Benutzeravatar
BJelinek
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 218
Registriert: Sa, 02. Jun 2012 20:57
Wohnort: 73257 Köngen
Hat sich bedankt: 9 Mal
Danksagung erhalten: 3 Mal

Re: Verhalten von Windows 7 beim beenden von DOS Programmen

Beitrag von BJelinek »

Hallo Lucki,

ich kenne das auch nicht anders, auch schon bei XP.
Rotes Kreuz Klick und Programm wird beendet.

Folge: Meist defekte Index-Dateien, wenn gerade darin gearbeitet wurde.

Wir haben seit XP das Rote Kreuz mit einem Programm deaktiviert
und hatten damit unsere Ruhe.
Grüße
Bernd

Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Lucki
Rookie
Rookie
Beiträge: 3
Registriert: Do, 28. Jun 2012 14:59

Re: Verhalten von Windows 7 beim beenden von DOS Programmen

Beitrag von Lucki »

Hallo,

der Hinweis auf das Verhalten von Windows XP hat mich auf einen neuen Ansatz gebracht, der unter Windows XP funktioniert, leider nicht unter Windows 7.
Ich habe auf einer Windows XP Herstellervorinstallation getestet, die vorher wie ich es will beim beenden, abmelden oder herunterfahren vor Datenverlust warnte:

Wenn man in der Registry HKEY_CURRENT_USER\ Control Panel\ Desktop\ AutoEndTasks von 0 auf 1 geändert:

wird

- beim klicken auf X
- beim System herunterfahren
- beim abmelden
- beim beenden der Anwendung über den Taskmanager

nicht mehr gefragt. Gleichzeitig würden dann auch andere hängende Windowsanwendungen beim herunterfahren automatisch gekillt.

--> Unter XP kann man zwar mit Tools X sperren, es bleiben aber weitere Gefahren für alte Programme insb. Anwender die das System schnell mit geöffneten Programmen herunterfahren.

@BJelinek: War das die Vorinstallation oder hat dieses Verhalten ein Tunningprogramm verursacht. Wenn ja, welches?

Quellen zu AutoEndTasks:
http://www.winfaq.de/faq_html/Content/t ... ip0370.htm
"Wenn man z.B. eine DOS-Anwendung über den Schließen-Button beendet, wird man mit einer Meldung noch einmal darauf hingewiesen und muss mit "Task-beenden" diese Aktion noch einmal bestätigen."

http://technet.microsoft.com/de-de/libr ... 10%29.aspx
http://technet.microsoft.com/en-us/library/cc978604

Microsoft dokumentiert keine Auswirkungen auf DOS Programme.

Zum verhalten dieses Parameters unter Windows 7 ist in diversen Foren zu lesen dass AutoEndTasks=1 z. B. ganz toll gegen einen hängenden Firefox mit 20 Fenstern beim herunterfahren ganz bequem hilft, wie nicht anders zu erwarten ein paar Beiträge weiter Firefox ist Schrott, über Jahre aufgebaute Bookmarksammlung ohne Datensicherung kaputt....

Ich würde gerne eine Lösung ohne Fremdprogramme finden. Vielleicht fällt jemandem ja noch irgendetwas dazu ein, ich bin für jeden Hinweis dankbar und würde meine Lösung auch selbstverständlich mit dem Forum teilen.

Sollte es garnicht anders gehen, welche Tools um zumindest das schließen zu unterbinden gibt es von einer vertrauenswürdigen Quelle?

Danke, Lucki
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Verhalten von Windows 7 beim beenden von DOS Programmen

Beitrag von AUGE_OHR »

hi,

eine DOS Anwendung wurde ja nie auf Multitasking ausgelegt und "ein" Fenster schliessen ist wie "runter fahren" des PC unter DOS.
früher als der Netzschalter am PC noch ein "echter" Schalter war wurde der niemals zum "runter fahren" benutzt und natürlich kann man an einem "mechanischen" Schalter nichts per Software ausrichten. auch Notebooks, mit Energiesparmassnahmen, gab es nicht ...
ein schnelle Abschalten gab es also nicht deshalb auch IMHO keine Nachfrage nach einer "Lösung".

unter Windows sind "Fenster" Processe, egal ob CMD oder Windows Application. Wenn du was "kontrollieren" willst das einen Process.

du wirst sicherlich dein CMD "unkontrolliert" öffnen d.h. CMD -> ENTER -> prompt
wenn du nun einen Process "kontrollieren" startest könntest du "Information" beim schliessen bekommen und es "verwerfen".

ich denke da an Pablo Botella´s "TRunProcess" wobei ich es nie mit CMD ausprobiert habe.

Code: Alles auswählen

proc main()
local oProcess := TRunProcess():New()
local lActive  := NIL
local dwExitCode

oProcess:cAppName := cPathCombine( GetWinDir(), "notepad.exe" )
oProcess:cParams  := cPathCombine( cAppPath(), "TRunProcess.prg" )
oProcess:wShowWindow :=  oProcess:swMinimize
oProcess:lUseShowWindow := .T.
if oProcess:Start()
   ? "Running " , oProcess:cAppName
   ? "Press ESC to KILL the process. SPACE to abandone"
   while !oProcess:Wait( 1000 ) // Wait 1 seconds
      inkey()
      if LastKey() == 27
         oProcess:Kill(-1)
         exit
      elseif LastKey() == 32
         exit
      end
   end
   dwExitCode := oProcess:GetExitCode(@lActive)
   if dwExitCode == NIL
      ? "Fail retrieving the process exit code"
   else
      ? "Exit Code: " , dwExitCode
      if lActive
         ?? " PROCESS IS STILL ACTIVE. ABANDONED"
      else
         ?? ". TERMINATED"
      end
   end
   oProcess:Release()
else
   ? "Unable to run " , oProcess:cAppName
end
oProcess:Release()
inkey(0)
return
p.s. unter 64bit läuft kein 16bit DOS Programm mehr ... Zeit auf 32bit umzusteigen.
gruss by OHR
Jimmy
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Verhalten von Windows 7 beim beenden von DOS Programmen

Beitrag von brandelh »

Hi,

ob man das für ein DOS Fenster (also Clipper) regeln kann weiß ich nicht, aber mit Xbase++ geht das über
XppApplication() - Klassenfunktion der XppApplication-Klasse oder XbpApplication()
xbeP_SystemPowerStatus Der Energiestatus des Systems hat sich geändert.
Slot :systemPowerStatus := {| nChange, uNIL, self | ... } --> nResponse
Methode :systemPowerStatus( <nChange> ) --> nResponse
soweit ich das Verstanden habe, könnte man ein Herunterfahren sogar verhindern (probiert habe ich das noch nicht).
Wenn man dann noch den QUIT und CLOSE vom Hauptfenster abfängt hat man maximale Kontrolle ...
Gruß
Hubert
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Verhalten von Windows 7 beim beenden von DOS Programmen

Beitrag von Tom »

Ein DOS-Programm läuft als Tochterprozess (beispielsweise von CMD.EXE) und verfügt nicht über ein eigenes Fenster; davon weiß es auch überhaupt nichts. Es kann insofern auch nicht darauf reagieren - wird der hostende Prozess geschlossen, endet auch der gehostete. Es gibt kein Eventhandling oder ähnliches. Manch ein DOS-Programm schließt sich, indem man CTRL-ALT-Shift-F5 drückt, ein anderes bei ESC und ein weiteres, wenn man "ENDE" in irgendeinem Menü wählt. Ein probates Mittel dafür, auf das Schließen des Hostfensters zu reagieren, gibt es nicht. Es sei denn, man kompiliert das Clipperprogramm, so es sich um ein solches handelt, mit Xbase++. Dann hat man entsprechende Möglichkeit. Dann läuft die App aber auch nicht mehr als Tochterprozess, sondern als eigener.
Herzlich,
Tom
UliTs
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2828
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen
Hat sich bedankt: 259 Mal
Danksagung erhalten: 12 Mal
Kontaktdaten:

Re: Verhalten von Windows 7 beim beenden von DOS Programmen

Beitrag von UliTs »

Hallo allerseits,

vielleicht sollte man das Thema mal in das Unterforum (Clipper) verschieben, in das es gehört :-) .
-
Hallo Lucki,

was spricht dagegen, das Programm mit xBase++ zu übersetzen?
Vor allem bei älteren Clipper-Programmen ist dies oft viel leichter als gedacht.

Uli
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Verhalten von Windows 7 beim beenden von DOS Programmen

Beitrag von brandelh »

UliTs hat geschrieben:vielleicht sollte man das Thema mal in das Unterforum (Clipper) verschieben, in das es gehört :-) .
da hast du Recht, ich werde es mal verschieben ...
Gruß
Hubert
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Verhalten von Windows 7 beim beenden von DOS Programmen

Beitrag von AUGE_OHR »

Tom hat geschrieben:Es gibt kein Eventhandling oder ähnliches.
wenn ein User "irgendwas" macht wird ein Event ausgelöst.
zumindest das "X" zu "verhindern" ist bekannt : Kiosk-Modus
Tom hat geschrieben:Manch ein DOS-Programm schließt sich, indem man CTRL-ALT-Shift-F5 drückt, ein anderes bei ESC und ein weiteres, wenn man "ENDE" in irgendeinem Menü wählt.
so sollte es sein.

schön auch wenn die Leute den Deckel des Laptop zumachen, ihn mit nach Hause nehmen und sich wundern warum sie nicht mit den (Netzwerk) Daten arbeiten können ;)
Tom hat geschrieben:Ein probates Mittel dafür, auf das Schließen des Hostfensters zu reagieren, gibt es nicht. Es sei denn, man kompiliert das Clipperprogramm...
ohne "extra" geht es wohl nicht, aber Pablo hat mich auf

Code: Alles auswählen

@kernel32:SetConsoleCtrlHandler( fp, .T.)
hingewiesen ... man müsste also ein "C" oder "ASM" Object, mit ot4xb_mini_rt_asm.ch, bei Cl*pper mit einbindet.
der Callback Handler müsste, so lange die Cl*pper Application läuft, den "quit" Event "abfangen".

... ich denke gerade : und was mache ich wenn die Cl*pper Anwendung "hängt" ? auch der Taskmanager "sendet" ja nur den "quit" Event ... :badgrin:
gruss by OHR
Jimmy
UliTs
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2828
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen
Hat sich bedankt: 259 Mal
Danksagung erhalten: 12 Mal
Kontaktdaten:

Re: Verhalten von Windows 7 beim beenden von DOS Programmen

Beitrag von UliTs »

Hallo Jimmy,

beschreib bitte, was der Kiosk-Modus ist und wie man ihn einstellen kann.

Uli
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21164
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: Verhalten von Windows 7 beim beenden von DOS Programmen

Beitrag von Manfred »

Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Verhalten von Windows 7 beim beenden von DOS Programmen

Beitrag von brandelh »

Man könnte auch ein Xbase++ Programm verwenden, das mit RUNSHELL() DOS Programme nachlädt und gegen das Schließen mit den genannten Methoden schützt ...
Gruß
Hubert
UliTs
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2828
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen
Hat sich bedankt: 259 Mal
Danksagung erhalten: 12 Mal
Kontaktdaten:

Re: Verhalten von Windows 7 beim beenden von DOS Programmen

Beitrag von UliTs »

Wie kompliziert ...
Da setze ich doch lieber auf den gesunden Menschenverstand des Anwenders :-) .

Uli
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Verhalten von Windows 7 beim beenden von DOS Programmen

Beitrag von brandelh »

Solche Kiosk Systeme sind dafür gedacht ein System als "Blackbox Infosystem" einzurichten und sollen sicher stellen,
dass weder Scherzbolde noch Hacker die Geräte manipulieren ... als Firmen Info Terminal oder Registrierkassenersatz
könnte ich mir das vorstellen, arbeiten wollte ich nicht damit ...
Gruß
Hubert
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Verhalten von Windows 7 beim beenden von DOS Programmen

Beitrag von AUGE_OHR »

hi,

es geht ja "nur" um das "abfangen" von Windows Events wie der click auf ein "X" erzeugt.
auch die Console kann man, wie Pablo sagte, per

Code: Alles auswählen

@kernel32:SetConsoleCtrlHandler( fp, .T.)
"irgendwie" wohl handle´n
brandelh hat geschrieben:Man könnte auch ein Xbase++ Programm verwenden, das mit RUNSHELL() DOS Programme nachlädt und gegen das Schließen mit den genannten Methoden schützt ...
schon mal daran gedacht eine Xbase++ Application als "Shell" laufen zu lassen ohne das es die User es "merken" ?
der Desktop ist "nur" ein Listview und wenn der genau so aussieht wie vorher dann "merkt" das kaum jemand.
aber genau da legt der User seine "Sachen" ab ... deshalb braucht er ja ein "System" das ihm hilft
gruss by OHR
Jimmy
UliTs
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2828
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen
Hat sich bedankt: 259 Mal
Danksagung erhalten: 12 Mal
Kontaktdaten:

Re: Verhalten von Windows 7 beim beenden von DOS Programmen

Beitrag von UliTs »

Ich glaube, dass geht völlig am eigentlichen Problem vorbei ....
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Benutzeravatar
azzo
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 483
Registriert: So, 28. Mär 2010 19:21
Danksagung erhalten: 11 Mal

Re: Verhalten von Windows 7 beim beenden von DOS Programmen

Beitrag von azzo »

Bei RemoteDesktop Betrieb ist dieses Thema sehr aktuell.
Man beendet die Sitzung und damit wird das Programm auch beendet.
Mfg
Otto
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Verhalten von Windows 7 beim beenden von DOS Programmen

Beitrag von brandelh »

Ich meinte, dass man ein Xbase++ Programm z.B. 1x1 Punkt groß erstellen kann, das auf den Close bzw. ShutDown Event (quit ?) wartet.
Soweit ich mich erinnere konnte XbpApplication():... (methode fällt mir jetzt nicht ein) eine Abfrage anzeigen und den ShutDown verhindern.
Dieses Programm kann dann über RunShell auch ein DOS Programm starten, solange das OS das grundsätzlich zulässt.
Gruß
Hubert
UliTs
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2828
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen
Hat sich bedankt: 259 Mal
Danksagung erhalten: 12 Mal
Kontaktdaten:

Re: Verhalten von Windows 7 beim beenden von DOS Programmen

Beitrag von UliTs »

Hallo Hubert,

wenn Du aber über RunShell das DOS-Programm startest, wird dieses wiederum in einem neuen Fenster laufen. Und dieses Fenster kannst Du doch jederzeit mit Click auf's X schließen und damit das DOS-Programm beenden, oder?
Uli
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Verhalten von Windows 7 beim beenden von DOS Programmen

Beitrag von brandelh »

Habe ich jetzt nicht ausprobiert ;-)

Ich persönlich habe ja mit DOS Programmen eh nichts mehr am Hut, ich wollte nur Anregungen geben 8)
Gruß
Hubert
Antworten