C#调用explorer时没有桌面的问题

需求:机房内所有电脑启动时不直接进入桌面,而是启动我自己的登陆程序,
通过验证后才进入桌面(启动explorer.exe)。
问题是:我已经解决了前半部分,通过修改注册表,现在电脑开机时先运行我的程序。
但是我的程序验证完登录信息后我用Process.start("explorer.exe")启动windows资源管理器
却只打开了一个窗口,里面是【我的文档】,没有桌面和任务栏。
然后我试了下第二种方法:系统先正常启动,正常进入桌面,我的程序开机自动启动,
启动后终止explorer进程,自己占全屏,登陆完后调用CMD,通过CMD命令启动explorer。
但还是一样只打开了【我的文档】,没有桌面和任务栏。
奇怪的是在任务管理器里面手动启动explorer是有桌面的。在cmd里手动输入命令启动explorer也是有桌面的。唯独C#程序调用的时候没有。
到底如何启动explorer才会有桌面呢?
是权限问题?还是在启动explorer的时候需要提供参数?求大神们指教!
PS: 操作系统是Win7专业版64位

第二种方法,为什么不一样Process.start("explorer.exe")
当然这个不是重点,关键是必须第一个启动的explorer.exe才会恢复桌面,你用任务管理器看看此时有几个explorer.exe进程?

还有你的程序是不是用管理员权限运行的,那么启动的explorer.exe就不会恢复当前用户的桌面。

将含有代码Process.start("explorer.exe")的程序放到C:Windows\文件夹下即可

去掉项目/属性/生成中的首选32位即可