Hallo
Stephan hat geschrieben:
Vielleicht kann Balu so freundlich sein das schnell herauszufinden, denn er schrieb er hat ein installiertes StarOffice 5.2 zur Hand
Stephan hat mich freundlich gebeten

, also will ich mal schaun wie ich helfen kann.
Ich sags aber gleich vor weg. Es wird ein etwas längerer Beitrag. Und hoffe das man meinen Worten folgen kann.
Also, ich habe mal eben das von mir gezeigte Makro jetzt wie folgt mit echten Pfad und Programm aufruf (XPwinExit hatte ich ja angesprochen) getestet.
Code: Alles auswählen
Sub Ruhezustand
Shell( "C:\Programme\XPwinExit21\Rzust.exe",0)
end sub
'Rzust.exe' ist für den Ruhezustand verantwortlich. Damit konnte ich schneller und einfacher testen ob das ganze folgende auch so funktioniert wie ich es mir so vorstelle. Denn ausm Ruhezustand zurück zu Windows geht bedeutend schneller, als wenn ich andauernd Rechner runter und wieder hochfahren muss.
Aber weiter im Text.
Ich habe alle offene Fenster von SO5.2 geschlossen, so das nur der SO-Desktop zu sehen ist.
Nun gehts wie folgt weiter.
Menüleiste
-> Extras
--> Makro
Es erscheint ein Fenster mit dem Titel:
Makro
Dort gibt es rechts ein Auswahlfenster mit der Überschrift: Makro aus.
Der erste Eintrag ist der Schmetterling gefolgt von soffice, und dadrunter folgt
Standard und dann
Module1.
Module1 anklicken und dann rechts auf den Button
Bearbeiten klicken.
Im nun erscheinden Fenster müsste dann folgendes drin stehen.
Falls da schon was anderes drin steht, so ist das auch egal. Denn jetzt habe ich den eben von mir gezeigten Makro-Code einfach da rein kopiert, also die Sub Ruhezustand.
Jetzt muss das ganze noch gespeichert werden.
ABER ACHTUNG!
Nicht auf das Disketten-Symbol für "Quelltext speichern unter ...", sondern auf
"Dokument speichern" klicken.
So, und nun gehts an die Zuordnung des Makros.
Um das Makro aus dem Menü *Datei* heraus aufzurufen, bin ich wie folgt vorgegangen.
Menüleiste
-> Extras
--> Anpassen
Im erscheinenden Fenster auf den Reiter:
Menü gewechselt (falls es nicht aktiv ist).
Dort gibt es drei weitere kleine Unterfenster: Menü, Funktionen mit den Subfenstern [Bereich] und [Funktion]. Doch der Reihe nach.
Im Unterfenster
Menü
runterrollen bis zum Eintrag:
~Beenden [Beenden]
Unterhalb dieses Eintrages einmal mit der Maus auf die gestrichelte Linie klicken, und dann rechts auf den Button
Neu klicken.
Jetzt müsste folgender Eintrag hinzu gekommen sein.
~Literaturdatenbank [~Literaturdatenbank]
Und dieser Eintrag ist auch farblich markiert.
Jetzt mit der Maus in das linke untere Subfenster [Bereich] wechseln und dort bis zum Eintrag
StarOffice BASIC-Makros runterrollen. Diesen Eintrag doppelt anklicken oder auf das [+] klicken, so das sich weitere Eintrage öffnen.
Jetzt auf
Standard
dann auf
Module1
und dann rechts im Subfenster [Funktion] auf den Eintrag *Ruhezustand* klicken.
Nun rechts oben auf den Button
Ändern klicken. Und schon müsste sich der vorige Eintrag
~Literaturdatenbank [~Literaturdatenbank] auf
Ruhezustand [Ruhezustand(Standard.Module1)] geändert haben.
Jetzt kommt die letzte Aktion. Ein klick unten auf den Button
OK, und das Fenster schließt sich.
Und damit steht jetzt im Menü *Datei* der Eintrag "Ruhezustand" zur Verfügung. Ein klick auf diesen Eintrag und schon fährt Windows in den Ruhezutand.
Das habe ich erfolgreich getestet.
So viel dazu.
Doch ihr habt mich da auf eine Idee gebracht, die auch gleichzeitig ein anderes Problem meinerseits löste.
balu hat geschrieben:
Und irgendwie habe ich das Gefühl das ich was vergessen habe, blos was ...
Es fiel mir jetzt auch wieder ein. Und zwar ein nicht unwichtiges Problem. Im gegenteil, ein
extrem wichtiges Problem.
Und das lautet.
Wenn ich aus SO 5.2, oder andere OOs, per Makro das Betriebssystem mit brachialer Gewalt herunterfahre, dann werden alle Programme regelrecht abgewürgt
-{also nicht ordnungsgemäß beendet}-, und beim nächsten Systemstart meldet sich z.B. FireFox das er die letzte Sitzung wieder herstellen möchte. Aber genau so gut meldet sich z.B. OOo, oder Verwante, mit der gleichen Problematik.
Also wie vorm herunterfahren alle offene Programme beenden, auch das aufrufende SO 5.2?
Nun, die Antwort darauf habt ihr mir mit
Nightfighter hat geschrieben:Also den Befehl zum runterfahren habe ich gefunden:
"shutdown /s /t 0"
und
Stephan hat geschrieben:
Du musst den Pfad zu shutdown.exe bestimmen indem Du auf C: nach shutdown suchst. Bei mir ist das unter Win 7:
C:\Windows\System32\shutdown.exe
für StarOffice ab Version 6.0 und OO (alle Versionen) wäre ein passendes Makro dann:
Code: Alles auswählen
Sub runterfahren()
Shell("C:\Windows\System32\shutdown.exe", 1, " /s /t 0")
End Sub
indirekt gegeben.
Denn bei einem Aufruf von *shutdown /?* in der der "DOS-BOX" unter WinXP konnte ich folgendes nachlesen.
DOS-BOX hat geschrieben:
-f Erzwingt das Schließen ausgeführter Anwendungen ohne Warnung.
Da heißt, falls ich mich jetzt nicht vollends vertue, das alle offene Programm beendet werden. Und sollte z.B. in irgendeinem Programm die normalerweise übliche Rückfrage beim beenden des Programmes "Soll das ungerspeicherte Dokument vorher gespeichert werden" (oder so ähnlich) kommen, dann wird diese Rückfrage abgewürgt quasi mit Nein beantwortet.
Und in folge dessen müsste der shutdown Befehl um den Eintrag -f ergänzt werden.
Dadurch müsste dann das neue Makro zum herunterfahren wie folgt lauten.
Code: Alles auswählen
Sub runterfahren()
Shell("C:\Windows\System32\shutdown.exe", 1, " /s /f /t 0")
End Sub
Ich weiß jetzt nur nicht wie die einzelnen Einträge für Win10 aussehen müssen, das aber nachzuschauen dürfte ja wohl kein Problem sein.
Ich hatte ja vorhin detailliert beschrieben wie ich mein Testmakro *Ruhezustand* dem Menüeintrag bei *Datei* hinzugefügt habe. Der gleiche Weg würde dann für das von Stephan vorgeschlagene Makro *runterfahren* gelten, es müssen halt nur die dementsprechenden Makronamen ausgewählt werden.
So, nach so viel Text komme ich jetzt zum Ende, und probiere gleich mal den geänderten Code von Stephan aus. Ich hoffe es klappt auch bei mir.
Gruß
balu