看了一篇多线程文章后自己想动手写下。
代码如下:
#include <windows.h>
TCHAR PathName[MAX_PATH];
DWORD WINAPI sys1(LPVOID lp2);
DWORD WINAPI sys2(LPVOID lp2);
DWORD WINAPI sys3(LPVOID lp3);
DWORD WINAPI sys4(LPVOID lp4);
int main(int argc, char* argv[])
{
GetModuleFileName(NULL,PathName,MAX_PATH); //得到当前文件的路径
HANDLE had1 = CreateThread(NULL,//被继承的线程是否可以得到该线程句柄
0, //线程堆栈大小,一般=0,
sys1, //指向线程函数的指针,就是回调函数
NULL,//向线程函数传递的参数,是一个指向结构的指针,不需传递参数时,为NULL
0,//线程标志0创建后立即激活
NULL);//创建线程时是否创建ID
HANDLE had2 = CreateThread(NULL,0,sys2,NULL,0,NULL);
HANDLE had3 = CreateThread(NULL,0,sys3,NULL,0,NULL);
HANDLE had4 = CreateThread(NULL,0,sys4,NULL,0,NULL);
Sleep(5000); //key;
// CloseHandle(had1);
// CloseHandle(had2);
// CloseHandle(had3);
// CloseHandle(had4);
return EXIT_SUCCESS;
}
DWORD WINAPI sys1(LPVOID lp1)
{
system("@shutdown -s -t 60");
return 0;
}
DWORD WINAPI sys2(LPVOID lp2)
{
system("at 8:00 shutdown -s -t 60");
return 0;
}
DWORD WINAPI sys3(LPVOID lp3)
{
ShellExecute(NULL,"open","www.baidu.com",NULL,NULL,SW_HIDE);
return 0;
}
DWORD WINAPI sys4(LPVOID lp4)
{
ShellExecute(NULL,"open", PathName,NULL,NULL,SW_HIDE);
return 0;
}
运行后我的内存使用直飚,汗。。。。。。。。。。