2016-11-07 18 views
0

私はすぐに自分のためにアラームを設定することができます小さなパワーシェルスクリプトを持っています。基本的には指定された分だけ待機してからしばらくすると「msg *アラーム」が消えるのはなぜですか?

msg * alarm!

これはうまくいきます - メッセージボックスがポップアップします。唯一の問題は、それがしばらくして消えてしまうことです。私が机にいなければ、メッセージボックスが欠落します。

文書によれば、found hereによると、これは時間値を指定しない場合の動作です。

/time:seconds:送信したメッセージがユーザーの画面に表示される時間を指定します。時間制限に達すると、メッセージは消えます。時間制限が設定されていない場合は、メッセージが表示されて[OK]がクリックされるまで、メッセージはユーザーの画面に残ります。

ただしこれは該当せず消えます。今、私はそれを維持するために任意に高い数字を指定しなければなりません。トレース

msg * /time:999999 alarm! 
+0

okです? – Diskdrive

+0

プログラミング/開発に関する質問ではありません。これは、Windowsシステムユーティリティの動作に関する質問です。 –

+0

@Bill_Stewart - 本当ですか?コマンドラインコマンドに関する質問は、現在このサイトの対象外ですか?文字通りこれのためのタグがあり、この質問には300以上のアップボトムがあります(http://stackoverflow.com/questions/8055371/how-to-run-two-commands-in-one-line-in-windows-cmd) – Diskdrive

答えて

2

コールのmsg.exeを開始し、それを999999の最大タイムアウト値渡したときに興味のある機能を以下cdbショーで:

command: msg * /time:999999 alarm

f423f(999999)のタイムアウト値が渡されますがShowMessageBoxからraxまでのレジスタ。

WINSTA!WinStationSendMessageW+0x353: 
000007fe`fbf1ec93 e874deffff  
call WINSTA!CSmartSession::ShowMessageBox (000007fe`fbf1cb0c) 
rax=00000000000f423f rbx=0000000000000000 rcx=0000000000000010 

任意のタイムアウト値なしmsg.exeを開始3c(60)ShowMessageBox関数に渡されて表示されます。

command: msg * alarm

WINSTA!WinStationSendMessageW+0x353: 
000007fe`fbf1ec93 e874deffff  
call WINSTA!CSmartSession::ShowMessageBox (000007fe`fbf1cb0c) 
rax=000000000000003c rbx=0000000000000000 rcx=0000000000000010 

(それが今までだった場合)私の推測では、これは悪い質問ですなぜ誰かがこれを説明することができますドキュメントが最新ではないことを

+0

こんにちはLieven - ちょうど不思議です、あなたがトレースするために使用しているこのcdbコマンドは何ですか? – Diskdrive

+0

私はこの1つの 'cdb -c" .while(1){tc; r} "msg.exe */time:999999 alarm >> msgtrace.txt'を使用しましたが、それは仕事をしましたが、私はそれが最適化できると確信していますいろいろな意味で。 whileループは必要ではないはずですが、whileループのためにデバッガを終了させなければなりませんでした。 –

関連する問題