ベストアンサー 他アプリケーションの画面を取り込みたいです。(C# 2012/06/04 22:40 アプリケーションAの実行中の画面をアプリケーションBのピクチャーボックスにしたいのですが、 アプリケーションBからAを見つけることもできていない状況です。 良い方法がございましたら教えてください。 みんなの回答 (1) 専門家の回答 質問者が選んだベストアンサー ベストアンサー Layle ベストアンサー率75% (6/8) 2012/06/05 17:12 回答No.1 思いつきなので出来るかわかりませんが、こんな感じで出来ないでしょうか? 1.Process.GetProcesses()で目的のProcessを取得し、MainWindowHandleを取得 2.FormのFromHandleでMainWindowHandleからFormを取得 3.FormのDrawToBitmapで画像を取得 実際には必要な部分を切りだしたりする必要があるかも知れません。 似たような他の手としては、Formを取得するところまでは同じで、 GraphicsのCopyFromScreenでデスクトップをキャプチャして、Formのスクリーン座標位置を 切り出す方法もあるかも知れません。 質問者 お礼 2012/06/08 00:56 CopyFromScreenで抜き出せました!ありがとうございます。 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 カテゴリ [技術者向] コンピュータープログラミング・開発C・C++・C# 関連するQ&A 他のアプリケーションへserverを渡す 複数のプロジェクト(アプリケーション)をまとめたひとつのソリューションがあります。 AアプリケーションからBアプリケーションへ、Aアプリケーションでのapplication_errorのイベントでBアプリケーションへServerを渡したいのですがどう記述すればよいでしょうか?目的は、BアプリケーションでAでのserver.getlasterrを取り出すなどの処理をしたいのです。 Bアプリケーションの中のクラスでserverを引数として渡すことはできるのでしょうか? どうかよろしくお願いいたします。 他アプリケーションの終了 Shell関数を使って起動した他アプリケーションを 今度はその、他アプリケーションからではなく、V Bで作成したメイン画面の終了と同時に終了させた いのですが方法、又は適切な文法が分かりません。 よろしくお願いします。 VisualBasic 2005 C# の画面の変換 一応入門書を卒業しかけのレベルなのですが。 現在個人的に使うソフトを作っています。 データベースなのですが。 登録 → 登録画面へ 変更 → 変更画面へ 検索 → 検索画面へ というようにボタンを押したらそれぞれの画面に行きたいのです、 しかし、フォームの設計のときにボタンやらテキストボックスやらピクチャやらを重ねてのせて。それを Visibleでひとつずつ切り替えていくのはかなりややこしいと思います。 私はそれぞれの画面をピクチャボックスの上に載せて、下の画面を隠しているのですが。 いろいろ使い方を間違っているような気がします。 ほかになにかやり方はあるのでしょうか? ネットワークエンジニアとは?技術職の未来を考える OKWAVE コラム アプリケーション使用中に急に画面からそのアプリケーションの表示が消えて アプリケーション使用中に急に画面からそのアプリケーションの表示が消えてしまいました。 タスクマネージャーで確認するとそのアプリケーションは実行中になっています。その他は正常に表示されます。何度立ち上げなおしても同じです。どうしたら表示されるのでしょう? 他のアプリケーションの終了処理 Shell関数を使って起動した他アプリケーションを 今度はその、他アプリケーションからではなく、V Bで作成したメイン画面の終了と同時に終了させた いのですが方法、又は適切な文法が分かりません。 よろしくお願いします。 ※ちなみにVBで作成したメイン画面の終了と同時 に終了させたい他アプリケーションは1つだけです。 しかも決まったパスに置いていて、この先もずっと 固定です。条件としては以上です。 他のアプリケーションが出したメッセージボックスを 他のアプリケーションが出したメッセージボックスを VB.NETから閉じたいですが、そういうことは可能でしょうか? 方法を教えて頂きたいです。 画面のアプリケーションが勝手に次々と切り替わる 東芝 Dynabook E8 のWin XP Homeを使っています。 ウイルス対策ソフトはavastです。 起動すると、立ち上がっているアプリケーションがデスクトップ画面上で勝手に次々と切り替わり、全くコントロール出来なくなります。 リカバリーしても、ハードディスクを入れ替えみても状況は変わりません。 IE6を使っていますがディスクトップ上で複数の画面を開けていられません。 FireFOX等の1ソフトウエア 1ウインドウの状態で1つのアプリケーションのみを立ち上げた状態で何とか使っています。 ハード的な故障でしょうか?もしくは何か解決方法があるのでしょうか? どうすればいいのか教えてください。宜しくお願い致します。 C#のメモリマップドファイルについて アプリケーションAで得た情報をアプリケーションBに渡す方法としてメモリマップドファイルの使用を検討しています。 例えばアプリケーションAで、これのテキストボックスに数値をキー入力した場合、キーイベント内でメモリマップドファイルを生成してその数値を書き込みます。 アプリケーションBではこれのボタンを押されるとそのイベント内でメモリマップドファイルの有無を確認し、存在していればアプリケーションAで入力された数値を表示すると言った感じです。 しかし、実際にやってみますとアプリケーションAで生成したファイルはキーイベントから抜けた時点で消滅してしまう様で、アプリケーションB側から見ると常にファイルが存在しない状態になっています。 アプリケーションAのフォームを閉じない限りファイルを残したままにしたいのですが、どの様にすれば良いのかお教え頂けないでしょうか。 宜しくお願いします。 別のアプリケーションにメッセージを送る事は可能? 環境はWindowsです。 AとBという2つのアプリケーション(またはプログラム)が実行されてるとして、AからBへメッセージを送る事は可能でしょうか? 例えばEnumWindows関数でBのWindowハンドルを取得して、SendMessageやPostMessageを使うことはできますか?もしくは他に正しい方法はありますか? コンソールアプリケーションのコマンドプロンプト画面を非表示 回答をして頂いてる方、お疲れ様です。 そして、よろしくお願いします。 現在、vb.netのコンソールアプリケーションを作成しています。 出来上がったexeファイルを実行すると、コマンドプロンプト画面(DOS画面)が実行中表示されますが、その画面を非表示にする方法はありますか? 知っている方がいましたら、教えてください。 よろしくお願いします。 C# 全画面表示 C# 初心者です。よろしくお願いします。 C# から実行した office 2007アプリケーションを全画面表示させたいです。 SlideShowWindowなどで試してみましたが、できません。 サンプルなどありましたら、ご紹介下さい。 画面の更新とスレッド ボタンを押すと、テキストボックスに10msごとに文字列を追加する関数実行するプログラムを作成したのですが、実行している間プログラムの画面の操作を受け付けなくなってしまいます。 そこで、 http://msdn.microsoft.com/ja-jp/library/ms171728(VS.80).aspx を参考にして、メインスレッド以外のスレッドからテキストボックスに書き込むようにしました。 しかし、このようにしても、 Application::DoEvents(); を、forの中で実行して強制的に画面を再描画させないと、インターフェイスへの操作を一切受け付けなくなってしまいます。 Windowsフォームの描画は、いったいどの様なタイミングで行われているのでしょうか? また、このようなインターフェイスの操作を受け付けなくなることを回避するには、 Application::DoEvents(); 以外には良い方法は無いのでしょうか? AIは使う人の年齢や市場にも影響する?人工知能の可能性 OKWAVE コラム 立ち上がった画面に見たことがないボックスが? 一昨日前から立ち上がった画面に見たことないボックスが出るようになりヤフーのホームページが出てからマウスが手の形になるまでかなりの時間がかかるようになり非常に遅くなり困ってます。解決方法を教えて下さい。 ボックス内容は、このようになってます。 WSHelper.exe-正しくないイメージ C:¥program Files(x86)Common Files¥Wondershare¥Wondershaer Helper Compact¥CBScreateVC.dllは、windows上では 実行できないかエラーを含んでいます。元の インストールメディアを使用して再インストールするか システム管理者もしくはソフトウェアの製造元に問い合わせて 下さい。 このボックスをバッテンで消しましたらその下に次のボックスがありまして 内容は、以下になってます。 brs.exe アプリケーションエラー アプリケーション 0xc 0000005 パソコンは、VaioのSVL241A11Nです。 アクティブにしたいアプリケーションがある。 現在、Windowを持つアプリケーションと通信を行うバッチプログラムを作成しています。このアプリケーションは両方とも自分で作成しています。 例えば、以下のようなアプリケーションです。 MyEditorというWindowを持つアプリケーションとconnect.exeというバッチプログラム。 MyEditorを起動して、コマンドプロンプトから、"connect.exe input a"とすると、MyEditorにaという文字を入力してconnect.exeが終了する。 このとき、connect.exeが終了すると、通常コマンドプロンプトがアクティブな状態になって、キーボードからの文字入力はコマンドプロンプトに入力されますが、これを、connect.exeが終了したときにMyEditorの方がアクティブになって、キーボード入力がMyEditorの方に行くようにすることはできるのでしょうか? つまり、以下のような動作にすることは、可能でしょうか? 1.MyEditorを起動 2.コマンドプロンプト起動 3.コマンドプロンプトでconnect.exe input aと実行 4.キーボードでbと入力するとMyEditorにbが入力される もし可能であるならば、その実現方法が知りたいです。 どなたかご教授いただけると、大変助かります。 よろしくお願いします。 アプリケーション画面の復元 先ほど誤ってアプリケーション一覧が出てくるショートカットを消してしまいました。 (下画面の■みたいなやつです) 復元させる方法がわかりません。どうやったら復元できるでしょうか? ちなみにホーム画面のバックアップはしていなかったのでそこからは戻せないです。 やり方をご存知の方がいらっしゃいましたらお教えお願いします。 Application.Matchについて A1と同じものを検索するのにApplication.MatchとForNextを使って行いたいのですが上手く出来ません A1 7000 B1 500 B2 250 B3 7000 B4 350 B5 7000 B6 650 B7 7000 B8 870 B9 900 B10 340 とあって下のマクロを実行すると一番最初のしかでませんあるもの全部を検索したいのですがどうすれば良いですか教えて下さい Sub Sample3() Dim ret As Variant For i = 1 To 10 ret = Application.Match(Range("A1"), Range("B1:B10"), 0) Cells(2, 5) = ret Next If IsError(ret) Then MsgBox "該当データが見つかりません" Else MsgBox ret & "番めのデータです" End If End Sub EXCEL VBA 他のアプリケーションからの自動貼り付け OSはWIN XP HOME, EXCELは2002を使用しています。 よろしくお願いします。 ●現在の運用 1.全く別のアプリケーションの情報をコピー(ユーザー操作) 2.sheet1のセル"a10"を一度左クリック後、右クリックして貼り付け(ユーザー操作) 3.マクロ実行(ユーザー操作) ●上記の運用を以下のようにしたいと思っています。 1.全く別のアプリケーションの情報をコピー(ユーザー操作) 2.マクロ実行(ユーザー操作) つまりマクロのはじめの部分に Range("a10").Select ActiveSheet.Paste というような内容を挿入した後に本来のマクロを実行したいのですが、ActiveSheet.Paste のところで「Worksheetクラスの Paste メソッドが失敗しました。」と表示されてしまい、うまく行きません。 ユーザーがクリックする場所をA9や B10などを選択してしまうと期待する結果が出ないため、是非とも対応したいと思っています。よい方法はないでしょうか? アプリケーション パソコン立ち上げ時にアプリケーションの実行中にエラーが発生しました。エラーコード0X0002000Bと頻繁に表示されますがOKをクリックすると何の問題もなく使えます。ただネット作業中に画面が固まりプログラムが応答なしと表示され、再起動すれば使えます。対処法がありましたら教えて下さい。当方パソコン初心者です。 急に画面が落ち、再起動後、アプリケーションが動かない Thinkpad2639-RRJでXPを使っていますが、突然画面が落ちて、DOSのような青い画面に白で文字がいっぱい書かれた画面が1秒くらい出た後、再起動がかかり、再起動された後はたいていアプリケーションが動かなくなるので、何回もアプリケーションが動くまで再起動させるはめになります。(ウィンドウズは立ち上がるのですが、アプリケーションを立ち上げようとしてもハードが延々とカラカラと空回りするだけです。) 同じような事が起こる方はいらっしゃいますか? 解決方法があったら教えてください! アプリケーションAから外部アプリケーションBを アプリケーションAから外部アプリケーションBを 呼び出す処理。 Bのフォームを常に最前面にして、Aのフォームを操作できないようにしたいです。 ただしAにあるタイマーを止めないようにもしたいです。 そこで [C#] //ファイルを開いて終了まで待機する System.Diagnostics.Process p = System.Diagnostics.Process.Start("C:\\test.exe"); p.WaitForExit(); ※「test.exe」を外部アプリケーションBとする。 を使ったのですが、Aのタイマーが止まってしまいます。 何か良い方法はないでしょうか? 言語はC#です。 注目のQ&A 「You」や「I」が入った曲といえば? Part2 結婚について考えていない大学生の彼氏について 関東の方に聞きたいです 大阪万博について 駅の清涼飲料水自販機 不倫の慰謝料の請求について 新型コロナウイルスがもたらした功績について教えて 旧姓を使う理由。 回復メディアの保存方法 好きな人を諦める方法 小諸市(長野県)在住でスキーやスノボをする方の用具 カテゴリ [技術者向] コンピューター プログラミング・開発 Microsoft ASPC・C++・C#CGIJavaJavaScriptPerlPHPVisual BasicHTMLXMLCSSFlashAJAXRubySwiftPythonパフォーマンス・チューニングオープンソース開発SEOスマートフォンアプリ開発その他(プログラミング・開発) カテゴリ一覧を見る OKWAVE コラム 突然のトラブル?プリンター・メール・LINE編 携帯料金を賢く見直す!格安SIMと端末選びのポイントは? 友達って必要?友情って何だろう 大震災時の現実とは?私たちができる備え 「結婚相談所は恥ずかしい」は時代遅れ!負け組の誤解と出会いの掴み方 あなたにピッタリな商品が見つかる! OKWAVE セレクト コスメ化粧品 化粧水・クレンジングなど 健康食品・サプリ コンブチャなど バス用品 入浴剤・アミノ酸シャンプーなど スマホアプリ マッチングアプリなど ヘアケア 白髪染めヘアカラーなど インターネット回線 プロバイダ、光回線など
お礼
CopyFromScreenで抜き出せました!ありがとうございます。