Funktion beim herrunterfahren ausführen

Konzeptionelles, Technisches, Termine, Fragen zum Hersteller usw.

Moderator: Moderatoren

Antworten
ab-software
UDF-Programmierer
UDF-Programmierer
Beiträge: 51
Registriert: Di, 18. Okt 2005 12:35
Wohnort: 41747 Viersen
Kontaktdaten:

Funktion beim herrunterfahren ausführen

Beitrag von ab-software »

Hallo,

gibt es eine Möglichkeit mitzubekommen das Windows herruntergefahren wird um dann noch eine Funktion ausführen zu können?

Gruß
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16517
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Beitrag von Martin Altmann »

Das wird wohl nicht gehen!
Wenn der Rechner runterfährt, fährt er runter!
Es gibt jedoch den Registrykey: RunOnce - den könntest Du vielleicht verwenden? Das Programm, das dort steht, wird nach dem nächsten Start ausgeführt und der Enitrag dann wieder aus der Registry gelöscht (gibt auch StartOnce für Dienste).

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12909
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 46 Mal

Re: Funktion beim herrunterfahren ausführen

Beitrag von AUGE_OHR »

hi,
ab-software hat geschrieben: gibt es eine Möglichkeit mitzubekommen das Windows herruntergefahren wird um dann noch eine Funktion ausführen zu können?
Ja das geht so :

Code: Alles auswählen

Start -> Ausführen -> mmc -> Konsole -> Snap-In hinzufügen -> Hinzufügen -> Gruppenrichtlinien -> Hinzufügen -> Fertigstellen -> Schließen -> Ok -> Richtlinien für lokaler Computer -> Computerkonfiguration -> Skripts -> Herunterfahren -> hinzufügen
Hier kannst Du nun zum Beispiel eine Batch-Datei eintragen die beim herunterfahren ausgeführt wird.

gruss by OHR
Jimmy
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16517
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Beitrag von Martin Altmann »

:shock:
Wieder was dazugelernt!
Aber er wird das wohl aus seinem Xbase++-Programm heraus gemeint haben - denke ich mal...

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12909
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 46 Mal

Beitrag von AUGE_OHR »

hi,
Martin Altmann hat geschrieben: Aber er wird das wohl aus seinem Xbase++-Programm heraus gemeint haben - denke ich mal...
Das wäre ja noch einfacher :

RunShell("mydown.bat")

Code: Alles auswählen

@echo off
tu_my_backup_usw
SHUTDOWN.EXE -s -f
das ganze git für XP / W2K etc.

gruss by OHR
Jimmy
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16517
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Beitrag von Martin Altmann »

:D
Nur damit würde er ja selber das Herunterfahren auslösen, das wäre einfach!
Er wird aber wohl gemeint haben:
Wenn der Nutzer den PC herunterfährt, dann soll noch etwas passieren...
Naja, wahrscheinlich war Dein erster Hinweis doch der richtig(er)e...

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15697
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

Hi,

das Problem dabei ist, dass es relativ schnell gehen muss, sonst kommt die Abfrage 'Programm sofort beenden oder warten ...' wenn dann der Anwender sofort beendet ist auch schon ein undefinierte Zustand erreicht.

Nicht unproblematisch.
Gruß
Hubert
ab-software
UDF-Programmierer
UDF-Programmierer
Beiträge: 51
Registriert: Di, 18. Okt 2005 12:35
Wohnort: 41747 Viersen
Kontaktdaten:

Beitrag von ab-software »

Hallo ,

danke erstmal für euere Antworten und Ideen.

Ich bräuchte es tatsächlich so das wenn der User den PC herrunterfährt (und mein Programm noch gestartet ist) eine Aktion ausgeführt wird, oder ich das herrunterfahren sogar abblocken kann.

Gruß
Benutzeravatar
andreas
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1902
Registriert: Mi, 28. Sep 2005 10:53
Wohnort: Osnabrück
Hat sich bedankt: 4 Mal
Kontaktdaten:

Beitrag von andreas »

Normalerweise ist es eine Abfrage in der Event-Schleife:

Code: Alles auswählen

IF nEvent == xbeP_Quit
	AppQuit()
ENDIF
Es gibt noch was, da muss ich aber erst suchen.[/b]
Gruß,

Andreas
VIP der XUG Osnabrück
Benutzeravatar
andreas
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1902
Registriert: Mi, 28. Sep 2005 10:53
Wohnort: Osnabrück
Hat sich bedankt: 4 Mal
Kontaktdaten:

Beitrag von andreas »

Hier ist der Code:

Code: Alles auswählen


SetAppWindow():quit  := {|| AskForShutdown() }

...

FUNCTION AskForShutdown()
   LOCAL nConfirm 

   nConfirm := ;
     ConfirmBox( , ; 
        "Wollen Sie den Computer herunterfahren ?" , ;
        "Xbase++ ist noch aktiv", ; 
         XBPMB_YESNO , ; 
         XBPMB_QUESTION+XBPMB_APPMODAL+XBPMB_MOVEABLE, ;
         XBPMB_DEFBUTTON2 )

   IF nConfirm == XBPMB_RET_NO
      nConfirm := XBP_REJECT
   ELSE
      COMMIT
      CLOSE ALL
      nConfirm := XBP_ALLOW
   ENDIF
RETURN nConfirm
Der Code kommt aus dem Alaska-Beispiel: G:\ALASKA\XPPW32\Source\samples\basics\GUIEVENT
Gruß,

Andreas
VIP der XUG Osnabrück
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15697
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

Hi,

ich wußte, dass ich sowas schon mal gesehen habe.
Leider habe ich es gestern nicht gefunden ... danke Andreas.
Gruß
Hubert
Antworten