请教,如何做一个没有窗体的程序。
程序启动时删除c:\aa.exe
删除失败程序退出。
删除成功后启动c:\bb.exe -save
10秒后重启计算机。
注,我的环境是98的。
问题点数:50、回复次数:15Top
1 楼BLsoft(網龍ζ龍活)(Cyber-Security of [MVP])回复于 2004-09-02 17:42:56 得分 0
你写的DLL不就是没窗体的吗Top
2 楼huwei001982(凶猛的小狗)回复于 2004-09-02 17:42:59 得分 0
将窗体隐藏就可以了!
this->ShowWindow(SW_HIDE);Top
3 楼lixiaosan(小三)回复于 2004-09-02 17:44:05 得分 0
BOOL DeleteFile(
LPCTSTR lpFileName
);
CreateProcess(
LPCWSTR lpszImageName,
LPCWSTR lpszCmdLine,
LPSECURITY_ATTRIBUTES lpsaProcess,
LPSECURITY_ATTRIBUTES lpsaThread,
BOOL fInheritHandles,
DWORD fdwCreate,
LPVOID lpvEnvironment,
LPWSTR lpszCurDir,
LPSTARTUPINFOW lpsiStartInfo,
LPPROCESS_INFORMATION lppiProcInfo
);
Top
4 楼cow_boys(小耳朵)回复于 2004-09-02 17:46:22 得分 0
将窗体隐藏就可以了!
this->ShowWindow(SW_HIDE);
晕。我是为节省资料的角度考虑,这样做太不负责任了。Top
5 楼titilima(李马 - www.titilima.cn)回复于 2004-09-02 17:47:46 得分 30
#include <windows.h>
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)
{
if (!DeleteFile("C:\\aa.exe"))
return 0;
ShellExecute(NULL, "open", "C:\\bb.exe", "-save", NULL, SW_SHOW);
Sleep(10000);
ExitWindowsEx(EWX_REBOOT, 0);
return 0;
}
把上面的代码用Win32 Application编译。Top
6 楼lixiaosan(小三)回复于 2004-09-02 17:48:47 得分 0
ExitWindowsEx(EWX_REBOOT, 0);Top
7 楼DentistryDoctor(不在无聊中无奈,就在沉默中变态)回复于 2004-09-02 17:57:34 得分 0
或直接在InitInstance中不创建窗口就行了,直接写你的代码就行了。Top
8 楼cow_boys(小耳朵)回复于 2004-09-02 18:00:06 得分 0
谢谢各位。感激ing。
再问一个问题。
这个程序如何收参数。
如编译后是aa.exe
我运行时输入aa.exe -test ok?
这样如何接收那两个参数。Top
9 楼smile_cc(笑笑)回复于 2004-09-02 19:56:12 得分 0
那你可以定义一个很短的时间(100毫秒甚至更短)发消息关闭窗体啊!
::PostMessage(this->m_hWnd, WM_CLOSE, NULL, NULL);
读取参数:
CString param;
param = this->m_lpCmdLine;
比如你输入:aa.exe -test ok?
那么param = "-test ok?"
然后你可以分别把他们解析出来,剩下的应该好解决吧?Top
10 楼titilima(李马 - www.titilima.cn)回复于 2004-09-02 20:12:12 得分 0
__argv[1]为"test"
__argv[2]为"ok?"Top
11 楼mynamelj(风动,帆动,仁者心动)回复于 2004-09-03 08:51:08 得分 0
那不如C写就好了Top
12 楼crystal521(【云淡风轻】)回复于 2004-09-03 11:17:27 得分 0
删除 DeleteFile
启动程序 CreatProcess
延时 Sleep
重启 ExitWindowsEx
传参数,不知你要怎么传?给这个程序发送消息字符串就可以了
Top
13 楼cow_boys(小耳朵)回复于 2004-09-04 09:00:17 得分 0
谢谢各位。
再请教一个问题。
如何对文件重命名??Top
14 楼titilima(李马 - www.titilima.cn)回复于 2004-09-04 09:05:55 得分 10
BOOL MoveFile(
LPCTSTR lpExistingFileName, // pointer to the name of the existing file
LPCTSTR lpNewFileName // pointer to the new name for the file
);
如果源文件和目标文件在同一文件夹下,就可以实现改名。Top
15 楼kugou123(酷狗)(彪悍的人生,不需要解释 www.xiaozhou.net)回复于 2004-09-04 09:08:37 得分 10
BOOL MoveFile(
LPCTSTR lpExistingFileName,
LPCTSTR lpNewFileName
);
用这个函数可以移动文件,如果在同一个目录下,可以达到更改名字的效果
举例:
MoveFile("c:\\test1.txt","c:\\text2.txt");
Top




