0

デスクトップにパスワードを表示する前にユーザーにプロンプ​​トを表示するVB.netプログラムを作成したいと思います。パスワードが正しい場合はログインします。正しくない場合は、数回試行した後、コンピューターがシャットダウンします。唯一の問題は、アイコンやタスクバーを表示せずにプログラムを起動することです。デスクトップが最初に表示されないので、スタートメニューのスタートアップフォルダを試していませんか?また、デスクトップがロードされる前にロードして(そして、ログイン後もデスクトップをロードし続けて)、タスクマネージャーで閉じたり、誤ってフォームを最小化(Windowsキー+ Dで)したりできないようにしたいと思います。

ありがとうございました。

PS私は実際のセキュリティについては気にしません。それは、誰がログオンしているかを確認するための方法にすぎません。また、ユーザーは同じWindowsアカウントにログオンします...ユーザーを切り替えるよりも高速です。

(私はVisual Studio 2010 Expressを使用しています。)

4

3 に答える 3

2

プログラムは、以下にエントリを追加することにより、レジストリを介して開始できます。

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run

パスワードをプレーンテキストで保存しないように注意してください。実際のセキュリティを気にしない場合でも、多くの人が複数のことに同じパスワードを使用するため、ユーザーは気にする必要があります。

そして、このタイプのプログラムをバイパスする方法はたくさんあります...

于 2012-07-17T21:54:26.033 に答える
1

explorer.exeレジストリ内のスタートアッププログラムに置き換えることで、一時的に開くのをやめることができます。

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\Shell

したがって、に変更Shell = Explorer.exeShell = C:\path\to\Myapplication.exeます。

詳細については、MSDNを参照してください(記事は実際にはXP Embeddedに焦点を当てていますが、通常のインストールでも同じように機能するはずです)。

これはexplorer.exe、デスクトップとタスクバーをロードします。Windowsは、.exe編集したレジストリ値にあるファイルを起動し、デスクトップとタスクバーをロードします。プログラムに置き換えることexplorer.exeで、プログラムが起動します。

アプリケーションの起動後、デスクトップは正常に読み込まれますexplorer.exe。(動作を確認してくれたMattに感謝します。)デスクトップProcess.Start("explorer.exe")を起動してロードします。explorer.exe

アプリケーションをWindowsディレクトリに配置したり、Path変数に追加したりしない場合は、場所を完全に修飾する必要があります(上記のように完全な場所を記述します)。

于 2012-07-18T10:23:50.763 に答える
1

コマンドラインでシェルを設定します:REG ADD HKLM \ Software \ Microsoft \ Windows NT \ CurrentVersion \ Winlogon / v Shell / t REG_SZ / d / f

于 2014-12-10T15:47:45.443 に答える