CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  基础类

关于程序调用的问题,在线等,急用

楼主sdmyhy(非典型流氓)2005-07-20 21:38:13 在 VB / 基础类 提问

手头上有两个程序A和B,其中B是A的附属程序,也就是说B不能独立打开,只有通过A中某按钮打开  
  我在B中写道  
  Private   Sub   Form_Load()  
    If   Command   <>   "abc"   Then  
      MsgBox   "该程序是附属程序,不能独立运行!",   vbOKOnly,   "提示"  
      End  
      Else  
    End   If  
  End   sub  
  请问怎样才能在A中成功调用B程序?  
  B已生成可执行文件!  
  问题点数:90、回复次数:10Top

1 楼sdmyhy(非典型流氓)回复于 2005-07-20 21:44:22 得分 0

还有一个问题,就是怎样在关闭A程序时同时关闭B程序,谢谢大家,急用Top

2 楼lsftest()回复于 2005-07-20 21:58:27 得分 15

你上面所说的问题倒不难解决....但你这办法有另外一个问题,就是要防止用户直接在命令行里用abc参数启动b程序..........Top

3 楼QQ576006(Ken)回复于 2005-07-20 22:02:41 得分 20

在A里调用B:  
  Shell(App.Path   &   "\IDImport.exe     ABC")Top

4 楼sdmyhy(非典型流氓)回复于 2005-07-20 22:07:30 得分 0

第一个问题解决了,可是怎样在关闭A的同时也关闭B呢?Top

5 楼HotUs()回复于 2005-07-20 22:24:25 得分 35

假设   b   的标题栏为   Form1  
   
  A里面      
  模块  
  Option   Explicit  
  Declare   Function   EnumWindows   Lib   "user32"   (ByVal   wndenmprc   As   Long,   ByVal   lParam   As   Long)   As   Long  
  Declare   Function   GetWindowText   Lib   "user32"   Alias   "GetWindowTextA"   (ByVal   hwnd   As   Long,   ByVal   lpString   As   String,   ByVal   cch   As   Long)   As   Long  
  Declare   Function   SendMessage   Lib   "user32"   Alias   "SendMessageA"   (ByVal   hwnd   As   Long,   ByVal   wMsg   As   Long,   ByVal   wParam   As   Long,   lParam   As   Any)   As   Long  
  Public   Const   WM_CLOSE   =   &H10  
  Private   Target   As   String  
   
  Public   Function   EnumCallback(ByVal   app_hWnd   As   Long,   ByVal   param   As   Long)   As   Long  
  Dim   buf   As   String   *   256  
  Dim   title   As   String  
  Dim   length   As   Long  
          length   =   GetWindowText(app_hWnd,   buf,   Len(buf))  
          title   =   Left$(buf,   length)  
          If   InStr(title,   Target)   <>   0   Then  
                  SendMessage   app_hWnd,   WM_CLOSE,   0,   0  
          End   If  
          EnumCallback   =   1  
  End   Function  
   
  Public   Sub   TerminateTask(app_name   As   String)  
          Target   =   app_name  
          EnumWindows   AddressOf   EnumCallback,   0  
  End   Sub  
   
   
  窗体  
   
  Private   Sub   Command1_Click()  
  Shell   Path   &   "b.exe   abc",   vbNormalFocus  
  End   Sub  
   
  Private   Sub   Form_Unload(Cancel   As   Integer)  
          TerminateTask   "Form1"  
  End   Sub  
   
  Top

6 楼sdmyhy(非典型流氓)回复于 2005-07-20 22:57:32 得分 0

TerminateTask   "Form1"  
   
  谢谢老大的热心帮忙,可这个不行啊,关键问题是B已经是个可执行程序了,再说B和A分别是两个工程啊Top

7 楼sdmyhy(非典型流氓)回复于 2005-07-21 11:47:53 得分 0

大家快来帮忙啊,我真的非常急用Top

8 楼HotUs()回复于 2005-07-21 12:53:28 得分 10

晕,我说的   "Form1"   是程序B   的窗口的标题栏Top

9 楼wangxuejun(计算机低手)回复于 2005-07-22 10:03:59 得分 10

HotUs是正解,不是告诉你将B运行后找出它的标题栏,将此标题栏字串写入A程序中的查找正在运行的进程的标题栏了吗。Top

10 楼sdmyhy(非典型流氓)回复于 2005-07-22 12:21:44 得分 0

我知道是标题栏,还是不行,你说的这个好像只能在98下起作用,我用的是2000Top

相关问题

  • 求救:怎样在JAVA中调用telnet程序?(急用!!)
  • 急!!!用delphi运行程序调用其他软件!
  • 怎样让附属程序只能让主程序调用而不被独立打开(急用,在线等,解决后马上给分)
  • 我如何用程序调用flash播放器来播放flash啊?急用啊!
  • 求教:windows程序中,如何在一个窗体中调用另外一个窗体中的事件?(急用,在线等待!)
  • (在线等急)用vb调用返回网卡地址
  • 程序中使用_stdcall调用习惯有什么限制?对程序有什么影响?急用!!!!!谢谢!
  • 程序调用
  • 程序调用!!
  • 调用程序

关键词

  • 程序
  • 急用
  • 标题栏
  • 调用
  • enumcallback
  • byval
  • 问题
  • app
  • 关闭
  • hwnd

得分解答快速导航

  • 帖主:sdmyhy
  • lsftest
  • QQ576006
  • HotUs
  • HotUs
  • wangxuejun

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo