• ベストアンサー

Windows C APIまたはメッセージの中で

実行中アプリとWindowsシステムに対して Windowsの強制終了を依頼する関数またはメッセージを教えてください。

  • keyguy
  • お礼率68% (895/1314)

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

// このプロセスのアクセストークンを取得する ret = OpenProcessToken(GetCurrentProcess(), (TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY), &hTkn); // プロセス実行に必要なアクセス権限への接続子を取得する ret = LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, &tkp.Privileges[0].Luid); // 特権を変更する tkp.PrivilegeCount = 1; // SE_SHUTDOWN_NAME のみを変更する tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; // 「可能」にする ret = AdjustTokenPrivileges(hTkn, FALSE, &tkp, 0, (PTOKEN_PRIVILEGES) NULL, 0); // 終了 ret = ExitWindowsEx(flag, 0); flagについてはExitWindowsExの説明を参照。変数の型についても、それぞれの関数の説明を参照。エラー処理は適宜追加のこと。 特権を変更しなければシャットダウンその他できません(NT系の場合)。

keyguy
質問者

お礼

ExitWindowsExがよさそうです。 ありがとうございました。

関連するQ&A

  • Cのsystem()に対応するWindows API

    C言語そのものの質問でなくてすみません。 Cではsystem()関数を用いてシステムコマンドを実行できますが,Windows APIで同等のものは存在するのでしょうか? ※ShellExecuteでは"dir"や"type"などは使えないため

  • 「Windows保護エラー」のメッセージが出て 困っています。

    最近「終了ボタン」をクリックすると、 「Windows保護エラーです。システムが停止しました。 再起動してください。」・・のエラーメッセージが出て 困っています。 再起動と言われても、その画面には、スタートボタンが無いので、強制終了しています。 (Ctrl,Alt,Deleteをクリックしても再起動できません。) 強制終了して 立ち上げる事も 再起動と言うのでしょうか? また、このようなエラーメッセージが出にくくするには、 どういう事に気をつければ良いのでしょうか? 教えて下さいませ。

  • 16ビットサブシステムのメッセージ?

    最近起動時に以下のようなメッセージが表示されるようになりました。 16ビット Windows サブシステム C:\WINNT\SYSTEM32\AUTOEXEC.NT.システムファイルはMS-DOSおよびMicrosoft Windowsアプリケーションを実行するのに適していません。アプリケーションを終了するには[閉じる]を選んでください。 その都度、閉じるで終了していますが、このメッセージが出ないように出来ないものか?お知恵を拝借いたしたくよろしくお願いいたします。 OSはWindows2000 Service Pack4 です。 よろしくお願いいたします。

  • 使われないウィンドウメッセージ

    ウィンドウプロシージャをウィンドウメッセージを受け取るだけでなく、個人的なメッセージを送ってシグナル関数の代用にしたいなと思ったのですが、ウィンドウズが使っていない、これから使われないウィンドウメッセージの値はありますか?プロセス間でのシグナル受け渡しのため、ウィンドウプロシージャをシグナル関数の代用にすると、メッセージループがそのまま使えて好都合なのです。 今は処理する必要が無いウィンドウメッセージを代用として使っていますが、何だかスマートではないのでそういうウィンドウメッセージがあれば教えてください。例えば9x系で使われていたが、NTでは使用されないウィンドウメッセージ等。 回答よろしくお願いします。

  • Windows7のシャットダウンメッセージ

    Windows7でシャットダウンを実行し、その後任意のメッセージを出すことはできますか? やりたいのは (1)シャットダウン実行 (2)諸々のプロセス終了 (3)電源をOFFにしても良いというメッセージが出る で手動で電源をOFFにするようにしたいのです。 シャットダウンではなくログオフとかスリープとか休止状態の方がよいのかもしれません。 要は電源をOFFにしても大丈夫なようにし、それをメッセージとして出したいだけです。 使用するOSはWindows Standard Embedded 7です。 よろしくお願い致します。

  • Windows10のメールアプリへのメッセージ

    Windows8.1まで使っていたWindowsLiveメールのサポート終了に伴い、Windows10からバンドルされたメールアプリを使おうとしたのですが、Liveメールからメッセージの移行ができません。 どなたか方法が分れば教えて頂けませんでしょうか? 今はOurlook2016を使っていますが、これだと全てのローカルフォルダーのメッセージとアドレス帳がインポートできます。 よろしくお願い致します。

  • Windows2000 ServerでのEXE強制終了について

    Windows2000 Server SP4上であるEXE(プログラム)を実行しています。 このEXEが稀に暴走しCPUを長時間食ってしまうので、タスク マネージャから強制終了を試みると、「アクセスを拒否されました」 という警告メッセージのため強制終了ができません。 全く同じEXEをWindows 2003やWindows XP上で実行した場合は、 タスクマネージャから強制終了させることができます。 Windows2000には、EXEの強制終了機能はないのでしょうか? 現状では、マシンのリブートしか方法がありません。 どなたか、ご存知の方、お教え下さい。

  • Windowsが立ち上がりません

    「デバイスPERFを初期化中 Windows保護エラーです。コンピューターを再起動して下さい。システムが停止しました。」というメッセージがでます。この状態では再起動できず強制終了するのですが今度はセーフモードで立ち上がってしまいシステムの復元も途中で止まってしまいできません。どうしたらいいのでしょうか?

  • windows終了時のメッセージについて

    いつもお世話になります。 VC++6.0MFCダイアログベースでデスクトップアプリ を作成しているものです。 アプリ終了でINIファイルにウィンドウ位置を記憶させ 次回起動時に終了位置に表示させているのですが、 アプリが立ち上がったまま、スタートメニューからウィンドウズ自体を 終了させた時、アプリにはどのようなメッセージが飛んできているのか どなたか教えていただけないでしょうか? よろしくお願い致します。

  • Windows2000proが終了しない。

    先週から急にWindows2000proが入っているPCが終了出来なくなりました。正確に言うとスタート→シャットダウンを選ぶと起動アプリの強制終了後にアイコン等が消えて後は電源が落ちるだけという状態で止まります。シャットダウン指示からアイコンが消えるまで1時間程度かかります。シャットダウン出来ない原因としてはノートンシステムワークス(システムドクターを常時表示)が常駐しているはずなのですが現在は立ち上げてもノートンシステムドクターは表示されません。シャットダウン時にノートンシステムドクターをWindowsが強制的に終了しています。ノートンが悪さをしているようなら削除したいのですが常駐しているので削除も出来ない状態です。お知恵をお貸しください!

専門家に質問してみよう