起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 144|回复: 4

GetWindowText函数的问题

[复制链接]
发表于 2008-8-4 16:27:08 | 显示全部楼层 |阅读模式
目的是查找任务中的Excel进程然后将已启动的Excel嵌入到系统中来,在delphi下执行通过。但是在X3下面就没有达到想要的效果,跟了半天确认就是GetWindowText函数的问题。有什么办法解决?谢谢
===========================================
var
   openDialog:TOpenDialog;
   hCurrentWindow: HWnd;
  // szText: array of char;
   lcaption:String;
begin
   openDialog:=TOpenDialog.Create(nil);
   OpenDialog.Filter:= '*.XLS|*.xls';
   try
//   setlength(szText,255);
   if OpenDialog.Execute then
   begin
      hCurrentWindow := GetWindow(Handle, GW_HWNDFIRST);
      while hCurrentWindow <> 0 do
      begin
          if iswindowvisible(hCurrentWindow) then
          begin
            if GetWindowText(hCurrentWindow,lcaption, 255)>0 then
        // 跟踪lcaption,到这里报错,没有获得值,这句报读取内存完成部分
            begin
               if StringUtils.Pos('Microsoft Excel -',SysUtils.StrPas(lcaption)) >0 then
               begin
                 Borland.Delphi.Windows.SetParent(hCurrentWindow,Handle);
               end;
            end;
          end;
          hCurrentWindow:=GetWindow(hCurrentWindow, GW_HWNDNEXT);
      end;
   end;
   finally
      OpenDialog.Free;
   end;

截获消息.jpg

292.27 KB, 下载次数: 83

回复

使用道具 举报

 楼主| 发表于 2008-8-4 17:19:34 | 显示全部楼层

Re: GetWindowText函数的问题

关于在窗体中打开程序的后,不响应事件的问题。

截获消息.jpg

292.27 KB, 下载次数: 79

回复 支持 反对

使用道具 举报

发表于 2008-8-5 10:35:02 | 显示全部楼层
经确认,平台里不支持String作为WINDOWS API的返回值。
Borland.Delphi.Windows.GetWindowText(hCurrentWindow, lcaption, 500)
这句需要楼主封装一个函数,导入平台中使用。
回复 支持 反对

使用道具 举报

发表于 2008-8-12 16:30:56 | 显示全部楼层
楼主,还有问题吗?没有结贴了
回复 支持 反对

使用道具 举报

发表于 2008-9-19 08:45:42 | 显示全部楼层
结,有问题重新开帖
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-22 06:35 , Processed in 0.063262 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表