在WINDOWS中程序需要被另外的一个EXE调用,请问程序启动时怎样知道是另一个EXE调用的?

cdimp 2004-10-24 11:16:24
在WIN系统中程序被另外的EXE调用,调用方式是用另外一个EXE文件中的菜单项调用,这个外部EXE有两个菜单来调用本程序,要求程序启动时对每个菜单的调用分别进相应的动作,请问程序启动时怎样知道是外部EXE调用的,怎样知道是哪个菜单选项调用的?能有相应的例子更好,谢谢.
...全文
167 13 打赏 收藏 举报
写回复
13 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
ghchen 2004-10-25
  • 打赏
  • 举报
回复
学习中.............
mestars 2004-10-25
  • 打赏
  • 举报
回复
让他们传个参数,总是可以的吧,他们不会这么不合作吧。
(要让咱干活总得给个消息吧,不然怎么干???)
DemonLoveLizzy 2004-10-24
  • 打赏
  • 举报
回复
如果2个菜单是以不同的参数来调用你的程序,那可以通过使用ParamStr和ParamCount函数接收参数来判断是通过哪个菜单调用了你的程序。但如果都是不带参数的调用,那就没办法了。
mestars 2004-10-24
  • 打赏
  • 举报
回复
呵呵,再次更正
Delphi调用该程序:
ShellExcute(handle, 'open', '程序名','menu1',nil,SW_NORMAL)
mestars 2004-10-24
  • 打赏
  • 举报
回复
更正:
Delphi调用该程序:
ShellExcute(handle, 'open', '程序名','menu1,nil,SW_NORMAL)
mestars 2004-10-24
  • 打赏
  • 举报
回复
你可以给你的程序加上参数处理,在程序启动时判断
if ParamCount>1 then
begin
if ParamStr(1)='menu1' then
ShowMessage('菜单1')
esle if ParamStr(1)='menu2' then
ShowMessage('菜单2')
else
ShowMessage('直接运行的');
end;
/////////////////////////////////////////////////////////////////////////////
Delphi调用该程序:
ShellExcute(handle, "open", "程序名","menu1",nil,SW_NORMAL)
VB调用:
ShellExecute Me.hwnd, "open", 程序名,"menu1", vbNullString, 1
masterjames 2004-10-24
  • 打赏
  • 举报
回复
用一个自定义消息吧
Kevin_Lmx 2004-10-24
  • 打赏
  • 举报
回复
用你的程序打开外部的EXE,并发送一个自定义的消息过去,然后在该EXE中重载WndProc,判断消息的来源,应该是可以的
DemonLoveLizzy 2004-10-24
  • 打赏
  • 举报
回复
你用ParamStr和ParamCount先各截一遍看看。如果截到的参数一样的话,那就木有办法了。
Bitter_fish 2004-10-24
  • 打赏
  • 举报
回复

GetCommandLine(),让那个程序调的时候传参数,如果他们不配合的话就骂他们。
cdimp 2004-10-24
  • 打赏
  • 举报
回复
当然是别人的程序(外部EXE程序是别的公司用DEPHI3开发的)调用我的程序了
dext 2004-10-24
  • 打赏
  • 举报
回复
首先要看你的被调用程序的来源了,是自己写的,还是别人写的!
cdimp 2004-10-24
  • 打赏
  • 举报
回复
这个外部EXE程序是别的公司用DEPHI3开发的(我不能要求他做什么啊),它用两个菜单项来调用我的程序,要求根据不同的菜单项我的程序启动时做相应的动作,大家有什么好的办法啊
相关推荐
发帖
Windows SDK/API

1177

社区成员

Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
帖子事件
创建了帖子
2004-10-24 11:16
社区公告
暂无公告