c++でフォアグラウンドウィンドウのハンドルを取得することはできたのですが、
これを使ってこのウィンドウをpngで保存したいのですけど、
クライアント領域の画像は取得することはできますでしょうか?
コードは現在はこのようになっております。
C++
1#include <stdio.h> 2#include <iostream> 3#include <string.h> 4#include <cstdlib> 5#include <windows.h> 6 7#define _WIN32_WINNT 8 9int DoGetActiveWindow() 10{ 11 char buf[1000]; 12 HWND hWnd; 13 14 15 /* アクティブウィンドウの取得 */ 16 hWnd = GetForegroundWindow(); 17 18 GetWindowText(hWnd, buf, 1000); 19 20 LPARAM lParam = (LPARAM)"ResearchProject"; 21 22 if(strcmp(buf,(char*)lParam)==0){//名前が一致したら、 23 24 std::cout << buf << std::endl; 25 26 return 1; 27 28 }else{ 29 return 0; 30 } 31 32 if(hWnd == NULL){ 33 std::cout << "not handle" << std::endl; 34 return 0; 35 } 36 37 return 0; 38} 39 40DWORD WINAPI call_system(LPVOID arg){ 41 system("C:\Users\mimimi\Desktop\nana\ResearchProject"); 42} 43 44int main(){ 45 int c = 0; 46 HANDLE hThread; 47 DWORD dwThreadId; 48 49 hThread = CreateThread( //スレッドの起動 50 NULL, 51 0, 52 call_system, 53 NULL, 54 0, 55 &dwThreadId); 56 57 Sleep(2000); 58 59 int i = DoGetActiveWindow(); 60 61 62 if(i == 0){ 63 std::cout << "Not Active" << std::endl; 64 DoGetActiveWindow(); 65 }else if(i == 1){ 66 std::cout << "OKOKOK" << std::endl; 67 return 0; 68 } 69 70 return 0; 71} 72
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/11/05 04:16