关于网友提出的“ 在WINDOWS中程序需要被另外的一个EXE调用,请问程序启动时怎样知道是另一个EXE调用的?”问题疑问,本网通过在网上对“ 在WINDOWS中程序需要被另外的一个EXE调用,请问程序启动时怎样知道是另一个EXE调用的?”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: 在WINDOWS中程序需要被另外的一个EXE调用,请问程序启动时怎样知道是另一个EXE调用的?
描述: 在WIN系统中程序被另外的EXE调用,调用方式是用另外一个EXE文件中的菜单项调用,这个外部EXE有两个菜单来调用本程序,要求程序启动时对每个菜单的调用分别进相应的动作,请问程序启动时怎样知道是外部EXE调用的,怎样知道是哪个菜单选项调用的?能有相应的例子更好,谢谢.
解决方案1: 让他们传个参数,总是可以的吧,他们不会这么不合作吧。
(要让咱干活总得给个消息吧,不然怎么干???)
解决方案2: 学习中.............
解决方案3: 你用ParamStr和ParamCount先各截一遍看看。如果截到的参数一样的话,那就木有办法了。
解决方案4:
GetCommandLine(),让那个程序调的时候传参数,如果他们不配合的话就骂他们。
解决方案5: 如果2个菜单是以不同的参数来调用你的程序,那可以通过使用ParamStr和ParamCount函数接收参数来判断是通过哪个菜单调用了你的程序。但如果都是不带参数的调用,那就没办法了。
解决方案6: 你可以给你的程序加上参数处理,在程序启动时判断
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
解决方案7: 首先要看你的被调用程序的来源了,是自己写的,还是别人写的!
解决方案8: 用一个自定义消息吧
解决方案9: 用你的程序打开外部的EXE,并发送一个自定义的消息过去,然后在该EXE中重载WndProc,判断消息的来源,应该是可以的
以上介绍了“ 在WINDOWS中程序需要被另外的一个EXE调用,请问程序启动时怎样知道是另一个EXE调用的?”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/3593156.html