VFP9 SP2 从命令窗口运行的代码非常简单。这是在我的个人工作站上。我是“一切”/管理员。无论是我从互联网上下载的 pdf(例如小册子)还是我创建的 pdf,都没有关系。我可以通过从文件资源管理器中双击 pdf 文件来打开它。
VFP 始终返回错误代码 5。
DECLARE INTEGER ShellExecute IN shell32.dll ;
INTEGER hndWin, ;
STRING cAction, ;
STRING cFileName, ;
STRING cParams, ;
STRING cDir, ;
INTEGER nShowWin
?ShellExecute(0,"open","c:\users\jcook\desktop\TLBK460BT.pdf","","",1)`DECLARE INTEGER
谢谢, 约翰
引自https://learn.microsoft.com/en-us/windows/win32/api/shellapi/nf-shellapi-shellexecutea:
SE_ERR_ACCESSDENIED:操作系统拒绝访问指定文件。
所以你的错误代码常量可能看起来像
#DEFINE SE_ERR_ACCESSDENIED 5
我在一个客户的 ws 上使用 Adobe Reader 作为默认 pdf 查看器处理了这个问题 - 跳过“为什么” - 这对我有用:
oshell = Createobject('wscript.shell')
oshell.run('c:\users\jcook\desktop\TLBK460BT.pdf')
更新: 尝试在配置中禁用“保护模式”并使用 shellexecuteex():https://community.adobe.com/t5/acrobat-discussions/how-to-fix-access-denied-when-printing-pdfs-using-createprocess -无禁用保护模式/m-p/12936605?profile.language=es