Windows – 为什么CreateProcess给出错误193(%1不是有效的Win32
以下代码无法启动文档.我得到错误193(%1不是有效的Win32应用程序).启动可执行文件工作正常.
文件正确关联,双击时启动相应的应用程序. 我搜索了SO和其他地方的错误消息,创建处理内容等(例如 Why is CreateProcess failing in Windows Server 2003 64-bit? 我知道引用命令行. >这是Win7 64位VMWare虚拟机中的一个Delphi XE2(Update 4)Win32应用程序. 代码有什么问题?几乎好像我忽略了很明显的东西…. 提前致谢, 一月 procedure StartProcess(WorkDir,Filename: string; Arguments : string = ''); var StartupInfo : TStartupInfo; ProcessInfo : TProcessInformation; lCmd : string; lOK : Boolean; LastErrorCode: Integer; begin FillChar( StartupInfo,SizeOf( TStartupInfo ),0 ); StartupInfo.cb := SizeOf( TStartupInfo ); StartupInfo.dwFlags := STARTF_USESHOWWINDOW; StartupInfo.wShowWindow := sw_Normal; FillChar( ProcessInfo,SizeOf( TProcessInformation ),0 ); lCmd := '"' + WorkDir + FileName + '"'; // Quotes are needed https://stackoverflow.com/questions/265650/paths-and-createprocess if Arguments <> '' then lCmd := lCmd + ' ' + Arguments; lOk := CreateProcess(nil,PChar(lCmd),nil,FALSE,// TRUE makes no difference 0,// e.g. CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS makes no difference nil,// PChar(WorkDir) makes no difference StartupInfo,ProcessInfo); if lOk then begin try WaitForSingleObject(ProcessInfo.hProcess,INFINITE); finally CloseHandle( ProcessInfo.hThread ); CloseHandle( ProcessInfo.hProcess ); end; end else begin LastErrorCode := GetLastError; ShowMessage(IntToStr(LastErrorCode) + ': ' + SysErrorMessage(LastErrorCode)); end; end; procedure TFrmStartProcess.Button1Click(Sender: TObject); begin StartProcess('c:program files (x86)axe3','axe.exe'); // Works end; procedure TFrmStartProcess.Button2Click(Sender: TObject); begin StartProcess('d:','klad.xls'); // Fails end; procedure TFrmStartProcess.Button3Click(Sender: TObject); begin StartProcess('d:','smimime.txt'); // Fails end;
该错误的最有可能的解释是:
>您尝试加载的文件不是可执行文件. CreateProcess要求您提供可执行文件.如果您希望能够使用其关联的应用程序打开任何文件,那么您需要ShellExecute而不是CreateProcess. 读到底部的代码,我可以看到问题是数字1. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- windows – 当ICMP被阻止时ping https
- windows-xp – 如何更快地启动?
- windows-server-2003 – 用现有域中的新交换服务器(2010)替
- Windows API一日一练 69 GetTickCount函数
- 在WPF全屏应用程序中禁用虚拟触摸屏Windows键盘
- 为什么我的Emacs在Cygwin上运行Windows 7,总是创建崩溃转储
- active-directory – 编辑文件夹权限时Windows Server 2008
- windows-phone-7 – 在其保留页面的代码后面处理用户控制事
- 是否使用OCaml开发了Window Manager?
- 保护Windows VPS的最佳方法
- ZStack搭建私有云,创建windows server 2008云主
- windows – Active Directory的负载测试工具?
- windows – 文本’Extent’属性不包含正确的大小
- Windows PKI:如何导入,签署/发布和导出大量CSR?
- windows-server-2008-r2 – Win2k8R2获取DHCPv6地
- windows – “作为服务登录”实际上意味着什么?
- windows – 如何使用批处理文件执行任何.exe?
- windows – 如何使用批处理脚本创建其他脚本?
- VBox共享文件夹中的符号链接的Windows问题
- windows-server-2008 – 适用于Windows Server 2