草庐IT

c - 如何检查指定用户是否是本地计算机上的管理员?

我想知道用户是否是PC上的管理员?我找到了执行此操作的代码片段,但我遇到了问题。这段代码的问题是,如果启动进程的用户是否具有管理员权限,则此函数将返回。但我想查询特定用户是否具有管理员权限。我能以某种方式做到这一点吗?这很重要,因为我的应用程序将在SYSTEM帐户下运行,因此它总是返回用户是管理员,但我想知道登录用户是否是管理员?代码片段:BOOLIsUserAdmin(VOID)/*++RoutineDescription:ThisroutinereturnsTRUEifthecaller'sprocessisamemberoftheAdministratorslocalgroup.

windows - 我如何知道我的 DLL 是如何加载的?

我的DLL如何检测它是隐式加载还是显式加载?示例MyTestDll.dlllibraryMyTestDll;usesSimpleShareMem,Windows,Dialogs;procedureDetectMethodDllLoad:bool;begin//?????//needtodetectloadingmethod-implicitorexplicitend;procedureMyTest;stdcall;beginifDetectMethodDllLoadthenShowMessage('WorkingProgram1(implicitdllload)')elseShowMe

windows - Windows 平台上的终端服务器/终端服务是什么?

我目前正在阅读一些WindowsAPI的MSDN描述,例如WTSEnumerateSessions,它有文字,例如...isused...onaTerminalServer和...requiresrunningTerminalServices但似乎没有解释所有“终端”的东西是什么以及我如何确保它确实在运行。我能确定每台WindowsXPSP3、Vista和Windows7机器都在运行这些终端服务吗? 最佳答案 终端服务是允许远程桌面session的Windows组件。通常,您有一个运行终端服务角色的Windows服务器。客户端,无论

windows - 是 C :\Users\Public\Documents writable to everyone by default? 中的目录吗

我希望我的安装程序在C:\Users\Public\Documents中创建一个对所有本地用户都可读可写的文件夹。这包括在那里创建文件/目录的权利,以及修改和删除所有现有文件/目录的权利。安装程序以管理员身份运行。我不必以编程方式为我的目录设置权限,对吗?我认为只需创建目录,它就会拥有正确的权限。我对XP、Vista和7下的行为很感兴趣。注意:我没有对路径C:\Users\Public\Documents进行硬编码,我正在从WinAPI查询CSIDL_COMMON_DOCUMENTS,它可以返回不同的值取决于机器和操作系统。例如在XP上它返回不同的路径。编辑:here's相关讨论。它指

c++ - c++ 中将 SID 转换为帐户用户名的最佳函数是哪个?

我有这样的用户帐户sidS-1-5-21-4030387420-2927818341-1631038489-1001我想要将此sid转换为用户名的简单c++函数。如果你们中有人有代码,请发帖提前致谢! 最佳答案 LookupAccountSid是你的friend-它需要一个SID并将其转换为用户名。警告,运行可能需要一些时间。如果您有一个包含SID的文本字符串(如上例所示),您可以使用ConvertStringSidToSid函数将字符串转换为二进制blob,然后可以由LookupAccountSid读取。

windows - SetDefaultItem 的作用是什么?

我只想知道DefaultItem的功能是什么,一般的MenuItem和它有什么区别,除了粗体...谢谢... 最佳答案 在MSDNMenuDocumentation中查找导致这个答案。Asubmenucancontainonedefaultmenuitem.Whentheuseropensasubmenubydouble-clicking,thesystemsendsacommandmessagetothemenu'sownerwindowandclosesthemenuasifthedefaultcommanditemhadbee

windows - 有没有办法检测 Windows 操作系统是服务器 (2003/2008) 还是工作站 (XP/Vista/Win7)?

我想知道WinApi检测Windows操作系统是服务器(2003/2008)还是工作站(XP/Vista/Win7)? 最佳答案 调用GetVersionEx得到OSVERSIONINFOEX信息并测试wProductType。 关于windows-有没有办法检测Windows操作系统是服务器(2003/2008)还是工作站(XP/Vista/Win7)?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.co

windows - Windows 64 位处理器上的最大进程大小是多少

在Windows机器上,一个进程在32位处理器上的最大大小是多少?在任何情况下,进程大小都可以超过4GB吗? 最佳答案 假设您在谈论虚拟内存大小,“进程大小”没有任何意义。32位进程在32位操作系统上最多可以占用2GB的地址空间。当一个32位进程使用/3GB启动选项启动并与/LARGEADDRESSAWARE链接器选项链接时,它可以在32位操作系统上占用多达3GB的地址空间。现在很少有此启动选项可用,尤其是视频适配器占用太多物理地址空间,无法为操作系统和文件系统缓存留出足够的空间。只要使用/LARGEADDRESSAWARE链接器选

windows - 在 Windows 上设置共享的远程 git 存储库的最快和最简单的方法是什么?

我刚刚加入了一个两人团队,如果我不能很快建立一个git存储库,我就有被要求使用SourceSafe的危险。我想避免任何网络服务器等设置,只使用共享文件夹,但是这方面的建议不是很清楚,也没有奏效。首先,我在共享文件夹中尝试“gitinit--bare”,这似乎有效,但我无法将此存储库克隆到本地存储库,因为我被告知那里不存在存储库。如果有人能给我明确的指导如何实现这一点,我将不胜感激。 最佳答案 以这种方式共享repo应该不会造成任何问题,这正是我们在这里的设置。请务必在提供存储库位置时指定斜杠,并且已在资源管理器中访问共享以防需要身份

c - #define NAME ((LPCSTR) 5) 是什么?

这行代码是什么意思?#defineNAME((LPCSTR)5)如果我定义了一个变量,NAME*tmp,然后像这样使用它:((LPCSTR)5)*tmp;这段代码有什么作用?注意:LPCSTR是typedef__nullterminatedCONSTCHAR*LPCSTR 最佳答案 这是一个简单的转换,它将5转换为字符指针(__nullterminatedCONSTCHAR*)这可能是标准未定义的行为,但有时会在现实生活中使用。寻址您机器上的特定物理地址-例如,内核必须执行此操作以配置卡、板载芯片等...要在参数或返回值中发送特殊值