add app screen capture
This commit is contained in:
parent
d784fc6570
commit
0bf5a76da5
@ -109,11 +109,11 @@ if (CMAKE_BUILD_TYPE STREQUAL "Debug")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DDEBUG")
|
||||
set(LIBRARY_OUTPUT_PATH "${OUTPUT_DIR}/debug")
|
||||
# 添加测试
|
||||
add_executable(WinDeviceTest "src/main.cpp" ${SOURCE_FILES})
|
||||
add_executable(WinDeviceTest WIN32 "src/main.cpp" ${SOURCE_FILES})
|
||||
target_include_directories(WinDeviceTest
|
||||
PUBLIC $<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}/src>
|
||||
PRIVATE ${Third_Include_DIR} ${Windows_Kits_UM_DIR} ${Windows_Kits_SHARED_DIR})
|
||||
target_link_libraries(WinDeviceTest PRIVATE ${DirectX_LIBS})
|
||||
target_link_libraries(WinDeviceTest PRIVATE ${DirectX_LIBS} user32 gdi32)
|
||||
set_target_properties(WinDeviceTest PROPERTIES
|
||||
ARCHIVE_OUTPUT_DIRECTORY_DEBUG "${OUTPUT_DIR}/${ARCH_DIR}/debug"
|
||||
LIBRARY_OUTPUT_DIRECTORY_DEBUG "${OUTPUT_DIR}/${ARCH_DIR}/debug"
|
||||
|
5
WinDevice/src/Video/AppWindowCapture.cpp
Normal file
5
WinDevice/src/Video/AppWindowCapture.cpp
Normal file
@ -0,0 +1,5 @@
|
||||
//
|
||||
// Created by zyz on 2024/10/8.
|
||||
//
|
||||
|
||||
#include "AppWindowCapture.h"
|
20
WinDevice/src/Video/AppWindowCapture.h
Normal file
20
WinDevice/src/Video/AppWindowCapture.h
Normal file
@ -0,0 +1,20 @@
|
||||
//
|
||||
// Created by zyz on 2024/10/8.
|
||||
//
|
||||
|
||||
#ifndef WINDEVICE_APPWINDOWCAPTURE_H
|
||||
#define WINDEVICE_APPWINDOWCAPTURE_H
|
||||
|
||||
namespace WinDevice {
|
||||
|
||||
class AppWindowCapture {
|
||||
public:
|
||||
AppWindowCapture();
|
||||
~AppWindowCapture();
|
||||
void UpdateAppThumbnail();
|
||||
private:
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
#endif //WINDEVICE_APPWINDOWCAPTURE_H
|
5
WinDevice/src/Video/ScreenCapture.cpp
Normal file
5
WinDevice/src/Video/ScreenCapture.cpp
Normal file
@ -0,0 +1,5 @@
|
||||
//
|
||||
// Created by zyz on 2024/10/8.
|
||||
//
|
||||
|
||||
#include "ScreenCapture.h"
|
14
WinDevice/src/Video/ScreenCapture.h
Normal file
14
WinDevice/src/Video/ScreenCapture.h
Normal file
@ -0,0 +1,14 @@
|
||||
//
|
||||
// Created by zyz on 2024/10/8.
|
||||
//
|
||||
|
||||
#ifndef WINDEVICE_SCREENCAPTURE_H
|
||||
#define WINDEVICE_SCREENCAPTURE_H
|
||||
|
||||
namespace WinDevice {
|
||||
class ScreenCapture {
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
#endif //WINDEVICE_SCREENCAPTURE_H
|
@ -84,7 +84,8 @@ void WinDevice::ScreenManager::_UpdateDisplayAdapterList()
|
||||
|
||||
BOOL WinDevice::ScreenManager::_EnumMonitorProc(HMONITOR hMonitor)
|
||||
{
|
||||
MONITORINFOEX monitorInfo;
|
||||
HRESULT result;
|
||||
MONITORINFOEX monitorInfo;
|
||||
monitorInfo.cbSize = sizeof(MONITORINFOEX);
|
||||
if (GetMonitorInfo(hMonitor, &monitorInfo))
|
||||
{
|
||||
@ -109,7 +110,8 @@ BOOL WinDevice::ScreenManager::_EnumMonitorProc(HMONITOR hMonitor)
|
||||
targetDeviceName.header.size = sizeof(targetDeviceName);
|
||||
|
||||
// 获取指定 HMONITOR 的目标设备名称信息
|
||||
if (DisplayConfigGetDeviceInfo(&targetDeviceName.header) == ERROR_SUCCESS)
|
||||
result = DisplayConfigGetDeviceInfo(&targetDeviceName.header);
|
||||
if (result == ERROR_SUCCESS)
|
||||
{
|
||||
spdlog::info("_UpdateMonitorInfoMap, monitorDevicePath:{0}, monitorFriendlyDeviceName:{1}",
|
||||
WinDevice::Wchar2String(targetDeviceName.monitorDevicePath), WinDevice::Wchar2String(targetDeviceName.monitorFriendlyDeviceName));
|
||||
@ -118,19 +120,18 @@ BOOL WinDevice::ScreenManager::_EnumMonitorProc(HMONITOR hMonitor)
|
||||
DEVMODE dm;
|
||||
dm.dmSize = sizeof(DEVMODE);
|
||||
dm.dmDriverExtra = 0;
|
||||
|
||||
if (EnumDisplaySettingsA((LPCSTR)targetDeviceName.monitorDevicePath, ENUM_CURRENT_SETTINGS, &dm) != 0)
|
||||
if (EnumDisplaySettingsA((LPCSTR)targetDeviceName.monitorDevicePath, ENUM_CURRENT_SETTINGS, &dm))
|
||||
{
|
||||
spdlog::info("Resolution:{0}x{1}", dm.dmPelsWidth, dm.dmPelsHeight);
|
||||
}
|
||||
else
|
||||
{
|
||||
Log::error("Failed to get display resolution.");
|
||||
Log::error("Failed to get display resolution");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
spdlog::error("Failed to get display device info.");
|
||||
spdlog::error("Failed to get display device info, error:{0}", result);
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
5
WinDevice/src/Video/VideoManager.cpp
Normal file
5
WinDevice/src/Video/VideoManager.cpp
Normal file
@ -0,0 +1,5 @@
|
||||
//
|
||||
// Created by zyz on 2024/10/8.
|
||||
//
|
||||
|
||||
#include "VideoManager.h"
|
24
WinDevice/src/Video/VideoManager.h
Normal file
24
WinDevice/src/Video/VideoManager.h
Normal file
@ -0,0 +1,24 @@
|
||||
//
|
||||
// Created by zyz on 2024/10/8.
|
||||
//
|
||||
|
||||
#ifndef WINDEVICE_VIDEOMANAGER_H
|
||||
#define WINDEVICE_VIDEOMANAGER_H
|
||||
|
||||
#include <minwindef.h>
|
||||
#include <windef.h>
|
||||
|
||||
namespace WinDevice {
|
||||
class VideoManager {
|
||||
public:
|
||||
VideoManager();
|
||||
~VideoManager();
|
||||
|
||||
private:
|
||||
BOOL CALLBACK EnumWindowsProc(HWND hwnd, LPARAM lParam);
|
||||
void _UpdateAppThumnbail();
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
#endif //WINDEVICE_VIDEOMANAGER_H
|
Loading…
Reference in New Issue
Block a user