Forenindex » Programmierung/Entwicklung » AppleScript » meldung beim ausschalten

meldung beim ausschalten

Anonym
Beiträge gesamt: 22827

16. Jul 2004, 10:01
Bewertung:

gelesen: 1310

Beitrag als Lesezeichen
hey,

da meine applescript kenntnisse sehr bescheiden sind wende ich mich mit voller hoffnung an euch.
ich brauche eine mini-script, daß man in den ordner ausschaltobjekte legen kann mit folgender anforderung.
wenn ein user seinen rechner auschalten will, soll eine meldung erscheinen die in fragt ob er auch alle daten auf den server gelegt hat. diese frage kann er mit ja oder nein beantworten. bei ja schaltet sich der rechner aus bei nein wird der auschaltprozess gestoppt.

ich hoffe ihr könnt mit damit helfen

gruß
chris

meldung beim ausschalten

Anonym
Beiträge gesamt: 22827

16. Jul 2004, 11:50
Bewertung:

gelesen: 1309

Beitrag als Lesezeichen
hey,

eine teil habe ich hinbekommen.
ich lege ein alias in der ordner "ausschaltobjekte" und gehe im finder auf ausschalten. jetzt öffnet sich mein script und fragt ob ich auch alle daten kopiert habe. hier kann ich mit ja bestätigen und der rechner schaltet sich auch aus. wenn ich auf nein gehe bekommen ich eine meldung:
bitte erst alle...
jetzt sollte sich der rechner nicht ausschalten tut er aber. welchen befehl brauche ich um das ausschalten zu verhindern.

gruß
chris

meldung beim ausschalten

Hans Haesler
  
Beiträge gesamt: 5826

16. Jul 2004, 12:34
Bewertung:

gelesen: 1309

Beitrag als Lesezeichen
Hey Chris,

ich nehme mal an, dass Du das Script für Mac OS 9 brauchst. Ich bin fast sicher, dass es keine ideale
Lösung für Dein Problem gibt. Den Ausschaltvorgang kann man stoppen, indem der Dialog (unnötigerweise)
in einen Finder-tell-Block gewickelt wird. Ich sage "unnötigerweise", weil für das Anzeigen eines
Dialoges die Scripting Addition "Standard Additions" zuständig ist und nicht der Finder.

Das Script muss als Programm gesichert werden. Ich glaube der Menüartikel heisst "Classic Applet".
Es kann direkt in den Ordner gelegt werden (also ohne Alias).
---
tell application "Finder"
  set dR to (display dialog "Hast Du alle Daten auf den Server gelegt?" buttons ¬
    {"Nein", "Ja"} default button 2 with icon 0)
end tell
if dR = "Ja" then
  tell application "Finder" to activate
  tell application "Finder" to shutdown
end if
---
Es spielt keine Rolle, auf welchen Button man klickt. Der Ausschaltvorgang wird in beiden Fällen angehalten
werden. Aber der Befehl zum 'shutdown' wird nicht befolgt. Offensichtlich, weil der Finder schon halb
eingeschlafen ist.

Wenn man nun ein zweites Mal "Ausschalten" wählt, wird das Script nicht mehr ausgeführt.

Hans Haesler <hsa@ringier.ch>

meldung beim ausschalten

Anonym
Beiträge gesamt: 22827

16. Jul 2004, 12:49
Bewertung:

gelesen: 1309

Beitrag als Lesezeichen
hey,

vielen dank für deine antwort. ich hab dir mal mein script mit angehängt.

tell application "KlickStarter"
 quit
end tell
set stringToBeDisplayed to "Haben Sie alle Daten..."
set tempVar to display dialog stringToBeDisplayed buttons {"Nein", "Ja"}
set thebuttonPressed to button returned of tempVar
if thebuttonPressed is "Nein" then
 display dialog "Bitte kopieren Sie alle Daten auf den Server bevor Sie den Rechner ausschalten !!!"
 tell application "Finder"
  activate
  select file "KlickStarter"
  open selection
 end tell
end if


ich habe genau das selbe problem, daß beim zweiten mal das script ignoriert wird. bei mir funktionieren die buttons unterschiedlich. bei ja schaltet er aus bei nein nicht. hab dies durch folgenden trick gelöst. am anfang des scriptes sage ich im er soll den klickstarter beenden und später soll er in wieder aktivieren durch diesen vorgang bricht das os den ausschaltvorgangt ab wenn ich den nein button betätige.

gruß
chris

meldung beim ausschalten

Hans Haesler
  
Beiträge gesamt: 5826

16. Jul 2004, 15:12
Bewertung:

gelesen: 1309

Beitrag als Lesezeichen
Hallo Chris,

ich nehme an, dass Du mit "KlickStarter" das normale Kontrollfeld meinst. Hier, mit meinem französischen System heisst
es "Lanceur". Wenn ich diesen auf die Frage, wo denn der "KlickStarter" sei, auswähle, bekomme ich eine Fehlermeldung,
die in etwa besagt, dass das Verzeichnis der AppleEvents dieser Applikation nicht gefunden werden kann.

Um Dein Script trotzdem ausprobieren zu können, habe ich es einwenig abgeändert:
---
tell application "Finder"
  quit application "Lanceur"
end tell
set dR to button returned of (display dialog "Haben Sie alle Daten..." buttons {"Nein", "Ja"})
if dR is "Nein" then
  display dialog "Bitte kopieren Sie alle Daten auf den Server
bevor Sie den Rechner ausschalten !!!" buttons "OK" default button 1
  tell application "Finder"
    activate
    try
      open application "Lanceur"
    end try
  end tell
end if
---
Und tatsächlich: es klappt. Dies ist die Script-Umsetzung des alten Power-User-Tricks: Schnell ein Programm starten, um
den Ausschaltvorgang zu unterbrechen. Ich habe es heute Morgen mit einer ähnlichen Version versucht, aber ohne Erfolg.
Danke für Deine Lösung!

Hans Haesler <hsa@ringier.ch>