Archives

Archives / 2004 / July
  • Microsoft Link Resources

    I just started collecting various links about Microsoft that might be usefull to someone.

    You can find the current collection at http://microsoft.zoekinfo.be.

    If you have a link you find usefull and believe it would fit on that page, please leave it behind in the comments!

    Thanks

  • Custom Run Box (Resource Hacking)

    It's time for a new article, but not about C# this time. I'll tell you how to modify Windows, we'll change the Run box and make it look like this:



    First of all the disclaimer: This article is purely informational, you don't have to do anything because I tell so, everything you do is on your own risk and I am not responssible when anything goes wrong.

    With that out of the way, grab the tools if you don't have them yet:

    We'll begin by copying shell32.dll to a safe place.

    Copy it two times, one which we'll be editing, and one which is a backup.

    Open it in ResHacker and you'll see a list on the left side showing all available resources.



    Now select the 'Dialog' resource, and look at 1003. You'll notice it's the Run box.



    We'll start by adding a bitmap to place on our Run box. Go to 'Bitmap' and select 'Action', 'Add a new Resource'.



    Here you select a bmp file and give it the name RUNGFX. You can get the bmp I used here: Runbox.bmp.



    Press 'Add Resource' and now you can see it's added.



    Now we'll go back to the 'Dialog' 1003, 1033 and replace the existing script with this one:

    1003 DIALOGEX 0, 0, 188, 83
    STYLE DS_FIXEDSYS | DS_MODALFRAME | DS_NOIDLEMSG | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | WS_SYSMENU
    CAPTION ":: run ::"
    LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
    FONT 8, "MS SHELL DLG"
    {
    CONTROL "", 12298, COMBOBOX, CBS_DROPDOWN | CBS_AUTOHSCROLL | CBS_DISABLENOSCROLL | WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_TABSTOP, 3, 53, 181, 198
    CONTROL "R", 12306, BUTTON, BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE | WS_DISABLED | WS_TABSTOP, 21, 90, 1, 1
    CONTROL "Run", 1, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 3, 67, 59, 14 , 0x00020000
    CONTROL "Cancel", 2, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 63, 67, 59, 14 , 0x00020000
    CONTROL "Find", 12288, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 124, 67, 59, 14 , 0x00020000
    CONTROL "RUNGFX", 0, STATIC, SS_BITMAP | WS_CHILD | WS_VISIBLE | WS_GROUP, 3, 3, 181, 48
    }

    To make your life easier, and to be sure you don't make a mistake due to your browser word wrapping the script, copy paste it from this text file: runscript.txt.

    When you have replaced it you press 'Compile Script'.



    And now you'll see the preview has changed to our new runbox!



    Press CTRL+S to save the modified dll.

    The last thing we need to do is to use Replacer to replace our existing shell32.dll in SYSTEM32 with our new file. You can't just copy it in there because Windows File Protection would replace it with a backup. Therefore we use Replacer, just follow the instructions Replacer shows and you'll be fine. Replacer also prompts you to make a backup, make sure you make one, you never know what can go wrong.

    When the file is replaced (Replacer replaces the file itself along with the one in dllcache) you have to reboot and when everything went fine, you now have a new Run box! A really good looking one, different from everyone else.

    Some notes:
    If you move the controls around, make sure to not place any above or behind the bitmap, it could give problems. Also don't include a bitmap bigger then your box. Make sure you leave a bit of spaces from the edges, when you put the bitmap against the border, it won't show up.

  • Drivers License Progress

    Today I took the theoretical drivers license exam. And I passed it! With 0 mistakes! :)

    The only thing that's left now is the practical exam. But that's still a couple of months away.

  • ConvertToProperties Macro

    For everyone who received .NET Magazine #5, there's an article in there at page 53 about cleaning up your code.

    Jan Tielens mentions a ConvertToProperties macro, which is really sweet!

    But there has been a printing error or something, the link went missing on page 55 in the bottom box. (http://xxx/...)

    So, here is it: Create Property Macro for C#.

    The version on the site doesn't correspond to the screenshots, it doesn't use mVariable (any more?), but replaces it with _variable (which I prefer).

    Be sure to get this macro! It saves you a lot off time ;)

  • Passed another year!

    Exams are over and I got my results. I passed with 'Highest Distinction', you can only guess how happy I am :p

    Dutch details at: www.cumps.be

    Now only a half year of school left, and then it's time to do an interim at a company :)