当前位置:首页
开发技术指南» 文章正文
    引言:
 

 

    摘要: 在asp中,有jsctrip也有vbscrip,我在jscrip中定义的变量,能在vbscrip中访问吗?或者在vbscript中定义的变量,能在jscript 中访问吗? ......
 ·servlet怎么部署在线等待    »显示摘要«
    摘要: 照http://www.roseindia.net/jboss/buildingwebapplicationwithant.shtml上写了个例子,把http://www.roseindia.net/jboss/anttutorialcode.zip中的ear文件copy到jboss的目录下,执行出错。 我的目录结构最后是:(在example2目录下) deploy example2.ea......


:几个菜鸟问题,请大侠帮忙解决,关于windows窗口句柄及消息处理的,内详,分多的是

1、如何在不知道窗口标题的情况下得到外部程序的句柄?  
  2、如果是MDI窗体的话,主窗体和子窗体是不是有不同的句柄啊?这样的话用getwindowrect得到的就是每一个具体的窗体的范围吧,如何得到整个外部应用程序的范围呢?  
  3、如何监视外部程序界面的变动,当外部程序的窗体变动时,将外部程序的界面截图存储?  
   
  以上最好给出示例代码,分数我目前怎么给不了高分啊,我会加,现在我有8000多分,可是不让我给,郁闷,解决后我会猛加

NO.1   作者: Drate

呵呵,小虫来了!  
  嘻嘻,同名的呀?  
   
  不过楼主真不好意思,你的这一堆的问题  
  现在真的是没有时间去帮你调试了,在这里就胡说一点点吧:  
   
  1、如何在不知道窗口标题的情况下得到外部程序的句柄?  
      如果得不到标题,你可以通过句柄的方法来得到它,但因为句柄是WINDOWS动态创建的,所以呢,我以为这个办法并不是太可靠,我认为还是用标题的办法比较好  
      就拿WORD来说,它的标题可能为“文档1-   Mirosoft   Word”,  
      呵呵,每个文档的格式都差不多,而且MS的所有窗口都差不多,所以,你只要的准了关键词“Microsoft   Word”就行了呀,你可以列举系统中的所有窗口,然后根据句柄得到标题,根据标题判断这个是不是WORD的窗口,如果是的话,你就要吧操作下一步了。。  
   
  2、如果是MDI窗体的话,主窗体和子窗体是不是有不同的句柄啊?这样的话用getwindowrect得到的就是每一个具体的窗体的范围吧,如何得到整个外部应用程序的范围呢?  
      如果想得到句柄是不是相同,我建议楼主用VC++6自带的工具SPY++去看一看窗口的句柄就可以得到结论了。。  
       
  3、如何监视外部程序界面的变动,当外部程序的窗体变动时,将外部程序的界面截图存储?  
      这个我以为最困难了,这就需要你用HOOK去监视系统有没有按键、鼠标事件发生,发生在哪个窗口上,如果有的话,那你就可以截图了,不过这样,你的系统8成会受不了的。。。  
 

NO.2   作者: Drate

http://free1.ripplehost.com/~rh978/book/1/1/53.html  
   
  上面一篇文章应该可以解决楼主的第一个问题  
   
  还有,对第二个问题的补充,我想楼主可以把整个屏蔽截下来就行了吧,何必费这么多的事呢?而且WORD的MDI方式,你并不好找它的整个应用程序窗口呀!  
   
  截屏的代码网上很多,就不需要我贴了吧。。

NO.3   作者: mengyun5005

下面是一个得到鼠标下的窗口的句柄,  
  鼠标移到什么上面就可得到什么的句柄  
  希望能给你一些思路,  
    procedure   TForm1.GetAWnd(var   Wnd:   hWnd;   var   WClassName:string;  
      var   WndText:string;   var   WndOwner:   hWnd);  
  var  
      classname:pchar;  
      text:pchar;  
      winPos:TPoint;  
  begin  
      GetCursorPos(winpos);  
      Wnd:=WindowFromPoint(WinPos);  
      GetMem(ClassName,225);为类名分配内存  
      GetMem(Text,225);为文本文字分配内本  
      GetClassName(Wnd,   classname,   225);得到这鼠标下控件的类名,  
      GetWindowText(Wnd,   Text,   225);得到文本文字  
      WndOwner:=GetWindow(Wnd,GW_Owner);  
      wclassname:=string(classname);  
      wndtext:=string(text);  
      FreeMem(className,0);  
      FreeMem(text,0);  
  end;  
  这只是一个过程,你可以相应改动就可达到你要的了

NO.4   作者: hot3000

//贴上一段   代码,   注意了   一定要uses   comobj   这个单元  
  unit   Unit1;  
   
  interface  
   
  uses  
      Windows,   Messages,   SysUtils,   Variants,   Classes,   Graphics,   Controls,   Forms,  
      Dialogs,   StdCtrls,ComObj;  
   
  type  
      TForm1   =   class(TForm)  
          Button1:   TButton;  
          Label1:   TLabel;  
          Edit1:   TEdit;  
          procedure   StartOrlinkToWord;  
          procedure   Button1Click(Sender:   TObject);  
      private  
          {   Private   declarations   }  
      public  
          {   Public   declarations   }  
      end;  
   
  var  
      Form1:   TForm1;  
   
  implementation  
   
  {$R   *.dfm}  
   
  {   TForm1   }  
   
  procedure   TForm1.StartOrlinkToWord;  
  var  
      V:Variant;  
  begin  
      try  
          V:=GetActiveOleObject(Word.Basic);//与已打开的word   当前激活的文档   相关联  
      except   //如果word   还没有打开   或   没有当前激活的文档   则引发异常  
          V:=CreateOleObject(Word.Basic);   //   打开word    
          v.filenew;   //新建   文档  
      end;  
      v.AppShow;   //显示word  
    //   v.filenew;    
      //   以下是对word   进行各种操作.   很多,   如下:  
        V.Insert(edit1.text)   ;   //向word   追加数据.  
  end;  
   
  procedure   TForm1.Button1Click(Sender:   TObject);  
  begin  
      StartOrLinkToWord;  
  end;  
   
  end.


    摘要: 我在程序中直接嵌入了一些sql语句,包括insert 和使用到insert操作的存储过程。后发现只要是使用了insert、delete、update语句就会造成数据库长时间的无响应,直到退出整个应用程序为止。请教高手此问题应如何解决。开发环境是pb 8加sql server。谢谢。 ......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE