两个delphi程序都编译成exe文件,可以利用ShellAPI来实现调用,shellapi函数可以传递一个参数,但如何传递两个以上参数?还有,被调用的程序如何获取这些参数??

解决方案 »

  1.   

    你可以这样写另一个要执行的程序阿,
    a.exe /p /a之类的,
    在project单元中,用ParamsCount来访问参数的数量,用Params[]来访问各个参数
      

  2.   

    能写详细一点吗?被调用的程序中在哪里可以访问这些参数?在dpr文件?还是在mainform?
      

  3.   

    可以通过剪贴板,或者内存文件映射,不过建议使用wm_copydata消息来实现,需要的编程不多
      

  4.   

    Delphi中有两个函数:
    ParamStr(Index:Integer):String、ParamCount:Integer;
    就可以列出所传入的参数,这样当程序A用ShellAPI调用B时,你将字符串参数传递给B,就可以在B中用上两个函数取得参数了.
    如果还不清楚,在Delphi帮助文件中查command line utilities
      

  5.   

    进程间本来是不能通信的,可以用com的接口实现进程间通信。
    也就是一个out of process AutoMation服务器端,一个服务器控制端
      

  6.   

    嗯,参数传递过来了。但是如何用ShellExecute传递超过两个参数?param字段只可以传递一个参数。
      

  7.   

    哦,解决了。原来param是参数字符串,参数与参数之间可以用空格分隔。
    谢谢大家。
      

  8.   

    哎呀,不好意思,还有一个问题,就是能不能在调用另一个程序后又接收这个程序运行后的结果呢?比如说A程序调用B程序,B程序接收A程序传递过来的参数,经过运算或者业务处理,用户提交后,B程序关闭,同时A程序接收B程序运行的结果。这个过程能实现吗?如何实现?