![]() |
How to hide Startmenu
How to do it?Startmenu not the startbutton thats a big diffrence..
Becouse i want to create a replacement.. thanks... |
Re: How to hide Startmenu
You could try to redirect the messages of the button.
IOW: YourVariable := MessageLoopOfStartButton; MessageLoopOfStartbutton := YourCustomMessageLoop; In YourCustomMessageLoop you can pass every message to the former message-loop except for the click-message, which you can handle yourself. This way, the button will never notice when the user clicks it ;) |
Re: How to hide Startmenu
Danke,danke:D I will try this..I am making longhorn startmenu for vista..
|
Re: How to hide Startmenu
Zitat:
|
Re: How to hide Startmenu
Yes i messed it up a bit i mean Longhorn 4074 :P.Vista is 6001(SP1)
|
Re: How to hide Startmenu
Could you make an example? :-D
|
Re: How to hide Startmenu
An example ...... i can show you how to do it ;)
(As I have no Delphi installed I dunno if it compiles ...) First, you need a variable that holds the old WndProc. A Pointer should do the job. To get the pointer to the WndProc you can call GetWindowLong(), to process the messages in your program, you need a seperate function
Delphi-Quellcode:
Something like that ;)
var
OldWndProc: Pointer; begin // Change WndProc OldWndProc := GetWindowLong({Handle to the Button}, GWLP_WNDPROC); SetWindowLong({Handle to the Button}, GWLP_WNDPROC, @NewWndProc); end; function NewWndProc(hWnd: HWND; uMsg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; begin if ({The Message you want}) // Handle Message else // Call old WndProc CallWindowProc(OldWndProc, hWnd, uMsg, wParam, lParam); end; To get the Handle of the button, you can use FindWindow. You can find additional stuff by searching for "subclassing" ;) |
Re: How to hide Startmenu
You don't even need GetWindowLong. SetWindowLong returns the previous value of the specified attribute. You also avoid a possible race condition if you remove the call.
Note that changing the WndProc only works for Vista. According to the documentation you can't set a new one for a window in a different process. |
Re: How to hide Startmenu
Liste der Anhänge anzeigen (Anzahl: 1)
I made something :-D
|
Re: How to hide Startmenu
New question> What if i disable the start button and make my own?
|
Re: How to hide Startmenu
New question => New Thread please ;)
Short answer: Yes, that is possible :mrgreen: Not-that-short-answer: Close the Button windwo and create your own one ;) |
Re: How to hide Startmenu
But bitte tell me how to hide vista's button and then i compile and share everything so everybody can see!! ;)
Danke. |
Re: How to hide Startmenu
Use the DestroyWindow() or the CloseWindow() function ;)
Please do open up a new topic for each new question :warn: |
Re: How to hide Startmenu
Can somebody type an example i haven't never done this type of programing..
|
Re: How to hide Startmenu
Ok i made something,please comment it and why it won't work as it should..
Delphi-Quellcode:
var
Form2: TForm2; handle1,taskBarWnd:hwnd; implementation uses Unit3; {$R *.dfm} procedure tform2.hide; begin taskBarWnd := FindWindow('Shell_TrayWnd', 0); handle1:=FindWindowEx(taskBarWnd, 0, 'Button', 'Start'); closewindow(handle1); end; |
Re: How to hide Startmenu
??? :gruebel:
Delphi-Quellcode:
warning bad English
function ShowOrHideStartWndBtn(Action: Boolean): Boolean; // save Version
var hShellTrayWnd, hStartBtn: HWND; begin Result := FALSE; hStartBtn := 0; // find the ShellTrayWindow hShellTrayWnd := FindWindow('Shell_TrayWnd', nil); // find the Start Button if hShellTrayWnd <> 0 then begin hStartBtn := FindWindowEx(hShellTrayWnd, 0, 'Button', nil); if hStartBtn <> 0 then begin Result := TRUE; case Action of TRUE: ShowWindow(hStartBtn, SW_SHOW); // now show the Button FALSE: ShowWindow(hStartBtn, SW_HIDE); // where is the button now? end; end; end; end; procedure TForm1.Button1Click(Sender: TObject); begin ShowOrHideStartWndBtn(TRUE); // Show the Start Button end; procedure TForm1.Button2Click(Sender: TObject); begin ShowOrHideStartWndBtn(FALSE); // Hide the Start Button end; Zitat:
Delphi-Quellcode:
you cannot close the button !
// ...
var // var -> def global Variable Form2: TForm2; // def. Form2 as any Type of TForm2 handle1,taskBarWnd: hwnd; // def. handle1 and taskBarWnd as any Windowhandle implementation // the section of a unit begins uses Unit3; // include Unit3.pas {$R *.dfm} // include all Resources with "dfm"-extensions procedure tform2.hide; // define porocedure "hide" from "form2" begin // instruction begins taskBarWnd := FindWindow('Shell_TrayWnd', 0); // find the window "Shell_TrayWnd" handle1:=FindWindowEx(taskBarWnd, 0, 'Button', 'Start'); // find in Window "Shell_TrayWnd" the Window "Button" closewindow(handle1); // minimizes, but does not destroy the specified window. end; // instruction ends for porocedure "hide" |
Re: How to hide Startmenu
@turboPASCAL > problem is that it won't work on vista!The code that you posted...
Thanks. |
Re: How to hide Startmenu
Zitat:
Could anybody test this like if you press the button then the form will show or something.This is really new for me so i rather ask before i go in to this... |
Re: How to hide Startmenu
Zitat:
|
Re: How to hide Startmenu
Hahaha another guy with a bad day you know this isn't a place to toss your mind.This a FORUM read it what it means on google.
|
Re: How to hide Startmenu
Keep cool. This is a message board and all the help is voluntary. So if you don't want to help just don't do it and mind your own business.
And now for something completely diffrent: "How to defend yourself against a banan." Ah well, back to topic please. |
Re: How to hide Startmenu
All i want is help... :(
|
Re: How to hide Startmenu
Cheer up. ;)
|
Re: How to hide Startmenu
Ockey Dockey.. :-D
|
Re: How to hide Startmenu
Ok could i made my menu its fully functional how can i make it ..
When user clicks START > my start menu opens..i know there is a code but an example would be nice I think i am here long enough to deserve atleast that.... :oops: |
Re: How to hide Startmenu
Zitat:
instead the default one. |
Re: How to hide Startmenu
So the quelcode what jfheins typed is not suitable?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:14 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz