• 締切済み

VBでWindowsをログオフ・ログオンする方法

VisualStudio2010(VB)で、プログラミングをしています。 フォーム上のボタンをクリックすると、自分のユーザーにロックをかけて、別のユーザーに切り替えたいのですが、できるでしょうか。 詳しい流れはこちらです。 Form1のButton1をクリック→自分のユーザーをロックする(スタートメニューでいう「ユーザーの切り替え」)→別のユーザーでログオンする(パスワードあり)→プログラムを自動起動させる ロックは、shutdown.exeを、プログラムを自動起動させるのは、ショートカットをスタートアップに作成する方法を取るつもりです。 自動でログオンする方法を教えてください。

みんなの回答

  • 0909union
  • ベストアンサー率39% (325/818)
回答No.1

やっぱりスレ付きませんね。なにせ、特定ユーザーからの投稿、みえみえで。 そのうち、監視団(OKWeveたろう<=この世界で喜びをかんじている馬鹿)から、我慢しきれず、横槍がはいるかな。 まあ、それでもこの手のスレッドが結構ネットを探せばでてくる。いろいろ手はあるようだが、根本的な事をひとつ、 >Form1のButton1をクリック→自分のユーザーをロックする これ、なんで必要ですか。目的は何ですか? 目的よってやり方が変わるのわかります? 説明しているようで、何をしたいのか書いてないんですよ。 目的その1。 そのユーザーのディスクトップを起動したい。つまりそのディストップ上で作業するので、ディスクトップ上にあるものにアクセスしたい。 目的その2。 そのユーザーで、プログラムを動作させたい。ディスクトップ上の物は特に関係ない。 (この中には、プログラムのマルチユーザー別に設置、更新、削除等のメンテナンスを目的もある) どう。違いわかります。他にもあるかもしれませんが、大まかに言えば、こんなとこだろう。 いずれにせよ、UNIX系OSでは(Linuxを含む)、結構簡単なことでした。と言うのも、ユーザーだけでなくディスクトップも、他のマシンにあるユーザーホームを呼び出すのが普通だったので。 つまり、ユーザーの切り替えは、rlogin, su, telnet などでできます(コマンドベース)。しかし、そのままだと、ディスクトップにセキュリティーがかかっているし、表示先は、ログイン先のマシン。 じゃ、どうするか、DISPLAY と言う環境変数でマシンを指定すると、そこで起動するGUIのアプリは目の前に表示されます(コマンドオプションに対応している場合も)。 つまり、いちいち、ディスクトップから別のディスクトップにログインするなんて面倒な事はしません。 ではWindowsは? Vistaから、明示的にできるようになった(前からあったが)。 >runas /user:[ユーザー名] [コマンド] と言うものが用意されている。GUIでは、プロパティーに「だれで起動するか」がある。Shell APIで指定すればGUIから同じようにしてできる(Shift+右クリック)。 と言うことで、後術の目的はこれで達成できます。前述も、CMDなどそのユーザーで起動したものなら、ディスクトップにはフォルダーパス指定でアクセスできます。 UNIX系だとディスクトップに表示するには、環境変数などにおまじないを書かないと、セキュリティーが解除されないが、Windowsはその辺が甘い。 目的が、「GUIでユーザーの切り替えをしたい」だけなら、プログラムの実行ユーザーを、Systemにしないと無理。何せディストップから離れるという事は、アクティブユーザーをシステムに移行することなので、その時点で、エクセルの実行自体はバックグランドになり、制御をうしなう。なのでCUIレベルで、バックグランドで最初から、そのプロセスを行う必要がある。その辺わかるかな。 なので、Windowsについている自動実行の仕組みを使って行うしかない。 ヒントになったかな。ネットで検索してみよう。

ztztno1
質問者

補足

ん?特定ユーザー?どういうこと? 目的は1ですが、 ディスクトップってどこですか?Cドライブのルートのことですか?

関連するQ&A

  • Windowsへのログオン、ログオフ

    Win XPで、今までずっとWindowswにログオンしている状態で、シャットダウンで自動的にログオフされることなんてなかったのですが、ユーザー名などを変更したところ、毎回シャットダウン時に自動的にログオフになり、起動したときには「Windowsへのログオン」という画面がでてユーザー名とパスワードを入力しないとOSが立ち上がりません。 以前の状態のように、パソコンON/OFF時にログオン、ログオフの動作をしないようにするためにはどうしたらいいでしょうか? コントロールパネル内のユーザーアカウントにて“ユーザーのログオンやログオフの方法を選択する”を選び二つあるチェックボックス両方にチェックを入れてもダメでした。

  • ログオンとログオフの設定について

    PCを使うのが私だけなので、WinXPを起動したときに使うユーザーを選択する画面が出ないようにしたいのですが、ユーザーアカウントの「ユーザーのログオンやログオフの方法を変更する」で変更すると終了オプションまで変わってしまいます。 終了オプションは3つのアイコンから選ぶ方式のままで、ユーザー選択画面が出ずにすんなりXPが起動する方法はないものでしょうか。

  • windows7で、ログオン直後にロック状態にする

    私のパソコンには二つのユーザが入っているのですが、基本一つのユーザしか使わないので、時間短縮のために自動でログオンされるように設定しています。 しかし、このままでは他のユーザでもそのまま使えるのでログオン後に自動でロックさせるようにしたいのですが、何か方法はありますか?

  • ログオンしてもすぐにログオフされます

    昨日パソコンを使用して再起動をかけたところ、 「ようこそ」の画面になり、ユーザー名をクリックする画面になります。 いつもはユーザー名をクリックすると、ログオンできるのですが、 今は、クリック→ログオンしています→設定を読み込んでいます となったあと一瞬壁紙が表示されるのですが、すぐにログオフしてしまします。 使用環境 PC:NEC Lavie OS:WindowsXP 考えられる原因としては、ウイルスバスターを使用して、スパイウェアの検索を行っており、検出された物を削除しました。 その後に検索を行っていないのに何故か検索結果一覧が更新されました。 項目を見てもよく分からなかったのですが、スパイウェアがまた発見されたんだと思い削除しました。項目をずらっと見ましたが、Windowsのシステム変更という項目があってそれも削除したのが原因かと思われます。 もう起きてしまった事なので仕方ない事なのですが、色々教えてgooなどで調べたところあまり良い対策は無いようです。 最悪ですが、OSの再インストールをしなければならないようですが、 PCの中に仕事のデータなどが沢山入っているので、OSの再インストールをしかねています。なんとか、データのクリアだけは避けたいものなのですが、どうにか対処法は無いでしょうか。 また、最悪再インストールを行った場合、データの復元などはできないのでしょうか。 こんな時の為にバックアップしておけば良かったです。

  • Windows2000で自動的にログオンするには?

    PC起動時にログオン画面を出さずに特定ユーザーで自動ログオン するやり方を忘れてしまいました。どなたか教えてください。 ソフトを使わない方法でお願いします。 ソフトを使う方法も知っている方一応教えてください。

  • ターミナルサービスでログオンしているユーザにウィンドウを出す方法

    あるサービスプログラムが起動しているターミナルサービスに複数のユーザをログオンさせて、ユーザごとに、そのサービスプログラムからウィンドウを出す方法はありますか?OSはWindowsです。 サービスプログラムではなく、各ユーザセッションごとに1つのプログラム(プロセス)を起動すればいいのですが、このプログラムはメモリを食うため、セッションごとにプロセスを作るとメモリ搭載量を数十GBもつまなければなりません。 このプログラムは、メモリ上のデータをグラフィカルに表示するだけのプログラムです。Win32 API の、CreateWindowEx に セッションIDがついたようなAPIがあればベストのように思うのですが。 もしくは、ログオンしたユーザ側から別のCOMクライアントを使って、サービスプログラム上のハンドルを取得し、そこからウィンドウを表示させる方法でも良いです。

  • Windowsのログオン設定

    WindowsXPHomeです。 コンパネでユーザーアカウントを追加し、次回よりWindowsを起動させるとどのユーザーアカウントでログオンするのかを選択する表示が出ますが、これを出ないようにしてかつ、必要時のみ他のアカウントでログオンさせる方法はないですか? たとえば、A、Bと二つのユーザーアカウントがあったとします。 通常は起動させるとAで自動的にログオンさせるようにして、必要時のみBで手動でログオンさせる、みたいな運用なのですが、可能なのでしょうか? よろしくお願いいたします。

  • 「PC起動→自動ログオン→自動ロック」したい

    PCの起動から、実際に作業が可能になるまで、 WindowsUpdateだとかウィルススキャンやらでとても時間がかかるため、  「PC起動(電源ON)→手動ログオン→手動ロック」して、 ほかの作業をしたり、コーヒーを飲んだりして、数分まったりしてから、  「ロック解除→作業開始」 という感じでPCを使っています。 セキュリティ的によろしくないのでしょうが、 control userpasswords2>ユーザ で、 「ユーザがこのコンピュータを使うには、…」をOFFにすると自動ログオンできます。 ここで、ログオン後に「ロック」を自動で行えると、起動時のひと手間を省けて気分がよいです。 どのようにすれば可能でしょうか?それとも無理でしょうか? (「ホットキー windows + l 」 or 「何かのバッチ」をスタートアップ的な何かに登録できれば実現できそうなのですが…。)

  • スクリーンセーバーからの自動ログオン

    スクリーンセーバーを使用していますが、いざPCを使おうとしたときに「ロックしています」「ユーザーの切り替え」画面が出てきて、クリックすると「ログオンしています」が表示され、もう一度クリックしないとPCを使えるようになりません。 ちなみに起動時ではスリープ状態、休止状態からでもPCがすぐ使えるように自動ログオンになっています。 スクリーンセーバー解除後もすぐPC使用可能になる方法手順を教えてください。

  • 自動的に tarou でログオンする方法は?

    お世話になります。 Windows 7 を買いました。 ユーザー名を tarou としました。 あるファイルを別なフォルダに移動しようとしたらできず、次の表示が出ました。 「対象のフォルダへのアクセスは拒否されました。このフォルダへ移動するには管理者のアクセス許可を提供する必要があります」 それでネットで調べて http://win7.jp/hk7v1134.htm に書いてあるようにして、ユーザーアカウントの「Administrator」を有効にしました。 再起動するとログオン画面に Administrator と tarou の2つが出てきました。 Administrator をクリックして無事に作業をしてシャットダウンしました。 次から起動ごとにログオン画面に Administrator と tarou の2つが出てくるようになりました。 質問ですが 以前のように自動的に tarou でログオンする方法はありますか?

専門家に質問してみよう