gpt4 book ai didi

c++ - 使用 ShellExecute Properties Verb 的特定属性选项卡

转载 作者:可可西里 更新时间:2023-11-01 10:35:49 25 4
gpt4 key购买 nike

有没有什么方法可以使用 ShellExecute 的 Properties Verb 打开属性中的特定选项卡?

有没有办法做到这一点? (不必是 ShellExecute,但找不到太多可以显示文件“属性窗口”的东西)

(模仿右键单击文件,选择属性,然后单击“详细信息”选项卡的行为)

最佳答案

我找到了解决方案。以下答案写在C#非常有帮助:

这是一些代码:

// initalize COM
HRESULT coInitRes = CoInitializeEx(NULL, COINIT_APARTMENTTHREADED | COINIT_DISABLE_OLE1DDE);

SHELLEXECUTEINFO ShExecInfo = {}; // initialize empty structure
ShExecInfo.cbSize = sizeof(SHELLEXECUTEINFO);
ShExecInfo.fMask = SEE_MASK_INVOKEIDLIST;
ShExecInfo.lpVerb = "properties";
ShExecInfo.lpFile = "C:\\Users";
ShExecInfo.lpParameters = "Security";
// ShExecInfo.lpParameters = "Tools"; // if you want to open another tab
ShExecInfo.nShow = SW_SHOW;
boolean result = ShellExecuteEx(&ShExecInfo);
if (!result) {
int res = GetLastError(); // this retrieves the error code
// int res = (int) ShExecInfo.hInstApp; // this retrieves another error code
// on success, this value is 32
}

// close COM
if (coInitRes == S_OK || coInitRes == S_FALSE) { // do not call when result is RPC_E_CHANGED_MODE
CoUninitialize();
}

我不确定您是否真的必须调用 CoInitializeExCoUninitialize,但是 the docs of ShellExecuteEx说明这是一种很好的做法。

此示例打开属性 对话框的安全 选项卡。您可以更改 ShExecInfo.lpParameters 的值以指定另一个选项卡,例如 Tools

请注意,如果您的应用程序使用 Unicode,则必须在字符串前添加一个 L,例如:

ShExecInfo.lpFile = L"C:\\Users";

关于c++ - 使用 ShellExecute Properties Verb 的特定属性选项卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27493234/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com