dmex
New member
I didnt want to make that public since im not sure it will work. Oh well.
Tell me what you guys think.
It really needs a 'Restore Defaults' button

kinda ended up looking through the source code to find what it was doing and hopefully revert the changes after I tried it, luckily you create the backup of explorer.exe
I dont think its using the right resource offset since it left my Start Icon like this:

I also noticed the KillsExplorer function doesn't cleanly exit explorer but merely kills it

It looks like your using VB so heres the code you require to exit explorer cleanly.
Code:
Imports System.ComponentModel
Imports System.Runtime.InteropServices
Private Const WM_QUIT As UInt32 = &H12
<DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _
Private Shared Function PostMessage(ByVal hWnd As IntPtr, ByVal Msg As UInteger, ByVal wParam As IntPtr, ByVal lParam As IntPtr) As Boolean
End Function
<DllImport("user32.dll", EntryPoint:="FindWindow", SetLastError:=True, CharSet:=CharSet.Auto)> _
Private Shared Function FindWindowByClass(ByVal lpClassName As String, ByVal zero As IntPtr) As IntPtr
End Function
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim pExplorer As IntPtr = FindWindowByClass("Progman", IntPtr.Zero)
If Not pExplorer = IntPtr.Zero Then
Dim result = PostMessage(pExplorer, WM_QUIT, IntPtr.Zero, IntPtr.Zero)
If result Then
'do something here, explorer has exited
Else
Throw New Win32Exception(Marshal.GetLastWin32Error())
End If
Else
Throw New Win32Exception(Marshal.GetLastWin32Error())
End If
End Sub
If you need code for anything then let me know and ill be happy to help
