草庐IT

shell-exec

全部标签

c++ - 覆盖 "Run as Administrator"的 COM shell 扩展在开始菜单搜索中失败

我正在使用COM服务器DLL覆盖Windows10中的“以管理员身份运行”。我通过在Computer\HKEY_CLASSES_ROOT\exefile\shell\runas\command注册表上将DLLGUID设置为DelegateExecute来实现此目的key。我创建了32位和64位版本的CLSID条目(如InprocServer32)。这在大多数情况下工作正常。在资源管理器中右键单击exe文件并以管理员身份运行被委托(delegate)给DLL,如果安装程序试图以提升的权限启动,它会被委托(delegate)给DLL,右键单击开始菜单项被委托(delegate),等等。唯一

windows - 从 WOW64 启动 Shell 链接 (LNK)

我们的32位应用程序通过ShellExecute启动WindowsLNK文件(Shell链接)。当它尝试“启动”一个指向64位二进制文​​件的链接(例如“开始”菜单中的“InternetExplorer(64位)”快捷方式)时,它总是以启动32位二进制文​​件告终。在内部,ShellExecute错误地解析了链接目标:LNK中有一个隐藏字段,其中包含FOLDERID_ProgramFiles。64位应用程序将此解析为64位程序文件目录,但32位应用程序不会。Wow64DisableWow64FsRedirection不会改变ShellExecute的这种行为。除了通过64位“蹦床”过程

.net - 添加到 Windows Shell 扩展上下文菜单

我读过这些:AddingitemtotheDesktopcontextmenuinWindowshttp://www.informit.com/articles/article.aspx?p=169474http://msdn.microsoft.com/en-us/library/bb776852(VS.85).aspx但是我找不到关于如何创建上下文菜单项的最新和直接的信息。我确定它在msdn的某个地方,但我找不到它。谢谢。 最佳答案 有一个article在TSS上。 关于.net-添

python - 在 Windows 上,如何使用 Python 2.7 子进程保护 shell 脚本的参数?

例如考虑以下Python代码:subprocess.call([r'.\tst.bat','"1|2"'])为了保护“|”,我在tst.bat的参数周围加上了双引号从shell因为tst.bat最终将通过Windowsshell运行。但是,如果参数中有双引号,Python2.7中的subprocess会将它们转义。结果是tst.bat收到这个参数:\"1|2\"。我如何转义参数“1|2”,使其不经转换就传递给tst.bat? 最佳答案 在为call方法提供参数列表的情况下,Windows上的子进程模块transforms使用list

c# - 测试/调试 Shell Extension & Regasm & explorer.exe

我使用.NET4.0在C#中成功创建了一个shell扩展(准确地说是一个上下文菜单处理程序)。我使用Regasm注册扩展,然后再次使用Regasm注销扩展。整个过程非常有效。不过我遇到了一个问题:explorer.exe在测试后不会释放我的DLL。我不能删除它,而且我不能在没有VS提示的情况下进行另一个构建。为了释放DLL,我唯一能做的就是重新启动explorer.exe。这就是我的问题:如何在进行过程中进行测试,而不必每次都经历整个过程?我也非常感谢有关加快测试/调试过程的任何提示。编辑:我在我的项目属性中找到了注册COMInterop选项。它确实加快了调试过程,但我仍然遇到expl

PHP exec导致程序崩溃

我正在使用一个名为DoItAgain的程序,它是一个鼠标记录器。我正在尝试从我的php脚本启动它的快捷方式。当我将它作为独立程序运行时似乎一切正常,并且未设置为必须由管理员运行-仍然当我从我的php页面启动它时,我得到窗口弹出窗口说程序已经崩溃。“DoItAgain.exe遇到问题需要关闭。对于给您带来的不便,我们深表歉意。”这不是程序,而是我代码中的一些东西:$command='C:\\xampp\htdocs\poster\dia\\Monty_20.dia';exec($command);我也尝试了以下但得到了窗口弹出错误:“应用程序无法正确启动”$command=('START

windows - 在 Windows 注册表项 Shell\Open\Command 中指定当前目录

我已将文件扩展名与我的程序相关联。在Windows注册表中,这显示为HKCR下的一个键,看起来像这样:shell\open\command(Standard)"c:\blabla\MyProgram.exe""%1"当我双击具有适当扩展名的文件时,我的应用程序将以文件的完整路径名作为参数启动。这正是我想要的,所以很好。另外,程序的当前目录设置为我点击的文件目录。这不是我想要的;那么有什么方法可以指定另一个目录应该用作当前目录而不是单击文件的容器?(我意识到我可以使用适当的当前目录向我的程序添加一个参数,然后让程序切换到该目录;我只是想知道是否有我不知道的标准方法来执行此操作。)

php exec() 挂起

我在IIS7上运行php5.2.0。在这个环境中,我尝试使用phpexec方法创建一个进程,如下所示。exec("background_processes\process_sePos_report.bat)它在一段时间内运行良好,但随后cmd.exe进程在服务器中挂起。在服务器重新启动之前它不会执行任何操作。我也根据下面的错误更改了代码,但问题没有解决。https://bugs.php.net/bug.php?id=44942有人可以帮我解决这个问题吗。谢谢 最佳答案 如果您知道.bat应该完成的时间限制,您可以使用set_time

c++ - 与 shell 脚本不同,批处理文件不可执行吗?

我正在使用boost.process来运行带有一些给定输入的外部进程。用户可以指定该外部进程。所以大多数时候用户指定一个shell脚本或批处理脚本。我只是在做boost::process::launch(_script,arguments,context);它既适用于真实的可执行文件,也适用于shell脚本,只要它们是可执行的(+x)预期的。但是当我在Windows中运行它时。如果我在_script中传递一个批处理文件,它不起作用,但是如果我指定一个真正的可执行文件,它就可以工作。这让我觉得在Windows中批处理脚本根本不是可执行文件?它们只是通过cmd.exe进行解释!这是真的吗?

windows - 如何以管理员身份在 rake 任务中运行 shell 命令?

我有一个简短的.cmd文件,我想在我的部署过程中运行它。不幸的是,.cmd文件需要管理员权限。是否可以从rake中获得管理员权限,或者我是否需要以管理员身份启动shell? 最佳答案 你可以试试runas命令。我不知道你的rake任务是什么样的,但如果你正在运行Kernel#system,试试task:foodosystem"runas/profile/user:#{ENV["COMPUTERNAME"]}/Administratormybatchfile.cmd"end唯一的问题是,runas会在shell中提示输入凭据。因此,您