如何把XP的开始菜单替换成自己的??? ( 积分: 50 )

  • 主题发起人 主题发起人 xiezhy
  • 开始时间 开始时间
X

xiezhy

Unregistered / Unconfirmed
GUEST, unregistred user!
如何把XP的开始菜单替换成自己的???
 
procedure TForm1.Button1Click(Sender: TObject);
var
TaskHwnd,BeginHwnd:Hwnd;
buf:array[0..255] of char;
begin
TaskHwnd:=FindWindow(Pchar('Shell_TrayWnd'),nil);
if TaskHwnd<>0 then
BeginHwnd:=FindWindowEx(TaskHwnd,0,nil,Pchar('开始'));
SetWindowText(BeginHwnd,Pchar('娃娃'));
end;
 
to:ysp娃娃
这样好像不行,没效果啊,我想是完全的屏蔽掉开始菜单,就是Win或者Ctrl+Esc也不会弹出开始菜单。
各位高手,有没有好的办法~~~
 
不就是屏蔽Win或者Ctrl+Esc


library KeyHook;

uses
Windows,Messages,SysUtils,
Classes;
const
AlTIsDownFlags=$20;
type
PKeyBoardLLStruct=^TKeyBoardLLStruct;
TKeyBoardLLStruct=record
VCode:DWORD;
ScanCode:DWORD;
Flags:DWORD;
Time:DWORD;
dwExtroInfo:DWORD;
end;
var
MyHook,HookHandle:HHook;
keyPress:boolean;

{$R *.res}

//屏蔽低级键盘
function KeyLLHookProc(icode:integer;wparam:Wparam;lparam:LPARAM):LRESULT;stdcall;
var
P:PKeyBoardLLStruct;
begin
result:=0;
if icode=HC_ACTION then
begin
case wparam of
WM_KEYDOWN,
WM_KEYUP,
WM_SYSKEYDOWN,
WM_SYSKEYUP:
begin
p:=PKeyBoardLLStruct(lparam);
keyPress:= (P.VCode=VK_LWIN) or (P.VCode=VK_RWIN) or
((P.VCode=VK_ESCAPE) and ((GetKeyState(VK_CONTROL) and $8000)<>0)) ;
if KeyPress then
result:=1;

end;
end;

end
else
CallNextHookEx(MyHook,icode,wparam,lparam);

end;

function InstallKeyHook:bool;stdcall;export;
begin
MyHook:=0;
MyHook:=SetWindowsHookEx(13{WH_KEYBOARD_LL},@KeyLLHookProc,Hinstance,0);
result:=(MyHook<>0);
end;
function UnInstallKeyHook:bool;stdcall;export;
begin
result:=UnHookWindowsHookEx(MyHook);
MyHook:=0;
end;

exports
InstallKeyHook,UnInstallKeyHook;
end.
 
谢谢ysp娃娃的关注!
你的代码我试过了,可以屏蔽掉win单键,但是对组合键Ctrl+Esc无效果
 
不好意思 刚才弄错了 那时屏蔽ALT +Esc的 现在修改好了
 
在这个消息中处理好些吧WM_KEYDOWN,
 
谢谢ysp娃娃的关注!基本问题已经解决了,
想问一下,能不能把Ctrl+Alt+Del三键也屏蔽掉呢??(不行再加分)呵呵
 
接受答案了.
 
Ctrl+Alt+Del 屏蔽: 在这里 不过别人已经给我分了 你就不用给我了 ^-^
在2K和XP下如何屏蔽Ctrl+Alt+Del三键?
http://delphibbs.2ccc.com/delphibbs/dispq.asp?lid=3654226
 
后退
顶部