gpt4 book ai didi

c++ - 带拖放的 UIAccess

转载 作者:行者123 更新时间:2023-11-30 05:05:27 25 4
gpt4 key购买 nike

当启用 UIAccess 时,有几个关于拖放不工作的问题。有些提供了使用 ChangeWindowMessageFilterChangeWindowMessageFilterExWM_DROPFILES 的部分解决方案。但是,这不适用于 wpf 应用程序。

有什么想法吗?

最佳答案

通常情况下,启用 UIAccess 的应用程序会以 High Integrity 启动 - 这是阻止拖放操作的原因。

我尝试在应用程序本身内将完整性级别更改为中等,但这没有任何效果。

对于其他寻求解决方案的人,这就是我想出的。从另一个启用了 UIAccess 的进程,您可以使用 CreateProcessAsUser 启动您的进程......下面是代码

HANDLE hToken;
HANDLE hTokenDup;
DWORD dwUIAccess = 1;

OpenProcessToken(GetCurrentProcess(), TOKEN_DUPLICATE, &hToken);
DuplicateTokenEx(hToken, MAXIMUM_ALLOWED, NULL, SecurityIdentification, TokenPrimary, &hTokenDup);

// enable UIAccess
SetTokenInformation(hTokenDup, TokenUIAccess, &dwUIAccess, sizeof(dwUIAccess));

// medium integrity sig
ConvertStringSidToSid(L"S-1-16-8192", &pSid);

TOKEN_MANDATORY_LABEL tml = { 0 };

tml.Label.Attributes = SE_GROUP_INTEGRITY;
tml.Label.Sid = pSid;

// set medium integrity
SetTokenInformation(hTokenDup, TokenIntegrityLevel, &tml, sizeof(tml) + GetLengthSid(pSid));

FreeSid(pSid);

CreateProcessAsUser(hTokenDup, pathToExe, NULL, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi)

希望这有助于...

关于c++ - 带拖放的 UIAccess,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48354152/

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