• 締切済み

C#で前にアクティブだったウィンドウをアクティブ

C#で自分がアクティブになる前にアクティブだったウィンドウをアクティブにする(自分は消えない)という機能が作りたいのですがうまくいきません。 今までは自分自身を消すことによって一つ前のアクティブだったウィンドウをメインにしていたのですが、何度も立ち上げることになってしまい消さずに残しておきたいと思うようになりました。 http://dobon.net/vb/dotnet/process/appactivate.html こちらで紹介されている Microsoft.VisualBasic.Interaction.AppActivate("メモ帳"); の機能を使えば”立ち上がっているメモ帳”には移動できるようなのですが、ひとつ前アクティブだったウィンドウに戻る方法はないでしょうか? たとえば、 IE→(マウス選択)自作ツール→(ウィンドウ切り替え機能オン)IEといった具合です。 私なりに調べまして https://msdn.microsoft.com/ja-jp/library/dyz95fhy%28v=vs.90%29.aspx こちらの記事を見る限りでは引数にIDを持ってくることもできるようなのですが、そのIDの取得が壁になっています。 特にMicrosoft.VisualBasic.Interaction.AppActivate("メモ帳");を使わないといけないわけではありませんので、何か良い方法がありましたらご連絡いただけると大変うれしいです。よろしくおねがいします。

みんなの回答

  • FAY
  • ベストアンサー率49% (95/193)
回答No.3

単純に System.Windows.Froms.SendKeys.Send("%{TAB}"); じゃだめですか?

全文を見る
すると、全ての回答が全文表示されます。
  • wormhole
  • ベストアンサー率28% (1624/5664)
回答No.2

>C#で自分がアクティブになる前にアクティブだったウィンドウをアクティブにする(自分は消えない)という機能が作りたいのですがうまくいきません。 「自分がアクティブになる前にアクティブだったウインドウ」というのは「自分がアクティブになる前にアクティブだったアプリケーションのウインドウ」という事ですか? もしそうなのでしたら「自分がアクティブになる前にアクティブだったアプリケーション」がわからないことにはどうしようもないかと思いますけど。

satisfied999
質問者

補足

むずかしいですよね、たとえばAlt+Tabを押すと左から2番目にあるものなのでその並びを配列で取得出来たらいいなと思ったりしてます。

全文を見る
すると、全ての回答が全文表示されます。
  • heburusu
  • ベストアンサー率85% (140/164)
回答No.1

SetWinEventHookやグローバルフックを使ってみてはどうでしょうか? 参考URLはC#でActiveなWindowのタイトルをログするサンプルとなっているようです。

参考URL:
http://stackoverflow.com/questions/4372055/detect-active-window-changed-using-c-sharp-without-polling
satisfied999
質問者

補足

グローバルフックですね!勉強してみます!

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Wijn32APIの定数の調べ方

    Win32APIの定数を調べるには、MSDNライブラリ http://msdn.microsoft.com/library/default.aspx で調べるとよいと聞いたことがあります。  そこでAPI関数のSendMessageの定数を調べようと画面右上の「BingでMSDN検索」でSendMessageを入力しEnterを押すと7720件の事例にヒットします。これではとてもSendMessageの定数を調べることは不可能です。  みなさんはVisualBasicでAPI関数の定数をMSDNライブラリで調べるとき、どういう方法で調べていますか?MSDNライブラリでの調べ方を教えてください。

  • MSDNで、VBAのヘルプを見たいのですが

    MSDNで、VBAのヘルプを見たいのですが、載ってますか? http://msdn.microsoft.com/query/dev10.query?appId=Dev10IDEF1&l=JA-JP&k=k(MICROSOFT.VISUALBASIC.INTERACTION.MSGBOX)%3bk(TargetFrameworkMoniker-%22.NETFRAMEWORK%2cVERSION%3dV4.0%22)%3bk(DevLang-VB)&rd=true からVBAのヘルプの見方を教えてください。 上記のサイトだとVBのヘルプしか見れません。

  • Windows98のUpdateができない。

    Windows98を再インストールしたのですが、WindowsUpdateできません。 IE5で以下のサイトにアクセスして、 Windows 98 Downloadsを クリックすると http://www.microsoft.com/japan/win98/downloads/ ↓のページが表示されて、更新プログラムが表示されません。 http://update.microsoft.com/windowsupdate/v6/thanks.aspx?ln=ja&thankspage=2& 何故なのでしょうか?

  • C# OpenFileDialogの制御方法

    こんにちは。 OpenFileDialogを利用し、ユーザーにファイルを選択させたいと思っています。そこまでは問題なくできるのですが、ユーザーにファイル選択のみさせたいと思っています。 OpenFileDialog上でファイルを作成できたり、特にファイルを誤って削除できないようにさせたいと思っています。 下記のURLは見たのですが、実現するプロパティが無いように思えます。 https://msdn.microsoft.com/ja-jp/library/system.windows.forms.openfiledialog%28v=vs.110%29.aspx 何か実現させる方法はあるでしょうか?よろしくお願いします。

  • Linux上でvbアプリは動きますか?

    Windows上で制作したvbアプリを、Linux上で動作させることができますか? 『.net core』でlinux上で.netが使えると聞きかじりました。 ならば、 Visual Studio 2015のVBでプラットフォームを『.net framework 4.5』や『.net framework 4.6』でなく、 『.net core』で制作すればWindows上で制作したvbアプリを、Linux上で動作させることができますか? Windows10にインストールされたVisual Studio 2015のVBで、 画面上に「終了」ボタンがあるだけのサンプルプログラムを作り、 CentOS7上で実行してみたいと思いました。 そのようなことは可能ですか? .net core http://getdotnet.azurewebsites.net/target-dotnet-platforms.html .NET Blog https://blogs.msdn.microsoft.com/dotnet/

  • windows madia playerが再生されない

    windows media playerが再生されません。 http://www.microsoft.com/windows/windowsmedia/player/webhelp/default.aspx?&mpver=11.0.5721.5268&id=C00D11B1&contextid=83&originalid=80040241 どうしたらよいですか。

  • MSDNのプロダクトキーの上限について教えて下さい

    Microsoft Visual Studio Professional 2013 with MSDN 通常版 を持っているのですが、 サブスクリプションのプロダクトキーについての質問です。 今まであまり使う事が無かったので詳しく知らなかったのですが、 https://msdn.microsoft.com/ja-jp/subscriptions/dd197355.aspx 上記ページを見ると、 例えばWindows 10 PRO はプロダクトキーが5個まで発行できるのですが、 テスト用として、5人の人が10台づつのパソコンにインストールしても構わないという認識で合っておりますでしょうか?

  • AppActivate関数について

    お世話になっております。 現在MS ACCESS2000で開発を行っております。 ソフトの流れで一旦ほかの.NETで開発されているプログラムを アクティブにし、その処理の完了後に現在のACCESS側をアクテイブ にするという処理を行っております。 ACCESS2000のvbaの記述では AppActivate ("Microsoft Access") と記述することでアクテイブにすることができたのですが、 ACCESS2007で起動すると上記の記述ではアクティブにできずに エラーとなります。デバックして解析したところ引数の 「title」の指定が間違っているようなのです。 ACCESS2007でこの関数を利用するにはどのように引数を指定すると よろしいものなのでしょうか? 引数としてプロセスIDを指定することもできるのですがプロセスIDの取得方法がわからず悩んでおります。 どなたかご教授いただけますと幸いに思います。

  • windows 7 の英語版のOSを日本語に

    windows 7 の英語版のOSを日本語に したいのですが方法がわかりません。 ネットで調べたのですが、Multi language Pack をダウンロードします。 と説明に書かれているのですが ダウンロードサイトをなかなか見つけられません。 ようやく探し当てた下記のアドレスですが https://msdn.microsoft.com/ja-jp/subscriptions/securedownloads/default.aspx 利用不可 と帰ってきました。 ログインしたのにどうして利用不可になるのでしょうか? また、windows 7 のMulti language Pack はどこに行けば、手に入るのでしょうか? ご教授していただけると大変助かります。 よろしくお願いします。

  • Windows7評価版のダウンロードについて

    以下のページよりダウンロードを試みていますが、うまくいきません。 確認用のメールに送信できません、という内容のエラーが出ます。 Windows Live IDを使ってサインインをしています。 もう期限が過ぎているのでしょうか。 どなたか知っている方がいましたら教えてください。 宜しくお願いします。 URL: http://technet.microsoft.com/ja-jp/evalcenter/cc442495.aspx

このQ&Aのポイント
  • 数週間前からたまに電話が繋がらないとお客様から報告が数回ありましたが、とうとう本日からまったく繋がらなくなりました。MDC-J4940DNのトラブル解決方法をご紹介します。
  • お使いの環境について、iOSで有線LAN接続されていることがわかりましたが、電話回線の種類は不明です。MDC-J4940DNの電話トラブルの原因と対策についてご説明します。
  • お困りのMDC-J4940DNによる電話の繋がらない問題を解決するために、まず環境設定や回線接続を確認してみましょう。その後、製品のトラブル解決方法を試してみてください。
回答を見る