帮我看看这个代码有什么问题?关于改变当前窗口标题的程序。

YHW 2002-09-28 05:42:30
我想写一个程序,把当前窗口的标题最后加上几个字符。
可是写出来以后,只有我写的这个程序是当前窗口的时候运行有效果。
其他窗口是当前窗口的时候GetForegroundWindow老返回0。
不知道是什么原因。请各位高手帮我看一下。


procedure TForm1.Button1Click(Sender: TObject);
var
handle:integer;
title,right: string;
count,EditLong,TitleLong:integer;
begin
handle:=GetForegroundWindow;
TitleLong:=getwindowtextlength(handle);
setlength(title,TitleLong);
handle:=GetActiveWindow();
GetWindowText(handle,pchar(title),256);
EditLong:=length(edit1.Text);
right:=rightstr(title,EditLong);
if (TitleLong<EditLong) or (strcomp(pchar(right),pchar(edit1.text))<>0) then
begin
setwindowtext(handle,pchar(title+'-'+edit1.Text))
end;
end;
...全文
46 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
YHW 2002-09-29
  • 打赏
  • 举报
回复
我找到错误了,
放分
YHW 2002-09-29
  • 打赏
  • 举报
回复
我就是拿timer测试的了,当我的程序是当前窗口才能得到句柄,否则都得到一个0句柄,太奇怪了。 难道GetForegroundWindow只能得到进程内窗口的句柄?
我换getactivewindow也试验过了,照样不行。
上海老李 2002-09-28
  • 打赏
  • 举报
回复
你根本获得不了!因为焦点一转移,它就不能进行那些操作了!你用个TIMER控件测一下,按钮是不可能的!

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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