我正在尝试执行以下操作。它工作但cmd窗口等待acrobat.exe在退出之前完成执行。我必须使用这种启动方法,因为我打算将来传递某些命令行参数。
cmdLineString := Format('/c ""%s" "%s""',['C:\Program Files (x86)\Adobe\Acrobat 11.0\Acrobat\Acrobat.exe', 'F:\Android-interview\Packt.Android.3.0.Application.Development.Cookbook.Jul.2011.ISBN.1849512949.pdf']);
ShellExecute(Handle, 'open', 'cmd.exe', PChar(CmdLineString), nil, SW_SHOWNORMAL);
答案 0 :(得分:5)
有很多方法可以改善这一点:
ShellExecute
。这样做很诱人,因为打电话很简单。但是,它不是很灵活。请改用CreateProcess
。 CREATE_NO_WINDOW
标记传递给CreateProcess
。 cmd
。您无需创建创建其他流程的流程。实际上这样做会使传递参数变得更加困难。直接创建Acrobat进程。剪出中间人。 答案 1 :(得分:0)
正如大卫回答的那样,在关注if (m.matches()) {
// after do below command. I think is always false due to nothing happend
editText.setFocusable((!editText.isFocusable()));
// below comands makes that afther first click in log is true, after second click false and it repeats.
Log.e("isFocusable",String.valueOf(!editText.isFocusable()));
return true;
} else {
editText.setError("BlaBla Error");
editText.setFocusable(true);
return false;
}
之后的其他一些问题时,解决方案代码最终如下所示。像其他像我这样的初学者。只要想想这段代码可以做到的一切!谢谢Delphi。
CreateProcess