EnumColorProfiles WcsGetDefaultColorProfile WcsSetDefaultColorProfile的使用
#include <Windows.h>
#include <Icm.h>
#include <iostream>
#include <string> #pragma comment(lib,"Mscms.lib")
#define MAX_PATH 1024
BOOL flag = 0;
int main()
{
WCHAR* szDisplayDeviceName = NULL;
WCHAR szPath[MAX_PATH];
memset(szPath, 0, 1024);
DISPLAY_DEVICE dd;
dd.cb = sizeof(dd); if (flag = EnumDisplayDevices(L"\\\\.\\DISPLAY1", 0, &dd, EDD_GET_DEVICE_INTERFACE_NAME))
{
if (flag = WcsGetDefaultColorProfile(WCS_PROFILE_MANAGEMENT_SCOPE_CURRENT_USER,
dd.DeviceKey,
CPT_ICC,
CPST_PERCEPTUAL,
0, // dwProfileID -- doesn't seem to matter what value you use here
MAX_PATH * sizeof(WCHAR),
szPath))
{
PROFILE profile;
profile.cbDataSize = (DWORD)(wcslen(szPath) + 1) * sizeof(WCHAR);
profile.dwType = PROFILE_FILENAME;
profile.pProfileData = (PVOID)szPath; HPROFILE hProfile = OpenColorProfile(&profile,
PROFILE_READ, FILE_SHARE_READ, OPEN_EXISTING); // now do something with the profile }
} LPWSTR buffer;
ENUMTYPEW pe = { 0 };
pe.dwSize = sizeof(pe);
pe.dwVersion = ENUM_TYPE_VERSION;
pe.dwFields = ET_DEVICENAME;
pe.dwDeviceClass = CLASS_MONITOR;
pe.pDeviceName = dd.DeviceKey;
DWORD p = 0;
DWORD size = 0;
BOOL ret = EnumColorProfilesW(NULL, &pe, NULL, &size, &p);
buffer = (LPWSTR)malloc(size);
ret = EnumColorProfilesW(NULL, &pe, (BYTE*)buffer, &size, &p);
LPWSTR temp = buffer;
for (int i = 0; i < p; i++)
{
wprintf(L"%s\n", temp);
printf("without null character: %zu\n", wcslen(temp));
temp += wcslen(temp) + 1;
} flag = WcsSetDefaultColorProfile(WCS_PROFILE_MANAGEMENT_SCOPE_CURRENT_USER,
dd.DeviceKey,
CPT_ICC,
CPST_PERCEPTUAL,
0, // dwProfileID -- doesn't seem to matter what value you use here
buffer); free(buffer);
return 1;
}
这是列举出本机上的所有icm配置文件
随机推荐
- [转帖]tikv下线Pending Offline卡住排查思路
https://tidb.net/blog/5e960334?utm_source=tidb-community&utm_medium=referral&utm_campaign=re ...
- 极简版 haproxy的搭建步骤
背景 发现四层nginx的代理报错. 然后想着换用一下haproxy的配置. 早些时候 看过tidb的一些最佳时间, 这里简单整理一下. 下载 https://src.fedoraproject.or ...
- [转帖]kubernetes service 和 kube-proxy详解
https://plantegg.github.io/2020/01/22/kubernetes%20service/ 性能情况.. service 模式 根据创建Service的type类型不同,可 ...
- [转帖]一个轻量的Linux运维监控脚本
https://zhuanlan.zhihu.com/p/472040635 写在前面 我的需求 嗯,有几台很老的机器,上面部署的几个很老的应用 我需要每周对机器上的一些内存,磁盘,线程,应用和数据库 ...
- [转帖]Linux内核网络中的软中断ksoftirqd
https://zhuanlan.zhihu.com/p/361976930 1. 前言 之前分享过Linux内核网络数据包的接收过程,当执行到网卡通过硬件中断(IRQ)通知CPU,告诉它有数据来了, ...
- 二进制安装Mysql数据库的快速方法
二进制安装Mysql数据库的快速方法 摘要 还是国产操作系统 rpm包可能不太兼容,为了简单准备使用tar包方式安装mysql数据库 这里简单记录一下过程. 为以后使用. 介质下载 下载二进制的tar ...
- 神通奥斯卡数据库是否兼容Oracle, 以及参数修改的办法
1. 最近公司要适配神通数据库, 但是因为一些功能异常.参数可能存在风险. 为了减少问题, 想着简单描述一下这些的处理. 开发和客户给的默认参数建议 1. 不选择 兼容oracle模式 2. 字符集选 ...
- 使用Grafana 监控 SQLSERVER数据库
使用Grafana 监控 SQLSERVER数据库 1.获取镜像信息以及启动镜像 docker pull awaragi/prometheus-mssql-exporter docker run -e ...
- Vue中is属性的用法 可以动态切换组件
is 是组件的一个属性,用来展示组件的名称 is和component联用哈 vue提供了component来展示对应的组件名称 compont是一个占位符,is这个属性,用来展示对应的组件名称 三个子 ...
- 【发现一个问题】macos m2 下无法使用 x86_64-linux-musl-gcc 链接含有 avx512 指令的 c 代码
作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 一开始是使用 golang 中的 cgo 来编译: env ...