1

ユーザーがログインすると表示ダイアログボックスをポップアップするapplescriptエディターで作成された単純な.appがあります。問題は、多くのユーザーがボックスを無視し、「OK」を押して閉じないことです。開いたままにすると、ユーザーがコンピューターからログオフできなくなります。

ダイアログボックスがログオフプロセスを保留しないようにする方法はありますか?

4

4 に答える 4

2

私が考えることができる2つのこと:1)ダイアログボックスに「ギブアップアフター」コマンドを配置して、5秒などの時間の経過後に自動的に閉じられるようにすることができます。

display dialog "Hello" giving up after 5

または、ログアウトスクリプトを自分で作成することもできます。このスクリプトは、ユーザーがログアウトしたときに実行されます。このようなものが機能します。

tell application "System Events"
    if exists process "ApplicationName" then
        set itExists to true
    else
        set itExists to false
    end if
end tell

if itExists then
    tell application "ApplicationName" to activate
    tell application "System Events" to keystroke return
end if

ログアウト時にスクリプトを実行する方法を見つけるための「ログアウトフック」のGoogle。

于 2011-03-30T18:02:04.060 に答える
0

残念ながら、表示ダイアログは、ユーザーが必ずしもそれを読まなくても、「あきらめる」を使用して通知が自動的に消えない限り、常にユーザーからのアクションが消える必要があります。

あなたがそれを読む必要があると仮定して、そしてあなたがそれが置かれるであろうコンピュータを制御できるなら、あなたはあなたの通知を表示するためにGrowlを使うことができます。

表示ダイアログをアイドルハンドラーに入れて、実際に「OK」をクリックした場合は、スクリプトを終了することができます。[OK]をクリックしない場合は、他の回答で説明されているように[give up after]を使用して、必要な秒数後に消えてから、次のアイドル時に再びポップアップします。これは非常に煩わしい場合がありますが、ダイアログが表示されているときにログアウトすると、ログアウトがブロックされるリスクがあります。

on idle
    --display the alert for 7 seconds
    display alert "Very Important Message" giving up after 7
    if the button returned of the result is "ok" then
        quit
    end if

    --idle for 90 seconds
    return 90
end idle
于 2011-03-31T01:11:01.510 に答える
0

たとえば、5分後にダイアログボックスを自動的に閉じるようにAppleScriptコードを変更しないのはなぜですか?これは、システムへのハードログオフを「ハッキング」するよりも間違いなく簡単です。

display dialog "Hello World" buttons "Ok" giving up after (5 * 60)

このダイアログは、たとえば5分後に自動的に閉じます。あなたが質問で指摘したように、ユーザーがそれを本当に気にかけていて、他のユーザーがとにかくそれを無視している場合、ユーザーがそれを読むのに十分な長さです。

于 2011-03-30T17:57:43.607 に答える
0

これは私にとってはうまくいきます。ユーザーのログアウトを強制します。MacOSXで「ログインし直したときにWindowsを再度開く」を完全に無効にしてログアウトの確認

tell application "System Events"
    keystroke "Q" using {command down, option down, shift down}
    quit
end tell
于 2013-09-12T13:42:25.113 に答える