我们使用OracleForms10g client_host将文件复制到临时位置,启动应用程序查看临时文件,然后删除临时文件。在这种情况下,查看应用程序是Windows Internet Explorer。问题是,删除临时文件的delete_file调用是在IE可以启动以显示该文件之前调用的,这会导致IE出现错误,因为它找不到该文件。下面的代码片段显示了我们正在做的事情:
-- Copy the file to the site defined temporary location
client_host ('cmd /c copy '||Vcurrentfile||' '||Vtempfile);
-- Launch viewing application and display the temporary file
client_host (Pviewer||' '||Vtempfile);
-- Delete the temporary file
Vsuccessind := webutil_file.delete_file (Vtempfile);Client_host应该是模态的,所以在用户关闭IE窗口之前,不应该执行delete_file语句。但是,它似乎是在启动查看器的client_host调用完成之前执行的。有什么想法吗?
发布于 2011-12-13 21:59:23
CLIENT_HOST是与forms小程序相关的模式。表单应用程序将被阻止,直到CLIENT_HOST返回。在IE关闭之前,使用CLIENT_HOST调用IE不会阻止应用程序。但这是因为iexplore.exe是一个windows应用程序。windows应用程序会阻止调用方,直到进入事件循环。你可以在命令行中查看。输入呼叫,当IE显示时,您将得到提示。
如果你想打开一个网页,为什么不使用WEB.SHOW_DOCUMENT呢?
编辑:
尝试使用cmd /C start /W "C:\Programme\Internet Explorer\iexplore.exe“调用IE。启动/W会阻止调用者,直到windows应用程序真正关闭。
发布于 2013-04-04 00:05:25
我尝试了一下-它有效: webutil_host.blocking('"c:\programme\Internet Explorer\iexplore.exe“-k -noframemerging '||:URL)
有关这些参数的说明,请查看"IE命令行参数“。
https://stackoverflow.com/questions/8436885
复制相似问题