我正在使用 cmd 中需要的参数运行 mysqldump.exe,一切正常。
然后,突然间,它开始给我一个弹出窗口“不是有效的 win32 应用程序”,并且在控制台中显示“访问被拒绝...”
这是什么原因造成的?
提前致谢。
最佳答案
原因 如果服务的可执行文件的路径可能会出现此问题 包含空格。
当Windows启动一个服务时,它会从左到右解析服务的路径。如果以下两个条件都为真:
- 服务的可执行文件路径包含空格。
- 您计算机硬盘上的文件或文件夹与服务可执行文件路径中的文件或文件夹同名。
Windows 可能会找到并尝试在找到之前运行该文件或文件夹 并运行该服务的可执行文件。
例如,如果服务的可执行文件路径是
C:\Program Files\MyProgram\MyService.exe
,如果一个名为
C:\Program
也存在于您的硬盘上,Windows 找到了 C:\Program
C:\Program Files\MyProgram\My
Service.exe
文件,然后尝试运行它。 决议 警告:如果您不正确地使用注册表编辑器,可能会导致严重的问题,可能需要您重新安装操作系统。 Microsoft 不能保证您可以解决因注册表编辑器使用不当而导致的问题。使用注册表编辑器需要您自担风险。 要解决此问题,请在以下值两边添加引号 Windows 注册表,其中是服务的名称:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\<ServiceName>\ImagePath
ImagePath 值包含另一个可用的文件 服务。为服务的 ImagePath 值添加引号:
- 单击“开始”,然后单击“运行”。
- 在“打开”框中,键入 regedit,然后单击“确定”。
- 找到并单击以下注册表项,其中
<ServiceName>
是服务的名称:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\<ServiceName>
. 例如,如果服务名为 MyService,则找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MyService key
. - 在右 Pane 中,双击 ImagePath。
- 在“数值数据”框中,为服务的可执行文件的完整路径添加引号。
比如MyService服务的路径是
C:\Program
Files\MyProgram\MyService.exe
,更改值数据框中的条目 对于以下的 MyService 服务
"C:\Program Files\MyProgram\MyService.exe
"
6. 单击确定,然后退出注册表编辑器。/
因此,创建一个新文件夹并安装服务。
砰!有效。我有一个 C:\Web Dev\
我用于测试的文件夹和
Web 和开发人员之间的空间是问题所在。
关于MySQL 不是有效的 win32 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8911608/