自己写的c++ CProgess类
来源:互联网 发布:索尼 游戏机 知乎 编辑:程序博客网 时间:2024/06/07 05:08
class CProcess{public: bool Run(TCHAR* szPath,TCHAR *szCmd = NULL) { STARTUPINFO si; //一些必备参数设置 memset(&si, 0, sizeof(STARTUPINFO)); si.cb = sizeof(STARTUPINFO); si.dwFlags = STARTF_USESHOWWINDOW; si.wShowWindow = SW_HIDE; PROCESS_INFORMATION pi; memset(&pi,0,sizeof(PROCESS_INFORMATION)); if(!CreateProcess(szPath,szCmd,NULL,NULL,FALSE,0,NULL,NULL,&si,&pi)) { return false; } if (pi.hProcess!=NULL) { CloseHandle(pi.hProcess); pi.hProcess=NULL; } if (pi.hThread!=NULL) { CloseHandle(pi.hThread); pi.hThread=NULL; } return true; } BOOL AdjustPrivileges(HANDLE hProcess = GetCurrentProcess()) { HANDLE hToken = NULL; TOKEN_PRIVILEGES tkp; if( ! OpenProcessToken( GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken ) ) return false ; if (! LookupPrivilegeValue( NULL, SE_SHUTDOWN_NAME, &tkp.Privileges[0].Luid )) return false ; tkp.PrivilegeCount = 1; tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; return AdjustTokenPrivileges( hToken, FALSE, &tkp, sizeof(TOKEN_PRIVILEGES), (PTOKEN_PRIVILEGES) NULL, 0 ); } bool Kill(LPCTSTR szExeName) { bool bRet = false ; PROCESSENTRY32 pp; HANDLE hSnap=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); if ( hSnap == INVALID_HANDLE_VALUE) { return false; } pp.dwSize =sizeof(PROCESSENTRY32); BOOL bNext=Process32First(hSnap, &pp); while(bNext) { if (_tcsncicmp(pp.szExeFile, szExeName,_tcslen(szExeName)) == 0) { HANDLE hProcessHandle; hProcessHandle = OpenProcess(PROCESS_TERMINATE, true, pp.th32ProcessID); if (hProcessHandle != NULL) { if (TerminateProcess(hProcessHandle, 0) != NULL) { CloseHandle(hProcessHandle); bRet = true ; break; } } } bNext=Process32Next(hSnap, &pp); } CloseHandle(hSnap); hSnap = NULL ; return bRet; }};
- 自己写的c++ CProgess类
- [C#]写自己的类库
- C++-----自己写的哈希表
- C#: 自己写的一个类似BackGroundWorker的类
- 自己写的一个数据库操作类(C#)[原创]
- 自己用C写的单链表
- 自己用C写的通讯录
- [c#][测试]自己写的混淆代码
- 自己写的C语言简单万年历
- 几个自己写的字符串C函数
- 评测自己写的Cherry-C编译器
- 自己写的c语言哥德巴赫猜想
- 自己c写的信息记录系统
- C调用自己写的动态库
- 自己写的递归快速排序(c++)
- 自己写的写日志类
- 自己写的Array类
- 自己写的 string 类
- ldconfig命令作用
- 自定义toast
- 中序遍历和先序遍历/后序遍历构建二叉树
- MyBatis-Spring-SqlSessionFactoryBean
- android短信窃听器
- 自己写的c++ CProgess类
- 强连通分支
- MySQL存储引擎比较
- java操作ftp
- 自己写的C++ trace日志类
- MyBatis-Spring-TransactionManager
- C语言 字符串替换
- Struts2.3.14+Spring3.2.2+Hibernate4.3.0 整合常见问题
- VIM 配置 使用 Ctags Taglist 和cscope 等插件