Creating Start Button in Windows 8

WorldRacer
2012-09-15
2012-10-29
  • WorldRacer
    WorldRacer
    2012-09-15

    Hey guys,

    I wondered how you created the start button in windows 8. I tried many things,
    but did not came to a result. Could you please explain how you reserved space
    for the start button? I have a functional Shell_TrayWnd hook, but I don't know
    how to go further. I also racked google, but I could not find anything useful
    for windows 8.

    Best Regards..
    WR

     
  • Ivo Beltchev
    Ivo Beltchev
    2012-09-15

    It's a secret! No, not really. This is an open-source project after all :) You
    can download the sources from the Files section.

    The taskbar has a rebar inside it, which hosts the individual bands. I have
    subclassed both the tasbkar and the rebar, and I control the rebar's position
    and size to leave enough room for the start button. Look at
    ClassicStartMenuDLL.cpp.

     
  • WorldRacer
    WorldRacer
    2012-09-18

    Well, I have browsed through the source code, but could not get a clue about
    what you're doing :) But thanks for the information, now I have a further
    point to look for in classicshell source :) BTW: Great thing you did ;)

     
  • WorldRacer
    WorldRacer
    2012-09-18

    Well, I have copied parts of your code. It was the SubclassRebarProc and the
    line
    SetWindowSubclass(g_Rebar,SubclassRebarProc,'CLSH',0);

    But I changed the line to SetWindowSubclass(g_Rebar,SubclassRebarProc,0,0);
    It does not give the expected result, still the taskbar is not reacting.
    I have not done much with windows api functions... MAybe you can give me some
    hint. The GetLastErrorFunction returns 0.

    Here is what ive done right now:

    http://pastebin.com/rqekb9zR

     
  • Ivo Beltchev
    Ivo Beltchev
    2012-09-18

    Well, you still haven't described what you are trying to do.

    But just a guess, SetWindowSubclass needs to be called from the same thread as
    the one handling the window. Are you sure you are calling it from the right
    thread?

     
  • WorldRacer
    WorldRacer
    2012-09-18

    Thanks for your quick reply :) That's what I read while I racked Google again
    :) So I am implementing a hook now :)

     
  • WorldRacer
    WorldRacer
    2012-09-19

    Is it possible to debug the DLL although it is running by another process?

     
  • Ivo Beltchev
    Ivo Beltchev
    2012-09-19

    Yes, you can attach a debugger to any running process.

     
  • WorldRacer
    WorldRacer
    2012-09-19

    Okay, that's the way I thought to do it :) I am doing the following:

    1. Start my exe-File creating the hook.
    2. In this exe file stopping at breakpoint in line "g_StartHook=SetWindowsHookEx(WH_GETMESSAGE,HookInject,hHookModule,thread);"
    3. Now attaching to running explorer.exe
    4. Now running the program to end and hoping that my Breakpoint in the method Hookinject gets called.

    But this does not happen. No errors occuring. What can I do to recognize if
    the hook is really running?

    Greetz and thank you for your great help

    WR

     
  • WorldRacer
    WorldRacer
    2012-09-19

    //UPDATE: Here is the code of the three files I'm using:

    http://pastebin.de/29700

     
  • Ivo Beltchev
    Ivo Beltchev
    2012-09-19

    You still haven't disclosed what is it you are after.

     
  • WorldRacer
    WorldRacer
    2012-09-19

    I want to create a button in the start bar starting an application by clicking
    on it! But first target is to reserve space for it! ;)

     
  • WorldRacer
    WorldRacer
    2012-09-20

    You don't have a tip for me yet?

     
  • Ivo Beltchev
    Ivo Beltchev
    2012-09-20

    Nope, sorry. What you are trying to do requires a lot of knowledge and
    experience. I don't have the time to educate you or troubleshoot your code.