草庐IT

c# - 如何在启动程序和禁用 UAC 时强制提示输入凭据?

背景我的应用程序(.NET、C#)执行应用程序内升级。根据安装配置,升级可能需要启动需要管理员权限的单独进程。已启动程序的list指定它需要管理员权限。这通常工作正常,但如果UAC被禁用,并且用户不是管理员,那么它就会失败。见下文。场景UAC已启用,用户是管理员-Windows提示提升权限,程序成功执行。UAC已启用,用户不是管理员-Windows提示输入凭据,程序成功执行。UAC已禁用,用户是管理员-无提示,程序成功执行。UAC已禁用,用户不是管理员-没有提示,程序启动但失败得很惨。这第四个场景是我想要解决的场景。我有一个相当大的客户公司,无论出于何种原因,它都有关闭所有公司PC上的

windows - 使用适用于服务运行的所有应用程序的 Windows 防火墙 API 创建规则

我正在尝试为Windows服务设置防火墙规则以拒绝所有入站和出站TCP和UDP连接,但使用Windows服务强化API的主机和端口白名单除外,遵循VBScript示例here.现在,此服务可能会产生新进程(因为它是持续集成构建和测试代理),因此仅设置NewOutboundRule.ApplicationName="%systemDrive%\WINDOWS\system32\svchost.exe是不够的"如上面的示例脚本所示-我需要一个规则来应用于服务运行的所有应用程序。但是,如果我尝试设置新的入站规则,其中未在INetFw上指定据称可选的ApplicationName属性接口(in

c# - 获取传递给新进程(不是当前进程)的 Windows 环境变量

如何获取通过开始菜单传递给新进程的完整环境变量集,而不是传递给我的进程的环境变量集?或者如何使用这组环境变量启动进程?(从技术上讲,我不需要在初始过程中访问它们)这些可以发散,例如,如果我的进程启动,然后用户使用环境变量GUI来修改它们。用例:我正在编写一个启动器实用程序,其行为类似于开始菜单,用于启动应用程序。一个合适的解决方案需要做到以下几点:获取机器和用户环境变量合并来自机器和用户的PATH变量(是否合并任何其他变量?)获取HOMEDRIVE、HOMEPATH、USERNAME、USERPROFILE以及System.Environment.GetEnvironmentVaria

c++ - 我应该怎么做才能使用新的命令提示符窗口获取新进程?

我有两个控制台应用程序,第一个运行第二个:1_第一个控制台应用程序:#include#include#includeusingnamespacestd;voidmain(){PROCESS_INFORMATIONobj1;memset(&obj1,0,sizeof(PROCESS_INFORMATION));STARTUPINFOWobj2;memset(&obj2,0,sizeof(STARTUPINFOW));obj2.cb=sizeof(STARTUPINFOW);CreateProcessW(_TEXT("c:\\runme.exe"),_TEXT("hellowhat'sup

c# - 创建一个不是创建进程的子进程的新进程

我正在开发一个应用程序,其中进程A的多个实例依赖于进程B的单个实例。我的想法是进程A的一个实例启动进程B,以便所有实例A的可以使用它。A的实例托管在第3方进程中,并且可以在不可预测的时间点拆除(通过终止进程树)。因此,进程B不是进程A的任何实例的子进程至关重要。我曾尝试使用PInvoke来调用CreateProcess,在创建标志中指定DetachedProcess(0x08),但这没有用(请参见下面的代码)。[DllImport("kernel32.dll")]privatestaticexternboolCreateProcess(stringlpApplicationName,s

python - 由 python 的子进程启动的进程不存在

我在win7中使用python的子进程运行一个“mstsc”程序:>>>importsubprocess>>>p=subprocess.Popen('mstsc')>>>p.pid8884但是,当我检查Windows的进程监视器时,'8884'进程并不存在,而另一个'mstsc'确实存在。所以我想知道'mstsc'在调用子进程时是否创建了另一个子进程。请帮忙? 最佳答案 嗯,我仍然是Python的新手,但你仍然可以通过这个。Popen类使用windows中的CreateProcess函数来执行子程序。CreateProcess函数创

python - 从 python 脚本启动一个新进程,然后从同一个脚本中终止它

我看过python的subprocess和os模块,但没能找到具体的例子。这是我想要做的一个例子:os.system(r"someprocess.exe")time.sleep(10)os.system(r"TASKKILL/F/IMsomeprocess.exe")当前在运行第一行之后,shell运行其中的进程,并没有继续前进。另一方面,我希望它产生一个独立于这个pythonshell的新进程,进入休眠状态,然后在一段时间后将其杀死。我在Windows机器上。 最佳答案 使用子进程。importsubprocessimportti

c++ - 如何在C/C++中创建一个新进程并在WinXp中获取这个新进程句柄?

我需要知道如何在C/C++代码中获取新创建进程的句柄。我对所有这些Microsoft库了解不多,我刚刚阅读了有关创建流程的两种方法。第一个是通过ShellExcecute调用,第二个是通过CreateProcess,但这些都没有重新生成句柄。我需要知道进程的句柄,因为我希望主线程在继续之前等待进程完成。最重要的是,我希望有人帮我编写一个如下所示的函数:HANDLEcreate_process(/*parameterssameasforShellExecute*/){...}请帮忙。 最佳答案 CreateProcess()返回包含进

java - Windows:启动一个隐藏的新进程(无窗口)

我想在Windows中不弹出任何窗口的情况下执行第3方程序(在我的例子中是VLC)。我正在将我的java程序作为Windows服务运行,它工作正常,但是当我使用Runtime.exec()启动VLC时,无论我做什么,都会弹出一个窗口。VLC的命令行参数会阻止GUI,但随后会弹出一个黑色控制台-也好不了多少。所以:知道如何从Java启动外部程序以便不显示可见窗口吗?(它在MacOSX中工作得很好,我认为Linux也一样)我知道有一种方法可以将libVLC直接集成到您的Java程序中,但该选项对我不起作用。 最佳答案 可能有比这更好的解

c++ - Windows Shell 扩展不调用初始化

我希望这里有人对可能导致此问题的原因有所了解。我已经为Explorer实现了几个COM扩展,它们提供了ShellIconOverlays和一个ContextMenu,并且覆盖效果很好。当我在桌面上单击时,上下文菜单工作正常,但是当我右键单击任何资源管理器实例时,我可以看到在调试器中查询的接口(interface)和正在生成的IShellExtInit实例,但在资源管理器中未调用初始化函数实例,但它在桌面上调用得很好,之后会立即查询ContextMenu项。这里有人以前见过这样的东西吗? 最佳答案 如果您正在调试shell扩展,您可能