Собранный c++ проект запускается в exe но при попытке открыть его через python он работает неккоректно
Есть код на c++:
#include <iostream>
#include <Windows.h>
#include "locale.h"
using namespace std;
static const UINT32 DpiVals[] = { 100,125,150,175,200,225,250,300,350, 400, 450, 500 };
int GetRecommendedDPIScaling()
{
int dpi = 0;
auto retval = SystemParametersInfo(SPI_GETLOGICALDPIOVERRIDE, 0, (LPVOID)&dpi, 1);
if (retval != 0)
{
int currDPI = DpiVals[dpi * -1];
return currDPI;
}
return -1;
}
void SetDpiScaling(int percentScaleToSet)
{
int recommendedDpiScale = GetRecommendedDPIScaling();
if (recommendedDpiScale > 0)
{
int index = 0, recIndex = 0, setIndex = 0;
for (const auto& scale : DpiVals)
{
if (recommendedDpiScale == scale)
{
recIndex = index;
}
if (percentScaleToSet == scale)
{
setIndex = index;
}
index++;
}
int relativeIndex = setIndex - recIndex;
SystemParametersInfo(SPI_SETLOGICALDPIOVERRIDE, relativeIndex, (LPVOID)0, 1);
}
}
int main(int argc, char** argv)
{
setlocale(LC_ALL, "Russian");
for (;;)
{
int n = 0, dpiToSet = argc;
cin >> dpiToSet;
SetDpiScaling(dpiToSet);
}
return 0;
}
Он выполняет изменение масштаба экрана в windows(DPI scale)
Собранный в exeшнике он работает корректно, но при попытке внедрения его в питоновский проект через команду
import subprocess
console = subprocess.run(["jjscale.exe"], stdin=subprocess.PIPE, shell=True)
Масштаб не меняется и экран зависает, при этом звук на ПК остается. В чем заключается проблема? Если в самом проекте на с++, то что в нем поменять, и если проблема заключается в вызове через питон, то какой командой его нужно запускать? Системой установлена 10 винда
Источник: Stack Overflow на русском