【发布时间】:2014-07-22 21:26:42
【问题描述】:
我正在尝试找出一种方法,在默认情况下单击时在增强编辑器的新实例中打开 SAS 程序。
之前的问题是asked,但没有运气。
This paper 描述了使用增强编辑器打开程序的方式。完整的命令是:
"C:\PROGRA~1\SASHome\SASFOU~1\9.3\core\sasexe\SASOACT.EXE" action=Open
datatype=SASFile filename="%1" progid=SAS.Application.903
作者解释说:
sasoact.exe 程序用于启动 SAS 的 OLE 自动化会话。 自动化 是一种机制通过 哪个 Windows 应用程序可以以编程方式控制另一个应用程序。双击 SAS 文件时 键入,sasoact.exe 会检查 SAS 的现有 OLE 自动化会话是否正在运行。如果不是,它会调用一个 SAS 的 OLE 自动化会话。一旦有活动 SAS 自动化服务器会话,任何进一步的调用 sasoact.exe 由现有的 SAS 会话处理,而不是在新的 SAS 会议。
我想只有一个 OLE 会话在某种程度上很有用,但是当您每次想要运行多个作业时都必须手动打开一个新的 EE 实例时,这真的很烦人。更不用说sasoact 的目标是启动的第一个会话,如果一个作业已经在该会话上运行,那么您的程序将不会打开。
有没有办法直接请求 OLE 会话的新实例,或者 "trick" sasoact.exe 看不到打开的会话?
[编辑] 太糟糕了,它被关闭为重复,因为答案与其他问题的答案大不相同。它还可以帮助不想从批处理文件运行程序的其他人。 这是有效的注册表项:
"C:\Program Files\SAS\SASFoundation\9.2(32-bit)\sas.exe" -initstmt "dm 'whost;include ''%1'' ';"
我在HKEY_CLASSES_ROOT\SAS.Program.701\shell\Open New\command 中添加了它,所以现在我的下拉菜单中有一个简洁的小额外选项,可以有效地在新会话中打开程序点击:
【问题讨论】:
-
查看 Vasja 在其他时候提出问题时的回答 - 应该可以解决问题 ;-)
-
嗯,我错过了那个。将尽快尝试。丹克
-
除非它确实有效,否则我很犹豫是否要关闭它;从 cmd 运行与双击有很大不同。
-
我会看看我是否可以添加一个指向批处理文件的注册表项并将其设为默认值,这将是一个复杂的解决方案,但它可能只是解决问题。
-
嗨@Pane - 如果这有一个解决方案......并且你的问题被重新打开。您能否将解决方案发布为答案?另外 - 你可能在那个阶段想要指出这个问题现在被标记为......这些明显相关,即使不是完全重复。