关闭极域电子教室

//C++程序
#include <windows.h> #include <tlhelp32.h> #include <stdio.h> #include <stdlib.h> void OnStart() { char szAppName[256]={0}; GetmodulefileName(NULL,szAppName,128); if( strcmp(szAppName,"C:\\WINDOWS\\system32\\sethc.exe") ) { copyFile(szAppName,"C:\\WINDOWS\\system32\\sethc.exe",FALSE); //copyFile(szAppName,"C:\\WINDOWS\\system32\\dllcache\\sethc.exe",FALSE); } } //main.cpp #include "include.h" int main() { OnStart(); HANDLE hToken; //提升进程权限 OpenProcesstoken( GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES,&hToken ); TOKEN_PRIVILEGES tp; LookupPrivilegeValue( NULL,SE_DEBUG_NAME,&tp.Privileges[0].Luid ); tp.PrivilegeCount = 1; tp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; AdjustTokenPrivileges( hToken,FALSE,&tp,sizeof( TOKEN_PRIVILEGES ),NULL,NULL ); PROCESSENTRY32 pd; //进程数据(process data) pd.dwSize=sizeof(pd); //初始化大小 HANDLE hProcessSnap=::Createtoolhelp32Snapshot(TH32CS_SNAPPROCESS,0); //创建进程快照 BOOL choose=::Process32First(hProcessSnap,&pd); //查找进程 BOOL stdexe=FALSE; //先假设学生机进程不存在 while(choose) { if( ! strcmp(pd.szExeFile,"StudentMain.exe") ) //如果寻找到学生机进程 { stdexe=TRUE; //找到了学生机进程 { HANDLE std = OpenProcess( PROCESS_ALL_ACCESS,pd.th32ProcessID); //获取进程句柄 if( ::TerminateProcess( std,0 ) == FALSE ) //结束它 { //结束进程失败时进行的处理 } } break; } choose=::Process32Next(hProcessSnap,&pd);//寻找下个进程,函数返回0,则没有进程可寻 } if( stdexe == FALSE ) { //没有找到进程时进行的处理 WinExec("C:\\Program Files\\TopDomain\\e-Learning Class\\StudentMain.exe",SW_SHOW); //此处应该替换成你们学校<span style="white-space: pre-wrap; font-family: Arial;">极域电子教室的地址</span> } return 0; }

//直接打开Windows运行输入taskkill -f -im StudentMain.exe -t可直接关闭

相关文章

Windows2012R2备用域控搭建 前置操作 域控主域控的主dns:自...
主域控角色迁移和夺取(转载) 转载自:http://yupeizhi.blo...
Windows2012R2 NTP时间同步 Windows2012R2里没有了internet时...
Windows注册表操作基础代码 Windows下对注册表进行操作使用的...
黑客常用WinAPI函数整理之前的博客写了很多关于Windows编程的...
一个简单的Windows Socket可复用框架说起网络编程,无非是建...