Windows7 において、画面の解像度をコマンドで設定する必要がありました。
尚、コマンドで画面解像度を変更するフリーソフトがあるので、それを使えば簡単にできます。
実際、私は今まで nircmd というツールを使用していました。
しかし、これが最近ウイルス対策ソフト界隈でいろいろ問題になっているようで、上から使うなと言われたので、仕方なく代替案を探していました。
ただ、どうも Windows のシステムコマンド等ではできないようで、またレジストリも接続するディスプレイがわからない状態では設定のしようもないので、仕方なく Win32API を使った自作のプログラムを作成することにしました。
なんという車輪の再発明。
環境
- Windows Embedded Standard 7
- Visual Studio 2017
サンプルコード
ChangeDisplaySettings
という関数を使えば画面の解像度を変更できるようです。
また、現在のディスプレイの設定は EnumDisplaySettings
で取得できるようです。
- https://msdn.microsoft.com/ja-jp/library/cc428309.aspx
- https://msdn.microsoft.com/ja-jp/library/cc428506.aspx
#include "stdio.h"
#include "Windows.h"
int main(void)
{
DEVMODE devMode = { 0 };
if (EnumDisplaySettings(NULL, ENUM_CURRENT_SETTINGS, &devMode) == TRUE) {
devMode.dmPelsWidth = 1920;
devMode.dmPelsHeight = 1024;
devMode.dmBitsPerPel = 32;
if (ChangeDisplaySettings(&devMode, 0) == DISP_CHANGE_SUCCESSFUL) {
printf("success");
}
}
return 0;
}