相关疑难解决方法(0)

如何在C#中确定进程的所有者?

我正在寻找名为"MyApp.exe"的进程,我想确保获得特定用户拥有的进程.

我使用以下代码获取进程列表:

Process[] processes = Process.GetProcessesByName("MyApp");
Run Code Online (Sandbox Code Playgroud)

这给了我一个进程列表,但是在Process类中似乎没有办法确定谁拥有该进程?有关如何做到这一点的任何想法?

.net c# process

41
推荐指数
3
解决办法
5万
查看次数

Windows 7和Vista UAC - 以编程方式请求C#中的提升

我有一个程序,在极少数情况下只需要提升到Admin,所以我不想设置我的清单以要求永久性提升.

我怎样才能在我需要时以编程方式请求提升?

我正在使用C#

c# uac windows-vista windows-7

22
推荐指数
1
解决办法
2万
查看次数

获取与桌面关联的登录Windows用户名

我希望枚举系统中的所有桌面并获取该桌面的登录用户名.到目前为止,我有以下代码snippit作为获取HDESK句柄并尝试确定与其关联的用户名(如果有)的示例,但对LookupAccountSid的调用失败,ERROR_NONE_MAPPED("帐户名和安全ID之间没有映射是完成").

HDESK desk = OpenDesktop( "Default", 0, FALSE, READ_CONTROL | DESKTOP_READOBJECTS );

DWORD size = 4096;

SID * sid  = (SID *)malloc( size );

GetUserObjectInformation( desk , UOI_USER_SID, sid, size, &size );

char name[512], domain[512];
int namesz = 512, domainsz = 512;

LookupAccountSid( NULL, sid, &name, &namesz, &domain, &domainsz, &s);
Run Code Online (Sandbox Code Playgroud)

这可能是因为我通过GetUserObjectInformation而不是用户SID提取登录SID.如果可以,我可以将其转换为登录用户SID?

任何人都可以指出我正确的方向来获取任意桌面的登录用户名(通过它各自的HDESK或HNWD手柄,甚至是台式机的HWINSTA手柄)?提前致谢.

c windows winapi desktop

7
推荐指数
1
解决办法
3517
查看次数

标签 统计

c# ×2

.net ×1

c ×1

desktop ×1

process ×1

uac ×1

winapi ×1

windows ×1

windows-7 ×1

windows-vista ×1