1、獲取視窗控制代碼
見2、截圖函式**(包含截圖類和呼叫示例)
screen.h標頭檔案如下:
#ifndef __cscreen_h__
#define __cscreen_h__
#include class cscreen
hdc = createdc("display", null, null, null); //使用指定的名字為乙個裝置建立裝置上下文環境
scrwidth = getdevicecaps(hdc, horzres); //螢幕寬度
scrheight = getdevicecaps(hdc, vertres); //螢幕高度
hmdc = createcompatibledc(hdc); //建立乙個與指定裝置相容的記憶體裝置上下文環境
if(w==0 && h==0)
else
holdbmp=(hbitmap)selectobject(hmdc, hbmpscreen); //選擇一物件到指定的裝置上下文環境中
bitmap bm; //bmp影象效果好,非壓縮;jpg壓縮,便於網路傳輸
bitmapinfoheader bi; //位圖資訊頭,大小固定40位元組
getobject(hbmpscreen, sizeof(bm), (lpstr)&bm); //得到指定圖形物件的資訊
bi.bisize = sizeof(bitmapinfoheader);
bi.biwidth = bm.bmwidth;
bi.biheight = bm.bmheight;
bi.biplanes = 1;
bi.bibitcount = color_deep;
bi.bicompression = bi_rgb;
bi.bisizeimage = ((((bi.biwidth * bi.bibitcount) + 31) & ~31) / 8) * bi.biheight;
bi.bixpelspermeter = 0;
bi.biypelspermeter = 0;
bi.biclrused = 0;
bi.biclrimportant = 0;
int ncolors = (1 << bi.bibitcount);
if( ncolors > 256 )
ncolors = 0;
dwlen_1 = bi.bisize + ncolors * sizeof(rgbquad);
dwlen_2 = dwlen_1+ bi.bisizeimage;
hdib =new char[dwlen_2];
memcpy(hdib,&bi,sizeof(bi));
buf=hdib+dwlen_1;
buf_len=bi.bisizeimage;
// getscreen(100, 200, w, h); //初始化調色盤資料 }
~cscreen();
void getscreen();
void getscreen(int x, int y, int w, int h);
void setscreentopath(char *path);
void setscreen();
void setscreen(int x, int y, int w, int h);
void joinscrdata(char *data); //載入位圖資料
private:
int scrwidth;
int scrheight;
int dwlen_1;
int dwlen_2;
char *hdib;
hdc hmdc;
hdc hdc;
hdc hhh;
hbitmap hbmpscreen;
hbitmap holdbmp;
hwnd m_hwnd;
};#endif
.cpp檔案如下:
#include "stdafx.h"
#include "screen.h"
cscreen::~cscreen()
deleteobject(hbmpscreen);
deleteobject(holdbmp);
}void cscreen::getscreen()
void cscreen::getscreen(int x,int y,int w,int h)
void cscreen::setscreentopath(char *path)
void cscreen::setscreen()
void cscreen::setscreen(int x,int y,int w,int h)
void cscreen::joinscrdata(char *data) //載入位圖資料
呼叫如下:
void cmydlg::onok()
delete screen;
cdialog::onok();
}
3、在介面上顯示
imagewnd::imagewnd()
void imagewnd::onpaint()
遍歷所有視窗控制代碼,擷取視窗螢幕(截圖)
using system using system.runtime.interopservices using system.text using system.collections.generic class csharpapisdemo public windowinfo getalldesk...
程式 視窗 截圖快捷鍵
一 程式 alt tab切換程式 ctrl w關閉程式內當前程式 alt f4關閉程式 桌面的alt f4 關機 二 視窗 ctrl shift w 關閉除鎖定視窗以外的所有視窗 ctrl k 關閉除鎖定視窗和當前視窗以外的所有視窗 windows鍵 m 最小化所有被開啟的視窗 alt 空格 n 最...
根據視窗控制代碼獲取所在程式路徑
var form1 tform1 implementation uses psapi function getproces epath h hwnd string varpid cardinal phandle thandle buf array 0.max path of char begin g...