VB关于Shell函数的返回值

Shell函数的返回值为所打开程序的进程ID
我的系统是Win7 64位的,用这个函数打开大部分程序都没问题,比如notepad.exe、calc.exe等这个都没错,但是用它打开系统的资源管理器pid=Shell("explorer.exe"),这个返回值就不是进程的ID了,这是怎么回事? 求大神告知:如何获得自己打开的这个资源管理器的进程ID啊?

explorer只有在首次运行的时候才返回它自身的PID,再次运行的时候返回的就是它调用的资源的PID。如果你想在VB中获得explorer本身的PID,就要通过API函数把explorer这个进程杀掉(这时候桌面就消失了),然后再用shell打开。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-11-11
explorer.exe是不允许重复运行的,你pid=Shell("explorer.exe")调用实际上会出错,出错的时候返回值不是PID,需要查找现有explorer.exe进程的PID需要使用其它方法。追问

但是pid=Shell("explorer.exe C:")这句又能成功运行啊? 那这个返回值是什么呢?

本回答被提问者和网友采纳
相似回答