如你要隐藏的文件是D:\abc.abc
那么你就可以这样
shell "cmd.exe /c attrib D:\abc.abc +h"
最后的+h是参数,可以用这种方法创建系统属性的文件呢。
答案的补充:
shell是执行程序的API,用它来执行cmd(命令提示符就是执行它,算是DOS吧) /c是参数,表示执行字符串后关闭cmd。/c后面是一个DOS命令,这个命令用来修改已存在文件的文件属性。
第二次补充:
shell就是执行一个程序的API(就是存在于系统DLL中的导出)函数,直接写在VC的代码里就可以了。
用shell就像int a一样简单的。
用shell执行一个程序,我这里写的字符串中包含了对cmd的参数,你可以试着建立一个cmd的快捷方式把我给你的/c及后面的东西加到快捷方式的cmd.exe后面,应该可以使用的。在VC里使用shell执行和那个快捷方式的效果一样。
如目标写成%windir%\System32\cmd.exe /c attrib D:\license.txt +h
那么双击这个快捷方式可以隐藏D:\license.txt这个文件。
ShellExecute(NULL,"open","cmd.exe /c attrib D:\license.txt +h",NULL,NULL,SW_SHOWNORMAL)
不好意思,我这里也没有VC++做不了,不过可以说给你看看我的QQ是 214395
VC程序的三种执行外部程序方法:
WinExec,ShellExecute,CreateProcess
如果你是控制台程序(DOS黑屏命令行),那么据我所知,应该都没办法隐藏窗口。
这三个函数都有隐藏窗口的选项,但只针对窗口程序,控制台程序不行,你试试吧,呵呵。
像你这种情况,有几个办法建议:
将代码加入工程,应该是最简单的
将a.exe做成a.dll,功能调用库,也可以
将a.exe的功能通过简单的窗口程序实现,这样无论外部调用还是内部控制,窗口都能隐藏
将a.exe做成系统服务service程序,这个是后台执行程序最合理的方式。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)