如何更改开始菜单的"开始"两字,可以移动,隐藏,就是改不掉这两个字,哪位高手帮帮忙。 《深度历险》里提过解决方法,可是我没有成功……是setwindowtext吧,记不清了…… 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 procedure TForm1.Button1Click(Sender: TObject);begin ShowWindow(FindWindowEx(FindWindow('Shell_TrayWnd', nil), 0, 'Button', nil), False);end;procedure TForm1.Button2Click(Sender: TObject);begin ShowWindow(FindWindowEx(FindWindow('Shell_TrayWnd', nil), 0, 'Button', nil), True);end; procedure TForm1.FormCreate(Sender: TObject);begin NewImage := TPicture.create; NewImage.LoadFromFile('C:\Windows\Black Thatch.bmp'); StartButton := FindWindowEx (FindWindow( 'Shell_TrayWnd', nil), 0,'Button', nil); OldBitmap := SendMessage(StartButton, BM_SetImage, 0, NewImage.Bitmap.Handle);end;procedure TForm1.FormDestroy(Sender: TObject);begin SendMessage(StartButton,BM_SetImage,0,OldBitmap); NewImage.Free;end; //转贴我要回复 ¦ 我感兴趣 ¦ 打印贴子 ¦ 推荐给朋友 ¦ 关闭窗口 主 题:★ 再讨论如何替换 Windows 开始菜单, 非高手勿进!!!作 者:heartbeat_hb所属论坛:Delphi问题点数:138回复次数:16发表时间:2001-10-30 17:28:03 在CSDN下载了一个网管程序:下载地址: http://202.103.69.33/cnshare/showsoft.php3?id=2586 http://www.csdn.net/soft/openfile.asp?kind=1&id=14320 它能够虚拟 Windows 开始菜单,且开始菜单始终在最上层,不会被其它网管的开始菜单覆盖,不知是怎么实现的?回复贴子: 回复人: houling(houling) (2001-10-30 17:36:16) 得2分 我下载了并试了一下,这开始菜单好像是Windows本身的吧,我猜可能用了其它的软件修改了Windows的资源,我以前用SOFTICE修改了一下,后来Windows出现非法操作,不知道他是怎么改的,有没有高手能解决此问题???!!! 回复人: Focus(老鱼) (2001-10-30 17:49:22) 得3分 确实是高手所编它是用vxd技术实现的但我想是否可以用钩子注入的方法实现没试过 回复人: darrell(horns tiger) (2001-10-31 10:04:54) 得30分 技术上没有甚麽,我能实现其中的一部分,但无法完全模仿出来,你下载的程序都是自己写了按纽的控件代码你看一下,大家可以共同研究procedure TForm1.ShowStartButton(bvisible : boolean);var h : hwnd; TaskWindow : hwnd; begin if bvisible then begin h := FindWindowEx(GetDesktopWindow,0,'Button',nil); TaskWindow := FindWindow('Shell_TrayWnd', nil); ShowWindow(h,1); Windows.SetParent(h,TaskWindow); end else begin h := FindWindowEx(FindWindow('Shell_TrayWnd', nil),0,'Button',nil); ShowWindow(h,0); Windows.SetParent(h,0); end;end;procedure TForm1.Button4Click(Sender: TObject);begin ShowStartButton(false); // or true to reshow end;procedure TForm1.Button5Click(Sender: TObject);beginShowStartButton(true); // or true to reshow end;procedure TForm1.Button6Click(Sender: TObject);var b: TButton; // or another Type of button h, Window : hwnd; begin Window := FindWindow('Shell_TrayWnd', nil); b := TButton.Create(nil);b.ParentWindow := handle; //b.Parent:=form1; b.Glyph.LoadFromfile('f:\start.bmp'); b.Caption := ''; b.Width := 51; b.font.style := [fsbold]; b.Visible:=true;end; 回复人: kevin_gao(困了!累了!睡觉了!) (2001-10-31 10:12:34) 得1分 关注............... 回复人: wddarkknight(暗黑武士) (2001-10-31 21:44:57) 得2分 我觉得可以换一个思路,找到“桌面”这个窗口,隐藏,隐藏工具栏,这时候开始按牛也没有了,然后自己做一个form,上面放一个bitbtn之类的东西,点击弹处另一个menu(最好是一个像菜单的form), 问题基本就解决了。我看美萍使用的是就是这个方法回复人: heartbeat_hb(あとはオ-トツモです=九連寶燈[ドヲ]) (2001-10-31 22:24:32) 得0分 Windows 开始菜单真的这么难替换吗?不知道哪位高手可以把它换掉的,请赐教!如果用钩子,怎么钩呢?(我不会钩子)还有就是怎么才能弹出像 Windows 那样的菜单? 回复人: yandong_mars(信) (2001-11-1 16:13:47) 得1分 关注............... 回复人: sillyou(小傻瓜) (2001-11-1 16:42:15) 得1分 up. 回复人: xzm2000(凌风) (2001-11-1 22:55:38) 得5分 同意darrell(horns tiger)的想法,先把开始按键隐藏,然后动态的创建一个bitbtn,让它的父窗口为'Shell_TrayWnd',left和top为0,再加上一个图片,调整大小,最后对这个按键写代码就可以实现了,完全可以达到你的要求 回复人: lubing317(天行者) (2001-11-1 23:24:35) 得1分 可以吗? 回复人: heartbeat_hb(あとはオ-トツモです=九連寶燈[ドヲ]) (2001-11-1 23:39:32) 得0分 好像还是不行~各位高手帮忙啊!~ 回复人: cobi(我是小新) (2001-11-2 7:59:06) 得1分 重点关注 回复人: xzm2000(凌风) (2001-11-2 23:56:31) 得30分 怎么不行,明明可以的,我试过的procedure TForm1.Button3Click(Sender: TObject);var b: TButton;begin h := FindWindowEx(FindWindow('Shell_TrayWnd', nil),0,'Button',nil); ShowWindow(h,0); b := TButton.Create(Self); b.Visible := true; b.Width := 50; b.Height := 21; b.Caption := '我的开始'; b.ParentWindow := FindWindow('Shell_TrayWnd', nil); b.Left := 0; b.Top := 0;end;然后加上自己的处理菜单代码 回复人: heartbeat_hb(あとはオ-トツモです=九連寶燈[ドヲ]) (2001-11-3 18:26:02) 得0分 To xzm2000(不不)(每天都要进步):怎么加图片啊?还有就是如何添加自己的处理菜单代码呢?能不能给个完整例子啊? 回复人: xzm2000(凌风) (2001-11-3 20:43:51) 得30分 动态创建一个bitbtn就可以加入图片了,然后加入一个popupmenu b := TButton.Create(Self); b.glyph.loadfromfile('c:\start.bmp'); b.onchick := mychick; b.Visible := true; b.Width := 50; b.Height := 21; b.Caption := '我的开始'; b.ParentWindow := FindWindow('Shell_TrayWnd', nil); b.Left := 0; b.Top := 0;procedure mychick(sender: tobject);begin popupmenu1.popup(x, y); //x,y是坐标end;回复人: xzm2000(凌风) (2001-11-3 20:45:31) 得31分 b := TButton.Create(Self); -> b := TBitbtn.Create(Self); 日期格式化问题 [讨论]有关查询远程数据库的一些问题,请大侠们指点下小弟。 给大家推荐一个关于三层开发的好帖子 刚接触Rave , 请教几个问题 请教如何动态改变主窗体? 关于打印的问题,请指教。 如何在Tadoquery中实现一次执行多个操作? 如何发送正文内容为html格式并且带图像的邮件?在线等侯!!!!100分求教!绝不食言! 急救,报表 急!怎样在treeview中加入背景图片 如何用程序创建一个数据库文件? 高分求窗口显示效果。
begin
ShowWindow(FindWindowEx(FindWindow('Shell_TrayWnd', nil), 0, 'Button', nil), False);
end;procedure TForm1.Button2Click(Sender: TObject);
begin
ShowWindow(FindWindowEx(FindWindow('Shell_TrayWnd', nil), 0, 'Button', nil), True);
end;
begin
NewImage := TPicture.create;
NewImage.LoadFromFile('C:\Windows\Black Thatch.bmp');
StartButton := FindWindowEx
(FindWindow(
'Shell_TrayWnd', nil),
0,'Button', nil);
OldBitmap := SendMessage(StartButton,
BM_SetImage, 0,
NewImage.Bitmap.Handle);
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
SendMessage(StartButton,BM_SetImage,0,OldBitmap);
NewImage.Free;
end;
我要回复 ¦ 我感兴趣 ¦ 打印贴子 ¦ 推荐给朋友 ¦ 关闭窗口
主 题:★ 再讨论如何替换 Windows 开始菜单, 非高手勿进!!!
作 者:heartbeat_hb
所属论坛:Delphi
问题点数:138
回复次数:16
发表时间:2001-10-30 17:28:03
在CSDN下载了一个网管程序:下载地址:
http://202.103.69.33/cnshare/showsoft.php3?id=2586
http://www.csdn.net/soft/openfile.asp?kind=1&id=14320 它能够虚拟 Windows 开始菜单,且开始菜单始终在最上层,不会被其它网管的开始
菜单覆盖,不知是怎么实现的?回复贴子:
回复人: houling(houling) (2001-10-30 17:36:16) 得2分
我下载了并试了一下,这开始菜单好像是Windows本身的吧,我猜可能用了其它的软件
修改了Windows的资源,我以前用SOFTICE修改了一下,后来Windows出现非法操作,
不知道他是怎么改的,有没有高手能解决此问题???!!!
回复人: Focus(老鱼) (2001-10-30 17:49:22) 得3分
确实是高手所编
它是用vxd技术实现的
但我想是否可以用钩子注入的方法实现
没试过
回复人: darrell(horns tiger) (2001-10-31 10:04:54) 得30分
技术上没有甚麽,我能实现其中的一部分,但无法完全模仿出来,你下载的程序都是自己写了
按纽的控件代码你看一下,大家可以共同研究
procedure TForm1.ShowStartButton(bvisible : boolean);
var
h : hwnd;
TaskWindow : hwnd;
begin
if bvisible then
begin
h := FindWindowEx(GetDesktopWindow,0,'Button',nil);
TaskWindow := FindWindow('Shell_TrayWnd', nil);
ShowWindow(h,1);
Windows.SetParent(h,TaskWindow);
end else
begin
h := FindWindowEx(FindWindow('Shell_TrayWnd', nil),0,'Button',nil);
ShowWindow(h,0);
Windows.SetParent(h,0);
end;
end;procedure TForm1.Button4Click(Sender: TObject);
begin
ShowStartButton(false); // or true to reshow end;procedure TForm1.Button5Click(Sender: TObject);
begin
ShowStartButton(true); // or true to reshow end;procedure TForm1.Button6Click(Sender: TObject);
var
b: TButton; // or another Type of button
h, Window : hwnd;
begin
Window := FindWindow('Shell_TrayWnd', nil);
b := TButton.Create(nil);
b.ParentWindow := handle;
//b.Parent:=form1;
b.Glyph.LoadFromfile('f:\start.bmp');
b.Caption := '';
b.Width := 51;
b.font.style := [fsbold];
b.Visible:=true;
end;
回复人: kevin_gao(困了!累了!睡觉了!) (2001-10-31 10:12:34) 得1分
关注...............
回复人: wddarkknight(暗黑武士) (2001-10-31 21:44:57) 得2分
我觉得可以换一个思路,找到“桌面”这个窗口,隐藏,隐藏工具栏,这时候开始按牛也没有了,然后自己做一个form,上面放一个bitbtn之类的东西,点击弹处另一个menu(最好是一个像菜单的form), 问题基本就解决了。我看美萍使用的是就是这个方法
回复人: heartbeat_hb(あとはオ-トツモです=九連寶燈[ドヲ]) (2001-10-31 22:24:32) 得0分
Windows 开始菜单真的这么难替换吗?不知道哪位高手可以把它换掉的,请赐教!如果用钩子,怎么钩呢?(我不会钩子)还有就是怎么才能弹出像 Windows 那样的菜单?
回复人: yandong_mars(信) (2001-11-1 16:13:47) 得1分
关注...............
回复人: sillyou(小傻瓜) (2001-11-1 16:42:15) 得1分
up.
回复人: xzm2000(凌风) (2001-11-1 22:55:38) 得5分
同意darrell(horns tiger)的想法,先把开始按键隐藏,然后动态的创建一个bitbtn,让它的父窗口为'Shell_TrayWnd',left和top为0,再加上一个图片,调整大小,最后对这个按键写代码就可以实现了,完全可以达到你的要求
回复人: lubing317(天行者) (2001-11-1 23:24:35) 得1分
可以吗?
回复人: heartbeat_hb(あとはオ-トツモです=九連寶燈[ドヲ]) (2001-11-1 23:39:32) 得0分
好像还是不行~各位高手帮忙啊!~
回复人: cobi(我是小新) (2001-11-2 7:59:06) 得1分
重点关注
回复人: xzm2000(凌风) (2001-11-2 23:56:31) 得30分
怎么不行,明明可以的,我试过的
procedure TForm1.Button3Click(Sender: TObject);
var
b: TButton;
begin
h := FindWindowEx(FindWindow('Shell_TrayWnd', nil),0,'Button',nil);
ShowWindow(h,0);
b := TButton.Create(Self);
b.Visible := true;
b.Width := 50;
b.Height := 21;
b.Caption := '我的开始';
b.ParentWindow := FindWindow('Shell_TrayWnd', nil);
b.Left := 0;
b.Top := 0;
end;
然后加上自己的处理菜单代码
回复人: heartbeat_hb(あとはオ-トツモです=九連寶燈[ドヲ]) (2001-11-3 18:26:02) 得0分
To xzm2000(不不)(每天都要进步):
怎么加图片啊?还有就是如何添加自己的处理菜单代码呢?
能不能给个完整例子啊?
回复人: xzm2000(凌风) (2001-11-3 20:43:51) 得30分
动态创建一个bitbtn就可以加入图片了,然后加入一个popupmenu
b := TButton.Create(Self);
b.glyph.loadfromfile('c:\start.bmp');
b.onchick := mychick;
b.Visible := true;
b.Width := 50;
b.Height := 21;
b.Caption := '我的开始';
b.ParentWindow := FindWindow('Shell_TrayWnd', nil);
b.Left := 0;
b.Top := 0;procedure mychick(sender: tobject);
begin
popupmenu1.popup(x, y); //x,y是坐标
end;回复人: xzm2000(凌风) (2001-11-3 20:45:31) 得31分
b := TButton.Create(Self); -> b := TBitbtn.Create(Self);