一个程序向另一个程序发送命令要求后者关闭怎么做?

kmzs 2004-06-21 10:00:13
注意:
1、不能直接结束进程
2、由于两个程序都是自己做的所以源代码必要时都可以改,所以需要两个程序互相配合才能达成目的的方法、代码也可以给我
3、不用互相关,只要甲程序要求乙程序关闭,乙在处理完一些工作(如提示用户保存文件等,放开引用的一些dll)然后关闭就可以了
...全文
400 35 打赏 收藏 转发到动态 举报
写回复
用AI写文章
35 条回复
切换为时间正序
请发表友善的回复…
发表回复
memeng2003 2004-09-02
  • 打赏
  • 举报
回复
CsdnRob 2004-07-02
  • 打赏
  • 举报
回复
new.sys不是系统文件,用任务管理器停止此进程,然后删除c:\winnt\system32\的new.sys文件,并用msconfig在启动项内取消此选项前的勾(2000没有msconfig.exe,请从98或XP系统内拷贝此程序到winnt目录下即可使用)!!!
熊孩子开学喽 2004-06-26
  • 打赏
  • 举报
回复
能用VB自己带的功能作到的事为什么都要用API呢?至少用VB自带的功能更可靠啊。
我自己就是用上面说的那种DDE的方法。代码并不多呀。
rainstormmaster 2004-06-26
  • 打赏
  • 举报
回复
//但是按照pigpag的方法,还是这能得到一个副本的窗口,这个程序又不能只让它启动一次。。。

用我的方法,启动一个副本就追加一次数据
kmzs 2004-06-26
  • 打赏
  • 举报
回复
//能用VB自己带的功能作到的事为什么都要用API呢?至少用VB自带的功能更可靠啊。
//我自己就是用上面说的那种DDE的方法。代码并不多呀。

VB的DDE和API用的都是Windows的子系统无所谓哪个可靠。
kmzs 2004-06-26
  • 打赏
  • 举报
回复
//能用VB自己带的功能作到的事为什么都要用API呢?至少用VB自带的功能更可靠啊。
//我自己就是用上面说的那种DDE的方法。代码并不多呀。

VB的DDE和API用的都是Windows的子系统无所谓哪个可靠。
pigpag 2004-06-25
  • 打赏
  • 举报
回复
看大不懂了……
pigpag 2004-06-25
  • 打赏
  • 举报
回复
可以用FindWIndowEx枚举
kmzs 2004-06-25
  • 打赏
  • 举报
回复
但是按照pigpag的方法,还是这能得到一个副本的窗口,这个程序又不能只让它启动一次。。。
kmzs 2004-06-25
  • 打赏
  • 举报
回复
如果存在许多ucinheviusbovfueobdfvca都能得到吗?还是只有一个,或者用循环。。。
kmzs 2004-06-24
  • 打赏
  • 举报
回复
//一个办法是在乙程序初始话时,将其窗口句柄保存在一个地方(临时文件、内存)中,然后,用甲程序读出数据

我这个倒霉的程序估计只能用这种方法试一试
kmzs 2004-06-24
  • 打赏
  • 举报
回复
//kmzs(.:RNPA:.山水岿濛) 怎么混到一星的?这个连我都知道,虽然我没有做过什么VB程序 :-)

直到就说呀,快说。。。。。。
BlueBeer 2004-06-24
  • 打赏
  • 举报
回复
看看这个小例子对你有没有帮助~
仍然是用DDE,是两个程序之间的通讯例子~

'新建工程,窗体上放一个Text1
'Form1的LinkMode设为1,LinkTopic设为FormDDE
Private Sub Form_LinkExecute(CmdStr As String, Cancel As Integer)
If Len(CmdStr) Then Text1.Text = CmdStr
Cancel = 0
End Sub
'生成EXE为Test1.exe
'===========================================
'再新建工程,窗体上放一个Text1
'Form1的LinkMode设为1,添加代码
Private Sub Text1_Change()
With Text1
.LinkTopic = "工程1|FormDDE"
.LinkMode = 2
.LinkExecute Text1.Text
End With
End Sub
'生成EXE为Test2.exe
'===========================================
'分别运行Test1和Test2
'在Test2的文本框中输入内容,Text1的文本框中将出现相同内容
pigpag 2004-06-24
  • 打赏
  • 举报
回复
这么小的通讯量没有必要用DDE
pigpag 2004-06-24
  • 打赏
  • 举报
回复
就SendMessage过去好了。

创建一个隐藏的窗口,标题为ucinheviusbovfueobdfvca

然后另一个程序用FindWIndow去找ucinheviusbovfueobdfvca,找到了就发送WM_CLOSE,然后ucinheviusbovfueobdfvca就会有Unload事件。你在Unload里面放上处理代码不就可以了。

这样做最简单了~
tmanje 2004-06-23
  • 打赏
  • 举报
回复
呵呵,这个帖子的提问者和回答者,除我之外都是CSDN上的重量级人物.是我至今为止,看到的阵容最强大的一帖.
少见!少见!
ColdMooon 2004-06-23
  • 打赏
  • 举报
回复
sendmessage(hwnd,wm_close,0,0)
ColdMooon 2004-06-23
  • 打赏
  • 举报
回复
不会吧,肯定是什么地方没说清楚.
kmzs怎么也是一星的人了,不会连这个都不知道吧.
kmzs 2004-06-23
  • 打赏
  • 举报
回复
sendmessage发送一条wm_close消息?怎么做法???
viena 2004-06-23
  • 打赏
  • 举报
回复
//sendmessage发送一条wm_close消息?怎么做法???
//hwnd怎么得到?

kmzs(.:RNPA:.山水岿濛) 怎么混到一星的?这个连我都知道,虽然我没有做过什么VB程序 :-)
加载更多回复(15)

1,486

社区成员

发帖
与我相关
我的任务
社区描述
VB API
社区管理员
  • API
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧