如何从Delphi XE编写的EXE文件中启动Delphi 7?

时间:2011-05-15 15:49:42

标签: delphi shellexecute

我正在做一些构建自动化,并希望从我正在使用Delphi XE编写的应用程序中运行Delphi 7 IDE。

我的Delphi 7 IDE位于:

'C:\Program Files\Borland\Delphi7\Bin\delphi32.exe'

还在做:

ShellExecute( Handle, 'Open', 'C:\Program Files\Borland\Delphi7\Bin\delphi32.exe', '', '', sw_ShowNormal );

最终进入Delphi 7 IDE,但只是在丢失了很多包错误之后。

这样做的:

ShellExecute( Handle, 'Open', 'C:\windows\notepad.exe', '', '', sw_ShowNormal );

工作文件打开记事本。

我还有一个名为'Delphi7IDE.bat'的批处理文件,当我点击批处理文件时打开Delphi 7,但是这样做:

ShellExecute( Handle, 'Open', 'C:\sys\batch\Delphi7IDE.bat', '', '', sw_ShowNormal );

产生与上述相同的错误。

我尝试使用我的Delphi 7菜单快捷方式中指定的directoy(即调用:

ShellExecute( Handle, 'Open', 'C:\Program Files\Borland\Delphi7\Bin\delphi32.exe', '', 'C:\Program Files\Borland\Delphi7\Projects\', sw_ShowNormal );"

但这会产生相同的错误(这是预料之中的,因为上面的批处理文件示例没有固定的目录,并且在单击时运行正常)。

有多个错误,但其中一个示例是this one

我做错了什么?

3 个答案:

答案 0 :(得分:3)

现在我想我明白了。德尔福7很老了。 Windows Vista(或7)是新的。 您正在以管理员身份运行delphi32.exe,为了兼容性,不是吗?也就是说,如果您右键单击delphi32.exe(或捷径),则表示您选择了“以“兼容性”选项卡中的“管理员身份运行此程序”。如果您以管理员身份运行delphi32.exe,一切都很好,但如果不这样做,则会在启动时收到所有这些错误。

现在,当您从Delphi应用程序ShellExecute delphi32.exe时,delphi32.exe 继承了 Delphi应用程序的权限。这很可能在没有任何提升权限的情况下运行,delphi32.exe也是如此。

解决方案:右键单击您的Delphi应用程序(例如Project1.exe),选择“兼容性”选项卡,然后单击“以管理员身份运行此程序”复选框。

答案 1 :(得分:2)

您可能错误地找到了工作目录。右键单击“开始”菜单上的“Delphi 7”图标,然后按Ctrl + C此快捷方式的工作目录。将此字符串用作Directory的{​​{1}}参数。

我没有任何Delphi 7系统可供试验,但在我的虚拟WIndows 95机器中,我安装了Delphi 4,确实有一个指定的工作目录:

Delphi 4 shortcut properties in Windows 95 http://privat.rejbrand.se/delphi4wd.png

答案 2 :(得分:1)

您可能会对此感兴趣:http://msdn.microsoft.com/en-us/library/ms682431(v=vs.85).aspx这里有一个关于如何使用该函数的Delphi示例:http://www.delphi3000.com/articles/article_4176.asp