如果你问的是“用VBS脚本隐藏运行cmd窗口,再用另一段VBS还原出来”的方法,你可以关闭我的回答了,恐怕办不到。VBS无法直接调用系统的Win32 API,只能调用COM接口。 如果你问的是“用VBS脚本隐藏运行cmd窗口,还原时不限定工具,能显示出来就行”的方法,请继续看: 最好选一门能调用Win32 API的语言,例如VB6 / C / C++ / Python的ctypes等。或者,如果你要坚持用VBS的话,装一个第三方插件DynaWrap,它能让VBS调用Win32 API,但是使用起来相当麻烦,反正我直到上面那一堆语言全学会了,还没记住DynaWrap的调用约定,直接弃坑了。 搞明白Win32 API怎么调用了以后,调用FindWindow("ConsoleWindowClass", "那个cmd窗口的标题")找到你隐藏的cmd窗口。如果它的标题是不固定的,可以在批处理里加入title语句。 用FindWindow()返回的窗口句柄作为参数,调用ShowWindow(hWnd, SW_SHOW)。完成。
如果你问的是“用VBS脚本隐藏运行cmd窗口,再用另一段VBS还原出来”的方法,你可以关闭我的回答了,恐怕办不到。VBS无法直接调用系统的Win32 API,只能调用COM接口。
如果你问的是“用VBS脚本隐藏运行cmd窗口,还原时不限定工具,能显示出来就行”的方法,请继续看:
最好选一门能调用Win32 API的语言,例如VB6 / C / C++ / Python的ctypes等。
或者,如果你要坚持用VBS的话,装一个第三方插件DynaWrap,它能让VBS调用Win32 API,但是使用起来相当麻烦,反正我直到上面那一堆语言全学会了,还没记住DynaWrap的调用约定,直接弃坑了。
搞明白Win32 API怎么调用了以后,调用
FindWindow("ConsoleWindowClass", "那个cmd窗口的标题")
找到你隐藏的cmd窗口。如果它的标题是不固定的,可以在批处理里加入title
语句。用
FindWindow()
返回的窗口句柄作为参数,调用ShowWindow(hWnd, SW_SHOW)
。完成。