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

我正在做一些构建自动化,并希望从我正在使用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,'C:\windows\notepad.exe',sw_Shownormal );

工程文件打开记事本.

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

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

产生与上述相同的错误.

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

ShellExecute( Handle,'C:\Program Files\Borland\Delphi7\Projects\',sw_Shownormal );"

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

有多个错误,但一个示例是

我做错了什么?

解决方法

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

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

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

相关文章

 从网上看到《Delphi API HOOK完全说明》这篇文章,基本上都...
  从网上看到《Delphi API HOOK完全说明》这篇文章,基本上...
ffmpeg 是一套强大的开源的多媒体库 一般都是用 c/c+&#x...
32位CPU所含有的寄存器有:4个数据寄存器(EAX、EBX、ECX和ED...
1 mov dst, src dst是目的操作数,src是源操作数,指令实现的...