在新实例中打开SAS程序

时间:2014-07-22 21:26:43

标签: sas ole

我试图找出一种在默认情况下点击时在增强型编辑器的新实例中打开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文件时 type,sasoact.exe检查SAS的现有OLE自动化会话是否正在运行。如果没有,它会调用一个 SAS的OLE自动化会话。一旦有活跃 SAS自动化服务器会话,任何进一步的呼叫 sasoact.exe由现有的SAS会话而不是新的会话处理 SAS会议。

我想只有一个OLE会话在某种程度上是有用的,但是当你每次想要运行多个作业时必须手动打开一个新的EE实例时,它真的很烦人。更不用说sasoact针对第一个会话发起,如果一个作业已经在该会话上运行,那么你的程序就不会打开了。

有没有办法直接请求OLE会话的新实例,或者"技巧" 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中添加了它,所以现在我在下拉菜单中有一个简洁的额外选项,可以在新会话中有效地打开程序点击

More sessions!

1 个答案:

答案 0 :(得分:0)

显示使用批处理文件在新会话中打开SAS程序的类似线程here

如果您想在新会话中打开.sas程序,只需点击此处的程序即可:

您必须在注册表中添加一个条目。在弄乱注册表文件时要小心,始终备份您的条目。

打开注册表编辑器(WIN + R> regedit) 在目录HKEY_CLASSES_ROOT\SAS.Program.701\shell\中创建一个具有有意义名称的子目录(右键单击shell> New> Key)。我把我的名字命名为“Open New”。在这个新的子目录中创建另一个名为command的子目录。您现在应该有一条看起来像这样的路径:
    HKEY_CLASSES_ROOT\SAS.Program.701\shell\Open New\command
在这里,右键单击右侧注册表文件上的文件>修改并在“数值数据”字段中添加以下内容(如果需要,请更改sas.exe的路径)

"C:\Program Files\SAS\SASFoundation\9.2(32-bit)\sas.exe" -NOTUTORIALDLG -initstmt "dm 'whost;include ''%1'' ';"

关闭编辑器。您现在应该在右键单击.sas程序的下拉菜单中指定新选项:

enter image description here

此选项将在新的SAS会话中使用增强编辑器打开您的程序。

现在,如果您希望双击工作,我想您必须将Open子目录中的值替换为上面的值。我没有这样做,我不推荐它,下拉菜单中的额外选项对我来说已经足够了。