如何替代WIN9X的开始菜单(急用) (200分)

  • 主题发起人 主题发起人 hf_waj
  • 开始时间 开始时间
H

hf_waj

Unregistered / Unconfirmed
GUEST, unregistred user!
各位高手:
(如美萍安全卫士在普通不计费模式时)
1.如何将自己的菜单替换Win9X的开始菜单;
2.如何屏蔽任务栏中的‘快速启动栏’;
3.但右下角的修改时间,切换输入法等功能却能用。
4.本人很菜,最好有源码,另送200分,急用!!!
 
忘了写Email了:waj2008@163.com
 
1、写注册表;
 
美萍网管软件好象用一个大的窗体把原来的98桌面覆盖了,你问的好象有些可以修改注册表,
有的可调用一些API,你看看HUBDOG,上面应该有你想要的
 
要求只在win95中显示一个游戏菜单,别的程序通通不能调用,也不能激活开始
菜单。我记得见过一篇文章,大概是用SystemParametersInfo(),反正准能查到,就一口答应了。在
Win32API联机帮助里查到SPI_SETSCREENSAVEACTIVE参数,可怎么做都是不行.终于找到<电脑报>的这
篇文章,是上海的汪箴朋友的.原来要用SCREENSAVERRUNNING参数!要命的是,在帮助文件里没有!

设置: systemparametersinfo(spi_screensaverrunning,1,nil,0);
取消: systemparametersinfo(spi_screensaverrunning,0,nil,0);
这个程序的主要思路是:
1.使用SystemParametersInfo()的SPI_SETSCREENSAVEACTIVE参数,使程序不响应Win95。
2.用HideTray和ShowTray过程,隐藏任务条。
3.程序运行时,最大化窗口,无标题。

这是很久以前liangming先生的作品,希望对你有帮助。
隐藏和显示任务栏
procedure hideTaskbar;
var wndHandle : THandle;
wndClass : array[0..50] of Char;
begin
StrPCopy(@wndClass[0], 'Shell_TrayWnd');
wndHandle := FindWindow(@wndClass[0], nil);
ShowWindow(wndHandle, SW_HIDE); // This hides the taskbar
end;

procedure showTaskbar;
var wndHandle : THandle;
wndClass : array[0..50] of Char;
begin
StrPCopy(@wndClass[0], 'Shell_TrayWnd');
wndHandle := FindWindow(@wndClass[0], nil);
ShowWindow(wndHandle, SW_RESTORE); // This restores the taskbar
end;
你应该自己做一个假桌面和一个假任务栏。
 
我也就是想做一个自己的桌面及任务栏,只能运行我的桌面上的程序,可运行这些程序时,
如用最小化后,怎样才能让他们保留在我所做的任务栏上,另外如何又把系统原有的任务
栏的右下角的东西也保留在我的任务栏的右下角。
 
//sorry,美萍我没用过,你可以用下面的方法隐藏快速启动栏。
//很急的话给你出个馊主意,做一个可以弹出菜单的总在最前的小Form放在开始按钮那里挡住它,哈哈。
procedure TForm1.Button1Click(Sender: TObject);
var
wndHandle: THandle;
begin
wndHandle := FindWindow('Shell_TrayWnd', nil);
wndHandle := FindWindowEx(wndHandle,0,'RebarWindow32',nil);
wndHandle := FindWindowEx(wndHandle,0,'ToolbarWindow32',nil);
ShowWindow(wndHandle,sw_hide);
end;

procedure TForm1.Button2Click(Sender: TObject);
var
wndHandle: THandle;
begin
wndHandle := FindWindow('Shell_TrayWnd', nil);
wndHandle := FindWindowEx(wndHandle,0,'button',nil);
ShowWindow(wndHandle,SW_HIDE);
end;
 
To bubble:
快速启动栏的图标多与4个时,》里的不能隐藏!有办法吗?
 
修改system.ini文件,将shell=explorer中的explorer改成你的应用程序名,OK
 
1.替换Win9X的开始菜单是不可能的,做个全屏幕覆盖住是可以的。
2.快速启动栏’可以修改注册表
 
我有发现艾:!!!!!!!!!!!
我在运行美萍的机器上完星际,在选择Quit那一瞬间楞住的时候狂按Alt+F4,
美萍就死了
 
对,我想快速启动栏应该是通过修改注册表来关闭。今天没时间了,以后再找。
另外我发现你做一个bsnone的form2放一个按钮,form2.AutoSize为true。
按钮click写PopupMenu1.Popup(0,Screen.Height-button1.Height-5);;
procedure TForm1.Button3Click(Sender: TObject);
var
wndHandle: THandle;
begin
Form2 := Tform2.create(nil);
Form2.Show;
wndHandle := FindWindow('Shell_TrayWnd', nil);
windows.SetParent(Form2.Handle,wndHandle);
Form2.Left := 0;
Form2.Top := 0;
end;
很好玩的哦。
 
上面的程序有点好玩!
1。我现在已可以替换WINDOWS的开始菜单,任务栏的快速启动不行,我可以在程序运行时,
删除WINDOWS本生的快速启动里的图标或将文件夹改名(Quick Launch的东东),反正我要
的结果就是:只能运行我的桌面上的一二个程序,不能让用户打开硬盘(虽可以屏蔽硬盘
的盘符,但在WINDOWS的系统中,到处都有方法可以打开,单位的机器多,“高手”又多,
天天要维护系统,烦啦!)。
2。现在的问题就是任务栏一点右键,哎!还可以自己建可是工具栏、还有可以把桌面放在
任务栏上,哪位大侠,高手,有没有办法干掉它!!!!(别的地方的右键功能、菜单功能
可要保留)
3。如采用自己做任务栏,又怎么让用户运行的其它程序在最小化时出现在我的任务栏上?
对了,还要把系统的右下角的东东放进去,不然,用户的音量,输入法又不能用!
4。哪位大侠能解决,要我所有的分都行!(搞得世界杯都不能好好看,救救我吧)
 
一年了我都没实现!~ :(
 
刚才下了一个软件名称 美萍菜单安全卫士 标准版 V8.87
看了看也没什么了不起阿,怎么跟我的馊主意是一样的??哈哈哈。
很明显它的开始按钮也是用类似我的方法弄上去的,而且,
它似乎是使用了timer来检查开始菜单是否弹出以及是否有任务管理器的窗口。
而且它也是用同样的方法关闭快速启动工具栏的,只不过它不响应
鼠标左右键了,而且也是自己做的顶级窗口充当桌面,真的没啥东西。
你的分数我全要了。[:D]
 
正是你需要的东西,带源程序:
http://www.8421.org/download.php?id=153
 
To bubble:会给你加分的。
To qdyoung:这个控件我有过了,放入StartBtn控件会有点问题(不知是我的机器问题还是
控件有问题),但StartMenu不错,我就是用它来屏蔽的开始按钮。

现在问题是怎么干掉任务栏的右键!
 
我的win2k机器上例子可以用。

这个是屏蔽ctrl+alt+del的:
http://www.8421.org/download.php?id=163
 
To qdyoung:
你试一下删除例子上的StartBtn控件,看看Delphi会不会报错,我的是Delphi5,会报错!
但仍是可以用的。
 
控件有点小bug
 
后退
顶部