
お世話になります、fujicafeです。
CE6.0で動かしている組み込みマシンのマニュアルを作成するためにスクリーンキャプチャをしたいと思っているのですが、通常のPCのようなPrintScreenが出来ず、インターネットでもいろいろとフリーソフトを検索したのですが、どうもソフトが古いらしくOSのヴァージョンに対応していないためか、うまく動作出来ません。
CE6.0でスクリーンキャプチャする方法や、それができるソフトをご存じの方がいらっしゃいましたら、教えて頂きたいです。
よろしくお願いいたします。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
こんばんは。
・CE6.0でスクリーンキャプチャする方法
以下を参照にwin32apiの種類をwindows CEの範囲内に留めていますが、此れで出来ませんか。
http://msdn.microsoft.com/en-us/library/aa132474 …
#include<windows.h>
#include<stdio.h>
//DIBのセーブ
static bool Save(LPCTSTR pszFileName, HBITMAP hDIB)
{
//ファイルを開く
FILE* pf = ::fopen(pszFileName, TEXT("wb"));
if(pf == NULL)
return false;
//DIBから情報を取る
DIBSECTION dib = {0};
::GetObject(hDIB, sizeof(dib), &dib);
//ファイルヘッダ部の設定
BITMAPFILEHEADER bmfh = {0};
bmfh.bfType = 'B' | ('M' << 8);
bmfh.bfOffBits = sizeof(bmfh) + sizeof(dib.dsBmih);
bmfh.bfSize = bmfh.bfOffBits + dib.dsBmih.biSizeImage;
//ファイルヘッダ部を書き出す
::fwrite(&bmfh, sizeof(bmfh), 1, pf);
//DIB情報を書き出す
::fwrite(&dib.dsBmih, sizeof(dib.dsBmih), 1, pf);
//ビットイメージを書き出す
::fwrite(dib.dsBm.bmBits, dib.dsBmih.biSizeImage, 1, pf);
//ファイルを閉じる
::fclose(pf);
return true;
}
//24BIT DIBの作成
static HBITMAP CreateDIB(HDC hDC, DWORD dwWidth, DWORD dwHeight)
{
BITMAPINFOHEADER bmih = {sizeof(bmih)};
bmih.biPlanes = 1;
bmih.biBitCount = 24;
bmih.biCompression = BI_RGB;
bmih.biWidth = dwWidth;
bmih.biHeight= dwHeight;
LPVOID pvBits = NULL;
return ::CreateDIBSection(hDC, (LPBITMAPINFO)&bmih, DIB_RGB_COLORS, &pvBits, NULL, 0);
}
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
//デスクトップのデバイスコンテキストを取る
HDC hDCScreen = ::GetDC(NULL);
const DWORD dwWidth = ::GetDeviceCaps(hDCScreen, HORZRES);
const DWORD dwHeight= ::GetDeviceCaps(hDCScreen, VERTRES);
const DWORD dwBPP = ::GetDeviceCaps(hDCScreen, BITSPIXEL);
//デスクトップの大きさを元にDIBを作成する
HBITMAP hDIB = ::CreateDIB(hDCScreen, dwWidth, dwHeight);
HDC hDCDIB = ::CreateCompatibleDC(hDCScreen);
::SelectObject(hDCDIB, hDIB);
//DIBにデスクトップを複写する
::BitBlt(hDCDIB, 0, 0, dwWidth, dwHeight, hDCScreen, 0, 0, SRCCOPY);
::ReleaseDC(NULL, hDCScreen);
::DeleteDC(hDCDIB);
//DIBをファイルにする
if(!::Save(TEXT("screenshot.bmp"), hDIB))
{
//失敗
}
//DIBの解放
::DeleteObject(hDIB);
return 0;
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Winmerge ファイルの中身は同じ...
-
Windows10 フォルダ内の自動並...
-
onedriveの中身を削除したらパ...
-
外字ファイル、eudc.tte と e...
-
mrl→midファイルへ
-
コマンドプロンプトによるフォ...
-
バッチファイルで変数の中身を...
-
教えてください!困ってます。
-
XML ドキュメントファイルって...
-
ファイルの先頭行を全て削除したい
-
macのdmgファイル(動画)をMP4...
-
ODBCエラー「admin」によってロ...
-
Excellにて→ファイルエラー:デ...
-
ファイルの単位
-
office365 ファイルを削除したい
-
Excelで保存時間とPCの時間があ...
-
同期センターのマークが出てま...
-
拡張子TBの閲覧方法について
-
「$TD ファイル」を開く方法を...
-
共有フォルダ内のファイル使用...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Winmerge ファイルの中身は同じ...
-
Windows10 フォルダ内の自動並...
-
onedriveの中身を削除したらパ...
-
ファイルの先頭行を全て削除したい
-
教えてください!困ってます。
-
外字ファイル、eudc.tte と e...
-
コマンドプロンプトによるフォ...
-
mrl→midファイルへ
-
emlをtxtに変換するには?
-
office365 ファイルを削除したい
-
バッチファイルで変数の中身を...
-
outlookuの添付ファイルが開け...
-
ショートカットアイコンと、元...
-
VScodeでjarファイルを開く方法
-
同期センターのマークが出てま...
-
Excelで保存時間とPCの時間があ...
-
teratrermを使ったデータの送信...
-
ファイルの「読み取り専用」が ...
-
macのdmgファイル(動画)をMP4...
-
mac ファイルの詳細情報を編集...
おすすめ情報