从VBA中打开命令提示符后,我无法使用msg工作,但是从Windows启动cmd.exe或“命令提示符”时已经certificate它可以工作。
我的VBA代码如下:
Sub test() Dim str_to_pass As String str_to_pass = "msg" Call Shell("cmd.exe /s /k " & str_to_pass,vbnormalFocus) End Sub
我的结果在命令提示符中:“msg”不被识别为内部或外部命令,…“
但是,如果我先打开命令提示符或cmd.exe,然后键入“msg”,则会显示如何使用msg的提示符。
批处理没有按预期工作检查具体文件中的更改
如何检查远程服务器上是否使用batch file打开端口,而不使用第三方软件?
在Windows命令行上基于Eclipse的应用程序输出仅在pipe道中可见(不直接在cmd中)
如何启动Cyberghost并select国家/地区IP地址,并通过Windows命令行在一段时间后自动更改IP地址?
那么,如何从vba访问命令提示符的这种可用性,以及为什么这些命令根据如何启动cmd.exe而有所不同?
在窗户上共享驱动器的统一
CreateProcess执行Windows命令
CMDer / ConEmu – 资源pipe理器当前目录位置
使用不同的进程名称执行batch file
互联网浏览器出口在CMD的好处
问题在于64位Windows指向32位应用程序的调用方式。 Windows有一个名为SysNative文件夹的虚拟文件夹,在从32位应用程序访问64位可执行文件时需要使用该文件夹来代替System32 。 这是一个很好的解释: http : //www.samlogic.net/articles/sysnative-folder-64-bit-windows.htm
代码需要是:
str_to_pass = "c:windowssysnativemsg" Call Shell("cmd.exe /s /k " & str_to_pass,vbnormalFocus)
这里是相关的MSDN页面: https : //msdn.microsoft.com/en-us/library/aa384187%28v=vs.85%29.aspx
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。