Discussion:
プログラム終了直後にWindowsを終了する方法について
(too old to reply)
unknown
2008-07-30 10:31:01 UTC
Permalink
Windowdsの立ち上げ後に特定のプログラムを自動スタートさせるには
スタートメニューに登録することで実現できますが、
では特定のプログラム(自分で作ったプログラム)を終了後
直ちにWindowsを自動的に終了させる方法はあるのでしょうか。
さらに、自己のプログラム中でそのようなコーディングが可能でしょうか。
条件として、Windowsは単なるOSとしか使用せず、他プログラムは
使用していない単独使用です。
いつの変な質問で済みませんが、よろしくお願い致します。
Windows XP,98,95、VC6.0 WinAPIでコーディング中。
ちゅ
2008-07-31 00:02:46 UTC
Permalink
$B$A$e(B $B$G$9!#(B

On Wed, 30 Jul 2008 03:31:01 -0700
$B%W%m%0%i%`=*N;D>8e$K(BWindows$B$r=*N;$9$kJ}K!$K$D$$$F(B
ExitWindowsEx() $B$+$J(B
$B0z$-?t$N>\:Y$O(BMSDN$B$G$*4j$$$7$^$9!#(B
unknown
2008-07-31 04:40:00 UTC
Permalink
ExitWindowsEx()でできますが、NT XP系では
これを呼び出すプロセスに特権が必要です。
特権を取得するには
 OpenProcessToken()
 LookupPrivilegeValue()
 AdjustTokenPrivileges()
等を使いますが説明が長くなるので
サンプル等をを探してみてください。
ちゅ
2008-07-31 05:18:28 UTC
Permalink
$B$A$e(B $B$G$9!#(B

On Wed, 30 Jul 2008 21:40:00 -0700
RE: $B%W%m%0%i%`=*N;D>8e$K(BWindows$B$r=*N;$9$kJ}K!$K$D$$$F(B
google $B$G(B "$BFC8"$***@0(B" $B$G;HMQJ}K!$***@b$,%R%C%H$7$^$7$?!#(B

$B?'!9$HLLE]$G$9$M!#(B
unknown
2008-08-01 09:43:01 UTC
Permalink
上田です。
ありがとうございました。取りあえず示唆されたAPIをアタックしてみます。
ところで、このAPIの書く位置ですが、アプリとしての最終処理をした後で
当然最後の位置に書くのでしょうね。

/***********************
堺市南区原山台
上田 恭平
E_mail ***@sannet.ne.jp
************************/
unknown
2008-08-06 01:02:01 UTC
Permalink
Post by unknown
ところで、このAPIの書く位置ですが、アプリとしての最終処理をした後で
当然最後の位置に書くのでしょうね。
そうとも限りません。メニューから選択する場合はWM_COMMAND処理内
でやります。デバックのときはこれが便利でしょう。

シャットダウンが発生するとWM_QUERYENDSESSIONが来るので、
あれば最終処理を完了し、TRUEを戻します。これをアプリケーション
としての最後の処理とするのが一般的です。
unknown
2008-08-08 03:34:01 UTC
Permalink
上田です。

 ありがとうござました。おかげで助かりました。
ちょっと時間が掛かったのですが、示唆されたAPIを調べて追加したら、
XPでもうまく行きました。もちろん98や95ではこのAPI部分はパスするように
しましたので95からXPまではうまく行くと思います。

 えーと、最終処理はアプリで終了を選択したときと右上端のX印をクリックした
とき(ウインドウを壊すとき)にする処理を言っているのですが、
アプリで利用したRS232C関係のOFF処理とオープンしている全てのファイルを
クローズ、臨時に確保したメモリーの解放を言っているので、アプリの起動時
以前に戻しています。終了すると普通はデスクトップ画面が表示されるのですが、アプリの設定で事前にWindows強制終了キーが1になっていると終了と
同時にWindows側の最終処理が行われ、自動的に電源が切れる段取りになります。うまく行きました。

/***********************
堺市南区原山台
上田 恭平
E_Mail ***@sannet.ne.jp
************************/

unknown
2008-08-01 09:53:01 UTC
Permalink
上田です。
Post by unknown
 OpenProcessToken()
 LookupPrivilegeValue()
 AdjustTokenPrivileges()
示唆していただいたAPIをとにかくアタックしてみます。
ありがとうございました。

/***********************
堺市南区原山台
上田 恭平
E_Mail ***@sannet.ne.jp
************************/
Loading...