Batch Programme Schliessen und runter fahren

zoone1984

Newbie
Registriert
März 2014
Beiträge
6
Guuuuten Morgen zusammen

Ich habe einen Rechner (Win7), welcher Automatisch um 06.00 sich startet (Bios Einstellung) und dann mittels der Aufgabenplanung drei Excel Dokumente startet und deren Makros ausführt. Der Rechner ist für die Produktionsleitung, Monteure sowie Produktionsmitarbeiter da.
Produktionsmitarbeiter, um Auftragsstand in Liste zu tragen
Produktionsleiter, mit Gesamter Auftragsübersicht
Monteure, Tagesprogramm am nächsten Tag.

Nun zu meinem Problem. Die Excel Dateien kann ich Problemlos, mittels Applikation.OnTime auf Zeit um 19.00 Uhr Schliessen. Den Shutdown habe ich bisher, 1 Woche zu Testzwecken, mittels Shutdown Pro gemacht.

Leider hat dies immer mal wieder Probleme gegeben, dass er sich nicht schön runter gefahren hat.

Ist es möglich einen Batch zu Programmieren, welcher alle geöffneten Dateien Speichert und dann Schliesst?
Bei Excel weiss ich das man mittels "ALT & F4" Programmierung ein anderes Fenster schliessen könnte. aber wie sieht eine passable Batch lösung aus?

Danke für eure Hilfe.

LG Marco
 
Hallo,

du kannst z.B mit dem Befehl

shutdown /s /t 300

den Rechner in 300 sekunden runterfahren lassen damit könntest du versuchen es umzusetzen.


Gruß
 
Ciao KrisByte

Besten Dank für die Antwort.

Den Shutdown Befehl im Batch ist mir bekannt, jedoch suche ich nach einer Programmierung welche mir alle aktiven Dokumente schliesst und speichert. LG
 
Öffnen Sie den Registrierungseditor, indem Sie im Startmenü den Eintrag »Ausführen« wählen. Tippen Sie "regedit" ein und bestätigen mit »Ok« Hangeln Sie sich nun zum Schlüssel »HKEY_LOCAL_MACHINE \ SYSTEM \ ControlSet001 \ Control«. Doppelklicken Sie auf den Eintrag »WaitToKillServiceTimeout« und setzten Sie den Wert auf 2000. Dadurch werden Dienste beim Herunterfahren nach spätestens zwei Sekunden automatisch beendet. Der Eintrag für die Anwendungen versteckt sich in dem Schlüssel »HKEY_CURRENT_USER \ Control Panel \ Desktop« Durch einen Doppelklick setzen Die den Wert des Eintrags »WaitToKillAppTimeout« auf "2000". Ein niedrigerer Wert kann ausdrücklich nicht empfohlen werden, da einige Anwendungen diese Zeit benötigen, um geöffnete Daten zu speichern. Schließlich setzen Sie in diesem Registrierungsschlüssel den Eintrag »AutoEndTasks« durch einen Doppelklick auf den Wert "1".

vielleicht hilft das weiter in Verbindung mit autosave von excel?

Ansonsten Makro für Autosave on Close

Private Sub Workbook_BeforeClose(Cancel As Boolean)
ThisWorkbook.Save
End Sub
 
Zuletzt bearbeitet:
speichern&schließen könntest du iny excel makro miteinbauen
 
Schließen tut es sowieso, speichern sollten die Programme am besten Automatisch in festen Zeitintervallen.

mfg
 
Was passiert, wenn ein Mitarbeiter ein anderes Dok als ein Excel öffnet?
wie kann ich das Speichern und schliessen?
 
für einen "force" shutdown

shutdown /s /f /t xxx

Wie man die Programme zum speichern beim schließen überreden kann, würde mich auch interessieren :)
 
Mein Tipp: Statt Batch Powershell (Dateiendung .ps1) nehmen, damit hast du ziemlich gute COM Unterstützung und kannst Excel etc. automatisieren. Unter Windows 7 ist die standardmäßig installiert.

Um geöffnete Excel Dateien zu speichern und zu schließen:

Code:
$excel = [Runtime.Interopservices.Marshal]::GetActiveObject('Excel.Application');
foreach ($wb in $excel.workbooks)
{
  $wb.save()
  $wb.close()
}
$excel.quit()

Das musst du ggf. noch ein bisschen filtern. Aber mit dem $excel Objekt kann man die üblichen Sachen anstellen die man im Internet so über Excel Automatisierung mit PowerShell erfährt.

Anschließend kannst du auch gleich noch alle weiteren offenen Prozesse "Killen" (sodass diese garnicht mehr nachfragen). Das ist zwar nicht gut, sollte den Shutdown aber sicher durchführen. Entspricht aber dem -f (force) Parameter von "Shutdown".

Andere Programme zum Speichern zu zwingen wird schwierig. Dafür müsste man die Anwendung genau kennen. Du könntest jedem Prozess erstmal die WM_QUERYENDSESSION Message senden. Aber ob und wie der Prozess darauf reagiert ist natürlich je Anwendung individuell.
 
Zuletzt bearbeitet:
Zurück
Oben