8

プログラムがあり、[is] ボタンをクリックすると、コンピューターが再起動中であることをユーザーに通知するメッセージが表示され ([OK]/[キャンセル] オプションを使用)、その後コンピューターが再起動します。それでもキッカーは、セーフモードで再起動したいということです。次に、ユーザーがセーフモードにログインすると、起動時にプログラムが自動的に開始されます。

これは、/safemode を使用して boot.ini をプログラムで編集し、コンピューターがログインしたらプログラムを開始し、コンピューターに再起動するように指示することで可能であることがわかりました。ただし、エンド ユーザーは、これらを元に戻すのに十分な Windows の知識を持っていないと想定されます。手動で設定します。

私が望むのは、エンド ユーザーが Windows セーフ モードでプログラムを使用した後、セーフ モードで起動する前の状態に手動で設定を変更することなく、コンピューターを再起動して Windows の使用を再開できることです。

注* セーフ モードで実行されるプログラムは、セーフ モードで動作することがテストされています。エンド ユーザーがこれらの設定を元に戻す方法を知らなくても、エンド ユーザーをセーフ モードにしてプログラムを自動的に実行する方法を知る必要があるだけです。

この狂気すべてを実行する方法を提案できる人はいますか? C# または vb.net の例は素晴らしいでしょう!

前もって感謝します!

ベン

4

2 に答える 2

7

このコマンドを実行するプロセスを呼び出すことができます

bcdedit /set {current} safeboot Minimal

次に、アプリケーションをWindowsサービスにし、サービスの名前を含むレジストリキーをに追加します。

HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ SafeBoot \ Minimal \ Your Service Name

于 2012-11-07T19:18:29.303 に答える
3

レジストリに値を入力することでセーフブート パラメータをリセットできHKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce ます。ユーザーがセーフ モードで再起動すると実行されます。

この部分についてはよくわかりませんが、これをバッチファイルで使用してbcdedit値をリセットするため、プログラムで機能する場合と機能しない場合があります。

/v "*UndoSB" /t REG_SZ /d "bcdedit /deletevalue {current} safeboot"`

元のバット コマンド:

bcdedit /set {current} safeboot network
REG ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce /v "*UndoSB" /t REG_SZ /d "bcdedit /deletevalue {current} safeboot"
SHUTDOWN -r -f -t 07
于 2012-12-20T15:36:22.053 に答える