No.1ベストアンサー
- 回答日時:
★デバイスコンテキストを使うか、SendInput() API を使う。
>たぶん、APIをコールするだけだと思うのですが、参考資料がみつかりません。
↑
SendInput() API 関数のことかな。
・スクリーン全体を SendInput() API で『PrintScreen』キーを押した状態にすれば楽に出来ます。
アクティブ・ウインドウも SendInput() API で『Alt』+『PrintScreen』キーを押した状態に
すれば上手くいくかもしれない。
クリップボードにコピーするだけならこれで上手くいきます。
クリップボード以外に出力する場合はデバイスコンテキストより画面を取得する必要があります。
その方法は下の通りです。
>1、アクティブウィンドウをハードコピーする
↑
手順は
(1)GetForegroundWindow() API でウインドウ・ハンドルを取得
(2)(1)より GetWindowDC() API でウインドウ全体のデバイスコンテキストを取得
(3)デバイスコンテキストよりビットマップのデータを取得してファイルなどに出力
>2、スクリーン全体をハードコピーする
↑
手順は
(1)GetDC(NULL) でスクリーン全体のデバイスコンテキストを取得
(2)デバイスコンテキストよりビットマップのデータを取得してファイルなどに出力
・以上。→SendInput() で簡単に出来るでしょう。
参考:
http://msdn.microsoft.com/library/ja/default.asp …
http://msdn.microsoft.com/library/ja/default.asp …
この回答へのお礼
お礼日時:2007/08/24 10:43
とても丁寧な回答を有り難うございます。
私の目的は、デバイスコンテキストを使う方法ですね。
おかげで簡単に目的を達成できました。
本当に有り難うございました。
No.3
- 回答日時:
訂正:
×:7デスクトップのデバイスコンテキストハンドルを解放
○:7対象のデバイスコンテキストハンドルを解放
>SendInput() API 関数
なるほど、と思いました。
タイミング的な問題は無いのか気になるところです。
No.2
- 回答日時:
何でもかんでもAPIがあると思ってはいけません。
そんな便利なAPIは無かったはず。。。(たしか)
大まかな流れだけ。
1保存するスクリーンのサイズを取得
2保存対象のデバイスコンテキストハンドルを取得
3描画用のビットマップハンドルを作成
4対象の画像を3で作成した描画用のビットマップにコピー
5ビットマップオブジェクトを作成
6描画用のデバイスコンテキストハンドルを削除
7デスクトップのデバイスコンテキストハンドルを解放
8ビットマップハンドルを削除
9得られたビットマップオブジェクトを保存
10ビットマップオブジェクトを削除
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# 参考にいろいろとc言語、c++言語プログラミングでレジストリーを操作したいのですが、無料配布のc++ 3 2022/12/22 01:49
- その他(プログラミング・Web制作) プログラムの勉強のおすすめは 7 2022/12/09 20:09
- Google Drive 画面のハードコピー撮る時、どうやって綺麗に取りますか? 2 2022/11/05 20:46
- その他(OS) 画面のハードコピーを綺麗に貼り付けるにはどうしたらいいですか? 1 2022/11/06 05:55
- その他(社会・学校・職場) 業務内容についてどう思いますか? 私は客先の仕事を下請けとして行うという仕事をしていますが、(客先の 2 2022/05/04 16:17
- その他(社会・学校・職場) 業務内容についてどう思いますか? 私は客先の仕事を下請けとして行うという仕事をしていますが、(客先の 3 2022/05/04 17:55
- C言語・C++・C# exeファイルが作れない(windows10) 6 2022/08/13 08:47
- C言語・C++・C# c言語 コマンドライン引数 4 2023/02/09 18:47
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- C言語・C++・C# [C言語] コメント文字列を無視して、数値データを読み込むプログラム部分について 5 2022/10/05 11:03
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
画面がチカチカする
-
VC++のTextOutの再描画の仕方
-
丸いボタンの表示でCPU100%
-
Win32APIにて、アイコンの情報...
-
BeginPaintの使い方
-
エクセルで作った新しいウイン...
-
「アイテムは収集されました」...
-
グラフの交点の求め方(Excel)
-
コントロールの書式設定で、“コ...
-
コンボボックス内の文字サイズ変更
-
検索の画面がでなくなってしま...
-
SetWindowText関数について
-
フォントの大きさ
-
DateTimePickerでに年月までし...
-
PCで「使用可能な場合はグラフ...
-
vbaから他のアプリを終了
-
エクセルである行が急に消えて...
-
エクセルのコントロールツール...
-
文字色 エクリプス
-
CTなどでいう,ウィンドウレベ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コンテキスト依存とは?
-
Win32APIにて、アイコンの情報...
-
PlgBltでの透過
-
画面がチカチカする
-
GetDC()とCreateCompatibleDC()
-
VBでFD、USBの有効・無効...
-
VC++でBitmapとText文字を表示...
-
コントロール内の文字の背景色
-
画像処理 ビットマップ ダブ...
-
BitBlt関数について教えてください
-
メモリデバイスコンテキスト&...
-
Rectangleで、リソースが解放さ...
-
画面のちらつきについて
-
Windowsプログラミング 画面描...
-
ビットマップ(表示速度とサイズ)
-
メモリデバイスコンテキストを...
-
ダブルバッファの作り方
-
TextOutについて
-
SetWindowRgn()関数について。
-
領域を塗りつぶしたい
おすすめ情報