- ベストアンサー
自動ログイン(windows2000pro)
起動後ある特定のユーザー/パスワード/ドメインにて自動起動するにはどのようにすれば良いのでしょうか? VBで作成可能であれば、プログラムをご教示ください そのプログラム上に、ユーザー/パスワード/ドメインを定数等で持ち自動ログインはできないでしょうか? その定数(ユーザ/パスワード/ドメイン)を変更することにより、容易に変更したく思っています やはり、ログイン前なので不可能でしょうか? 以上、初歩的な質問では御座いますが宜しくお願いいたします
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
窓の手を使えば簡単に自動ログインできるように設定できます。 http://www.asahi-net.or.jp/~vr4m-ikw/ <窓の手の公式サイトです。 DLして使ってみてください。
その他の回答 (3)
- toshiman
- ベストアンサー率0% (0/2)
以下のようになると思います。 VB6で作ってみました。(VB.NETだとわかりませんm○m) レジストリの操作なのでくれぐれも気をつけましょう。 ちなみに自動ログオンを一時的に無効にするには 「Windows NT の起動時に、Shift キーを押したままにします。」 ↓↓↓↓↓↓ Option Explicit 'レジストリのキーのオープン ========== Declare Function RegOpenKeyEx _ Lib "advapi32.dll" _ Alias "RegOpenKeyExA" _ (ByVal hKey As Long _ , ByVal lpSubKey As String _ , ByVal ulOptions As Long _ , ByVal samDesired As Long _ , phkResult As Long) As Long 'レジストリデータを書き込む ========== Private Declare Function RegSetValueEx _ Lib "advapi32.dll" _ Alias "RegSetValueExA" _ (ByVal hKey As Long _ , ByVal lpValueName As String _ , ByVal Reserved As Long _ , ByVal dwType As Long _ , ByVal lpData As Any _ , ByVal cbData As Long) As Long 'レジストリキーを閉じる =============== Declare Function RegCloseKey _ Lib "advapi32.dll" _ (ByVal hKey As Long) _ As Long Private Const READ_CONTROL = &H20000 Private Const KEY_QUERY_VALUE = &H1 Private Const KEY_SET_VALUE = &H2 Private Const KEY_CREATE_SUB_KEY = &H4 Private Const KEY_ENUMERATE_SUB_KEYS = &H8 Private Const KEY_NOTIFY = &H10 Private Const KEY_CREATE_LINK = &H20 Private Const KEY_ALL_ACCESS = KEY_QUERY_VALUE + KEY_SET_VALUE + KEY_CREATE_SUB_KEY + KEY_ENUMERATE_SUB_KEYS + KEY_NOTIFY + KEY_CREATE_LINK + READ_CONTROL Public Const HKEY_LOCAL_MACHINE = &H80000002 Public Const REG_SZ = 1 Sub Main() ' ' Windows 2000 Professional で自動ログオンを有効にする ' 'レジストリ:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon の '(1) DefaultDomainName、 ' DefaultUserName、 ' および DefaultPassword ' に値をセットする '(2) AutoAdminLogon に 1 をセットする。 '(3) ForceAutoLogon に 1 をセットする。 '↓ここに自動ログオンするドメイン名/ユーザ名/パスワードをセット Const AutoLogonDomain As String = "XXXXX" Const AutoLogonUser As String = "XXXXX" Const AutoLogonPass As String = "XXXXX" '↑ここをセット Dim sDomain As String * 256 Dim sUser As String * 256 Dim sPass As String * 256 Dim sAutoLogon As String * 256 Dim sForceAuto As String * 256 Dim hnd As Long 'キーハンドル sDomain = AutoLogonDomain & Chr(0) sUser = AutoLogonUser & Chr(0) sPass = AutoLogonPass & Chr(0) sAutoLogon = "1" & Chr(0) sForceAuto = "1" & Chr(0) 'レジストリキーのオープン If RegOpenKeyEx( _ HKEY_LOCAL_MACHINE _ , "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" _ , 0 _ , KEY_ALL_ACCESS _ , hnd) = 0 Then 'ドメイン名のセット RegSetValueEx hnd _ , "DefaultDomainName" _ , 0 _ , REG_SZ _ , sDomain _ , Len(AutoLogonDomain) + 1 'ユーザー名のセット RegSetValueEx hnd _ , "DefaultUserName" _ , 0 _ , REG_SZ _ , sUser _ , Len(AutoLogonUser) + 1 'パスワードのセット RegSetValueEx hnd _ , "DefaultPassword" _ , 0 _ , REG_SZ _ , sPass _ , Len(AutoLogonPass) + 1 'AutoAdminLogon に 1 をセット RegSetValueEx hnd _ , "AutoAdminLogon" _ , 0 _ , REG_SZ _ , sAutoLogon _ , 2 'ForceAutoLogon に 1 をセット RegSetValueEx hnd _ , "ForceAutoLogon" _ , 0 _ , REG_SZ _ , sForceAuto _ , 2 'レジストリキーのクローズ RegCloseKey hnd End If End Sub ↑↑↑↑↑↑
- toshiman
- ベストアンサー率0% (0/2)
マイクロソフトのサポートオンラインに 「Windows 2000 Professional で自動ログオンを有効にする方法」というのがあります。 レジストリを書き換えるプログラムをVBで作ればなんとかなるかと思います。
- taka_tetsu
- ベストアンサー率65% (1020/1553)
>起動後ある特定のユーザー/パスワード/ドメインにて自動起動するにはどのようにすれば良いのでしょうか? 日本語を正しく書かないと理解してもらえないかと。 起動後に自動起動するには? ・・・意味不明 >ユーザー/パスワード/ドメインを定数等で持ち自動ログインはできないでしょうか? これも意味不明。自動ログインはアプリが起動する前に行われるものです。あらかじめOS(レジストリ)に設定する必要があります。 >その定数(ユーザ/パスワード/ドメイン)を変更することにより、容易に変更したく思っています 定数は変更できないから定数なんです。変更できたら変数なんですが。 >やはり、ログイン前なので不可能でしょうか? 一体どのタイミングでログイン情報の変更を行いたいのですか? ログイン前にダイアログを出して変更できるような仕組みを組んだとしたら、そのダイアログが出ることによって自動ログインが阻害されます。矛盾してますよね。 通常の考え方だと、次回の再起動における自動ログインの設定をアプリケーションから変更するというのでしたら理解できますが。 あと、VBでは不可能な方法としてWindowsのログインダイアログの制御を行う方法もあります。これでしたら、自動ログインに失敗したら新たな自動ログインの情報を登録しなおすための画面を表示して入力を促すということも可能ですが、そこまでやるメリットはほとんどないでしょう。 GINAと呼ばれる仕組みです。
お礼
ありがとうございます 早速拝見させていただきました レジストリを変更するプログラムをVBにて作成した経験がございません 本件内容でご教示頂けませんでしょうか? よろしくお願いいたします