From a04142522147507ae6052f1a6268b932f3c5a85c Mon Sep 17 00:00:00 2001 From: tmarenko Date: Thu, 25 Aug 2022 14:43:25 +0300 Subject: [PATCH 1/2] enable dpi awareness in manifest --- CMakeLists.txt | 13 ++++++++++--- main.manifest | 18 ++++++++++++++++++ 2 files changed, 28 insertions(+), 3 deletions(-) create mode 100644 main.manifest diff --git a/CMakeLists.txt b/CMakeLists.txt index 9e85c87..30e495c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,6 +3,8 @@ project(GenshinImpact_PaimonShutUp) set(CMAKE_CXX_STANDARD 14) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) +set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /MANIFEST:NO") +set(MAIN_MANIFEST "main.manifest") if(NOT TESSERACT_ENG_DATA) set(TESSERACT_ENG_DATA "https://github.com/tesseract-ocr/tessdata/raw/3.04.00/eng.traineddata") endif() @@ -17,7 +19,6 @@ include_directories(${Leptonica_INCLUDE_DIRS}) include_directories(${Tesseract_INCLUDE_DIRS}) add_executable(${PROJECT_NAME} source/main.cpp source/tesseract.cpp source/tesseract.h appicon.rc) -set_target_properties(${PROJECT_NAME} PROPERTIES LINK_FLAGS /MANIFESTUAC:"level='requireAdministrator' uiAccess='false'") MESSAGE(STATUS "LINK LIBRARIES ${OpenCV_LIBS} ${Leptonica_LIBRARIES} ${Tesseract_LIBRARIES}") target_link_libraries(${PROJECT_NAME} ${OpenCV_LIBS} ${Leptonica_LIBRARIES} libtesseract) @@ -34,8 +35,14 @@ add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD COMMENT "Copying dependencies..." COMMAND_EXPAND_LISTS) +add_custom_command( + TARGET ${PROJECT_NAME} POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy + ${CMAKE_SOURCE_DIR}/${MAIN_MANIFEST} + ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${MAIN_MANIFEST}) + add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD - COMMAND "mt.exe" -manifest "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}\\${PROJECT_NAME}.exe.manifest" -outputresource:"${CMAKE_RUNTIME_OUTPUT_DIRECTORY}\\${PROJECT_NAME}.exe" - COMMAND ${CMAKE_COMMAND} -E remove -f "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}\\${PROJECT_NAME}.exe.manifest" + COMMAND "mt.exe" -manifest "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}\\${MAIN_MANIFEST}" -outputresource:"${CMAKE_RUNTIME_OUTPUT_DIRECTORY}\\${PROJECT_NAME}.exe" + COMMAND ${CMAKE_COMMAND} -E remove -f "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}\\${MAIN_MANIFEST}" COMMENT "Embedding manifest..." COMMAND_EXPAND_LISTS) diff --git a/main.manifest b/main.manifest new file mode 100644 index 0000000..5f31860 --- /dev/null +++ b/main.manifest @@ -0,0 +1,18 @@ + + + + + + true/pm + + permonitorv2,permonitor + + + + + + + + + + From 843276905e0cbc1c9546efe44590c02e6a22b11c Mon Sep 17 00:00:00 2001 From: tmarenko Date: Thu, 25 Aug 2022 01:30:10 +0300 Subject: [PATCH 2/2] use bitblt --- source/main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/main.cpp b/source/main.cpp index 67f55df..bc56148 100644 --- a/source/main.cpp +++ b/source/main.cpp @@ -110,7 +110,7 @@ void GetFrame(int screenWidth, int screenHeight) { auto bitMap = CreateCompatibleBitmap(hwndDC, screenWidth, screenHeight); SelectObject(saveDC, bitMap); - PrintWindow(genshinWindow, saveDC, PW_RENDERFULLCONTENT); + BitBlt(saveDC, 0, 0, screenWidth, screenHeight, hwndDC, 0, 0, SRCCOPY); GetDIBits(saveDC, bitMap, 0, screenHeight - titleBarSize, frame.data, (BITMAPINFO *) &bi, DIB_RGB_COLORS); DeleteObject(bitMap);