【发布时间】:2022-01-13 01:20:38
【问题描述】:
if (t.elapsed_millisecs() > 500) {
system(("powershell(Get - WmiObject - Namespace root / WMI - Class WmiMonitorBrightnessMethods).WmiSetBrightness(1, " + brightness + string(")")).c_str());
t = {};
}
brightness 只是一个 int,可以设置为 1 到 100
我正在尝试在一定时间内更改亮度,但我遇到了 system() 函数的问题。当程序试图执行system()函数时,cmd输出“'_'不是内部或外部命令、可运行程序或批处理文件。”
我的问题是如何正确地将变量传递给系统函数?
【问题讨论】:
-
std::to_string(亮度) ?现在我很确定你用亮度值来抵消那个 char*(然后将“)”连接到那个),这不是你想要的
-
你不能。
system()只接受一个变量、一个参数、一个 C 字符串。因此,您应该问的是如何创建这样的字符串。你知道std::ostringstream和std::string怎么用吗? -
@SamVarshavchik 我尝试制作一个单独的字符串,但它也不起作用
-
我并没有简单地说“字符串”,而是提到了
std::string和std::ostringstream。这是对执行此操作的一组特定 C++ 类的显式引用。此外,我不知道“它也不起作用”是什么意思。我只能评论显示给我的代码。 -