I think you can just enter NULL instead of Handle. Handle is a name for the window HWND (H = Handle) (WND = Window).
For more information: http://en.wikipedia.org/wiki/Hwnd
thx guys both of these solved that error, but it now throws another; error C2664: 'ShellExecuteW': cannot convert parameter 1 from 'System::IntPtr' to 'HWND'
This is using the knowledge that a handle is just a 32 bit value. Some people do the same using ToPointer(), which also works with 32-bit Windows. A safe approach for code which must also compile 64-bit is not so easy.
Looking at this problem again, I noticed you're just using ShellExecute to launch an exe. So TheMassiveChipmunk's suggestion probably make more sense here.
(Launching an app is normally done -- in WIN32 -- using CreateProcess. ShellExecute is to execute a shell verb against some kind of document, e.g. "open" + "hello.txt" uses the .txt file association to work out that notepad.exe whould be used (to open hello.txt). There is an association for .exe, but if you're just launching it, it would be better to use CreateProcess.)
As you're using C++/CLI, you might be able to use System::Diagnostics::Process::Start() instead? Or did you have a problem with it?