我正在做一些构建自动化,并希望从我正在使用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 );"
但这会产生相同的错误(这是预料之中的,因为上面的批处理文件示例没有固定的目录,并且在单击时运行正常)。
有多个错误,但其中一个示例是
我做错了什么?
答案 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