草庐IT

c# - UAC 风格提升提示

我有兴趣在临时session中启动一个窗口,例如UAC提示的显示方式。一些人对这个概念有些兴趣,所以我想我应该在这里问一下。本质上,我们想要的是一个提升的窗口,例如UAC“您确定要”提示,但具有任意窗口。最终目标是防止窗口事件Hook和密码输入期间可能发生的各种其他问题。我快速浏览了UACAPI和其他一些地方,但没有什么特别有用的地方。显然,UAC提示以某种方式以某种方式提升到它们自己的桌面session,因此必须有一种方法以这种方式创建窗口。 最佳答案 您可以使用CreateDesktop创建桌面.您可以使用SwitchDeskt

windows - 通过网络运行的程序的管理员提升

我的应用程序的一小部分需要管理员权限(软件激活需要转到HKLM)。为此,我在需要管理员权限的按钮上绘制盾牌图标,单击时,我再次使用“runas”动词以适当的参数重新启动应用程序。这个效果很好!然而,现在恰好用户从网络共享执行应用程序。如果他们现在点击“管理员权限按钮”,他们会收到一条错误消息,因为网络驱动器没有为管理员映射,因此找不到可执行文件:-(解决这个问题的最佳方法是什么? 最佳答案 映射的驱动器与每个登录session一起存储,因此在提升后您将不再拥有它们。您可以将管理界面提取到另一个可执行文件中,并在list中将其标记为r

c++ - 非提升进程是否可以将文件复制到 protected 目录?

当它准备好复制文件时,它要求用户进行提升,我觉得没问题。需要进行复制的程序无法运行提升(它失去了许多重要的环境变量,我无法改变它的启动方式)。我的后备方案是让它生成一个具有提升的进程,该进程实际上执行文件复制,但我宁愿不必向我正在处理的内容添加另一个exe。 最佳答案 使用COMElevationMoniker实例化IFileOperationshell接口(interface),那么使用该接口(interface)完成的所有文件操作都将被提升,而无需提升调用进程,也不必创建单独的EXE/进程来处理文件访问。

c++ - 以提升的权限运行时如何正确检测网络驱动器

我正在开发一个需要在Windows上正确检测所有已用驱动器盘符的应用程序。为此,我使用了GetLogicalDrives()函数。此功能工作正常,除非用户以提升的权限启动我的应用程序(即,使用属于“管理员”组的帐户登录的用户并通过选择“以管理员身份运行”选项启动我的应用程序)。在这种情况下,GetLogicalDrives()无法检测到机器上映射的网络驱动器。问题的根本原因似乎是在这种情况下Windows并行运行2个用户session。我的应用程序在“提升权限”session中运行,而驱动器映射在“非提升”session中:https://support.microsoft.com/e

c# - 如何检测可执行文件是否需要 UAC 提升(C# pref)

如何检测可执行文件是否需要UAC提升?到目前为止,我有两个想法:可执行文件图标的图片识别,以检查UAC屏蔽图标是否在其上和维基百科的信息:http://en.wikipedia.org/wiki/User_Account_ControlitispossibletoprogrammaticallydetectifanexecutablewillrequireelevationbyusingCreateProcess()andsettingthedwCreationFlagsparametertoCREATE_SUSPENDED.Ifelevationisrequired,thenERRO

C++ REG_SZ 到 char* 并在没有提升权限的情况下读取 HKLM

所以我一直在尝试从注册表中获取REG_SZ值并将其存储为char*。环顾互联网后,这就是我想出的。问题是我得到的值不是存储在注册表中的值,我得到了一堆随机垃圾。我将如何正确获取该值?HKEYhKey;charvalue[256];//Openthekeyif(RegOpenKeyEx(HKEY_LOCAL_MACHINE,"HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\0\\",0,KEY_QUERY_VALUE,&hKey)!=ERROR_SUCCESS){return"";}//ReadthevalueDWORDdwType=RE

php - WampServer 上的 APC 没有性能提升

我在Windows工作站上工作,我在上面使用WampServer作为我的开发平台,编写然后在Linux上运行的PHP应用程序。我很习惯APC在Linux上,速度非常快,对我来说是必备的。但是,当我在Windows上使用它时,没有性能提升总是让我感到惊讶。这导致每页的生成时间接近1秒,例如,在严重依赖ZendFramework的应用程序上。大部分时间都花在解析PHP文件上(我通过对include()进行基准测试来验证这一点)。同样的应用程序在LinuxonMacOS上的运行速度可以提高10倍。扩展已正确加载:>var_export(extension_loaded('apc'));tru

java - 防止 jfx packager 的辅助启动器在 Windows 中触发 UAC/提升权限

我正在开发一个JavaFX应用程序,我希望它能自动更新。我正在使用JavaFXMavenPlugin并为每个操作系统构建本地包(JavaFXMaven插件使用javapackager):Linux、Windows和OSX。我正在使用最新的JDK8u74,因为它具有“辅助启动器”功能,这应该可以在我的包中捆绑多个native启动器。我在pom.xml中添加了两个启动器:com.zenjavajavafx-maven-plugin8.2.0MainAppMainApptrueapplication.jarAnotherAppAnotherApp因此,在Windows上,用户安装此JavaF

c# - 从提升的进程 C# 在非提升的浏览器中打开网页

几周来我一直在尝试从提升的进程运行非提升的Web浏览器,我尝试了各种方法,使用WinSaferApismentionedhere复制资源管理器token。以及其他各种都失败的技术。最后,我决定使用Microsoft的建议,即使用TaskScheduler来运行该应用程序。我使用了TaskSchedulerManagedWrapper,起初我尝试运行explorer.exe并将url作为命令传递,但这没有用,所以我创建了一个虚拟可执行文件,它将使用Process.Start启动该站点。这是我创建任务的方式:publicstaticvoidLaunchWin8BrowserThroughT

python - 在没有提升权限的情况下调用二进制文件

为了从Python请求UAC提升权限,当调用外部程序时,您可以这样做ctypes.windll.shell32.ShellExecuteW(None,"runas",my_binary_file_path,"",None,1)但是,假设您的Python脚本正在管理员权限下执行,您如何没有管理员权限调用外部程序? 最佳答案 我更喜欢的一种方法是以shell用户身份运行。首先打开shell进程并复制其token。您可以通过调用GetShellWindow然后调用GetWindowThreadProcessId来获取shell进程PID。