tempad
Readygo技术搜索引擎 >>项目管理 >> 紧急,隐藏任务栏问题

紧急,隐藏任务栏问题

Readygo技术搜索引擎 网络搜索 efish 2008-1-17 4:58:45

紧急,隐藏任务栏问题

楼主zf4000(zf)2002-11-07 12:12:14 在 Delphi / VCL组件开发及应用 提问

问题:我安装了一个phptrial,在启动start   apache后,会出现个msdos窗口,而且这个窗口不能关闭,否则便不能启动php.  
  我想用delphi做个隐藏任务的程序,让这个窗口消失,在windowxp下可以,但是程序在98下运行便出现了问题。因为98下的窗口名字和xp下的不同,而且在98下,会存在两个名字为"apache"的dos窗口,其中一个不可见。我没办法了,只有请教了。源程序如下:  
  program   hidewindow;  
  uses  
      forms,Windows;  
   
  {$R   *.res}  
  var   i:integer;  
  begin  
    Application.Initialize;  
    Application.Run;    
    //看看apache窗口是否已经存在,不存在就运行apache+mysql    
    i:=findwindow(nil,"apache");  
    if   (i=0)   then  
    begin  
                  winexec("C:\Apache\mysql\bin\mysqld.exe   --  
                                standalone",sw_shownormal);//启动mysql  
                  winexec("C:\Apache\Apache.exe",sw_shownormal);//启动apache,完毕后  
  //会出现两个apache进程,可见的只有一个,以msdos窗口方式显示  
                  while   i=0   do  
                  begin  
                                  i:=findwindow(nil,"C:\Apache\Apache.exe");//问题出现了,  
  //这时系统中存在两个apache进程,其中一个不可见,但findwindow发现的并不一定是我  
  //想隐藏的窗口,  
                  end;  
                  //等待窗口初始化完毕  
                  while   (IsWindowVisible(i)=false)   do  
                  begin  
                  end;  
                  //隐藏窗口  
                  showwindow(i,sw_hide);  
    end;  
    winexec("c:\program   files\internet   explorer\iexplore.exe   http://localhost/medcine/",sw_shownormal);  
   
  end.  
   
   
  请问我该怎么办??? 问题点数:100、回复次数:11Top

1 楼DelUser(探索者)回复于 2002-11-07 12:21:44 得分 0

ShowWindow(Application.Handle,SW_HIDE);Top

2 楼zf4000(zf)回复于 2002-11-07 12:46:01 得分 0

application.handle只代表程序本身产生的句柄,但我要隐藏的是外部程序产生的窗口啊Top

3 楼zf4000(zf)回复于 2002-11-07 13:00:23 得分 0

急切等待中Top

4 楼yang6130(柳轻风)回复于 2002-11-07 18:40:54 得分 80

在WIN98下,不要用窗口标题找DOS窗口,最好用窗口类名找,因为每个DOS窗口的  
  类名都是一样,具体叫什么我忘记了,你可以用WinSight(WS.EXE)查一下,我以前做过类似,没问题的。  
   
  //这时系统中存在两个apache进程,其中一个不可见,但findwindow发现的并不一定是我  
  //想隐藏的窗口,  
  >>:可以用GetWindow(handle,HWND_NEXT)遍历窗口,用GetWindowText取窗口标题,IsWindowVisibleTop

5 楼gamaster(a明-非sql相关不回)回复于 2002-11-07 19:13:16 得分 20

procedure   TForm1.Button1Click(Sender:   TObject);  
  var  
      hwndclose:hwnd;  
      str:string;  
  begin  
      str:=edit1.text;  
      hWndClose   :=   FindWindow(nil,   PChar(str));  
      ShowWindow(hwndclose,SW_hide);  
  end;  
  其中edit中输入   你要隐藏窗口的   在任务栏中   显示的名字Top

6 楼gamaster(a明-非sql相关不回)回复于 2002-11-07 20:54:47 得分 0

我的方法难道不行  
  还不结贴????Top

7 楼zf4000(zf)回复于 2002-11-08 08:43:33 得分 0

正在尝试中,等,可以了一定结,谢谢Top

8 楼zf4000(zf)回复于 2002-11-08 09:57:59 得分 0

getwindow和gettopwindow怎么用啊?我运行时老是有错误Top

9 楼wanderung(※--※)回复于 2002-11-08 10:24:00 得分 0

handTray   :=   FindWindow(nil,   PChar(str));  
  ShowWindow(handTray   ,SW_hide);Top

10 楼wjlsmail(小脖领)回复于 2002-11-08 10:43:02 得分 0

StudyTop

11 楼zf4000(zf)回复于 2002-11-08 10:47:44 得分 0

终于搞定,原来如此  
  procedure   TForm1.Button1Click(Sender:   TObject);  
      var  
          hCurrentWindow:   HWnd;  
          szText:   array   of   char;  
          title:string;  
  begin  
      title:="C:\Apache\Apache.exe";  
      hCurrentWindow   :=   GetWindow(Handle,   GW_HWNDFIRST);  
      while   hCurrentWindow<>0   do   begin  
          if   GetWindowText(hCurrentWindow,   @szText,   255)>0   then  
              if   strPas(@szText)=title   then  
                  begin  
                      //showmessage(strPas(@szText));  
                        if   (IsWindowVisible(hCurrentWindow))   then  
                          title:=title+"可见";  
                      //showmessage(title);  
                      showwindow(hcurrentwindow,sw_hide);  
                  end;  
          hCurrentWindow:=getwindow(hCurrentWindow,gw_hwndnext);  
      end;  
  end;  
  不管有多少个窗口,只要标题等于=title,一概hide,tnnd,浪费我一天的时间,感谢yang6130(月明@沧海)   ,gamaster(a明)   .Top

责任编辑: efish 参与评论 查找更多:
相关文章
看书看到:run-time type check ,做何解? 看书看到:run-time type check ,做何解?
servers.exe servers.exe
请问如何从"byte[]"生成一个Image对象?J… 请问如何从"byte[]"生成一个Image对象?JDK版本1.2!
各位高手:在晚上睡觉时,有什么办法让被子不被踢掉… 各位高手:在晚上睡觉时,有什么办法让被子不被踢掉,这几天常被冷醒
请问大虾,为什么这两天我的QQ出现文件传输进来没法… 请问大虾,为什么这两天我的QQ出现文件传输进来没法响应?
无效的ProgID!!!! 无效的ProgID!!!!
捕获一个jsp页面里不同form的命令按钮事件 捕获一个jsp页面里不同form的命令按钮事件
我们学校的网上有很多的好东西,但是,他不给我下载… 我们学校的网上有很多的好东西,但是,他不给我下载,只给了链接。我如果想下载他的话,有什么办法可以做吗
有关sql查询分析器运行sql的问题? 有关sql查询分析器运行sql的问题?
关于sql中的日期问题 关于sql中的日期问题
2秒记住本站域名

玩过泡泡龙吗?Readygo?Go! 再加上.Com.Cn的后缀,那就是大名小顶的readygo.com.cn

分类导航
Readygo技术搜索引擎