代码碎片(1)
来源:互联网 发布:换手率手机炒股软件 编辑:程序博客网 时间:2024/05/21 11:19
1、将进程名字转换为进程ID
// 将进程名字转换为进程ID, 返回非0表示成功,0表示失败DWORD WINAPI ExeName2PID(LPCTSTR lpszExeName){PROCESSENTRY32 pe32;pe32.dwSize = sizeof(pe32);HANDLE hSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);if(INVALID_HANDLE_VALUE != hSnapShot){BOOL findResult;findResult = Process32First(hSnapShot, &pe32);while(findResult){if(_tcscmp(pe32.szExeFile, lpszExeName) == 0){CloseHandle(hSnapShot);return pe32.th32ProcessID;}findResult = Process32Next(hSnapShot, &pe32);}}CloseHandle(hSnapShot);return 0;}
2、关闭显示器
SendMessage(FindWindow(0,0), WM_SYSCOMMAND, SC_MONITORPOWER, 1);
3、执行CMD命令,返回输出结果
int CmdEcho(LPCTSTR lpszCmd, CString &strOutput){SECURITY_ATTRIBUTES sa;HANDLE hRead,hWrite;sa.nLength = sizeof(SECURITY_ATTRIBUTES); sa.lpSecurityDescriptor = NULL; //使用系统默认的安全描述符 sa.bInheritHandle = TRUE; //创建的进程继承句柄if (!CreatePipe(&hRead,&hWrite,&sa,0)) //创建匿名管道{ return FALSE;}STARTUPINFO si; PROCESS_INFORMATION pi;ZeroMemory(&si,sizeof(STARTUPINFO));si.cb = sizeof(STARTUPINFO); GetStartupInfo(&si); si.hStdError = hWrite; si.hStdOutput = hWrite; //新创建进程的标准输出连在写管道一端si.wShowWindow = SW_HIDE; //隐藏窗口 si.dwFlags = STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES;char cmdline[200]; sprintf(cmdline,"cmd /C %s",lpszCmd);if (!CreateProcess(NULL,cmdline,NULL,NULL,TRUE,NULL,NULL,NULL,&si,&pi)) //创建子进程{ return FALSE; }CloseHandle(hWrite); //关闭管道句柄char buffer[4096] = {0};DWORD bytesRead;while (true) {if (ReadFile(hRead, buffer, 4095, &bytesRead, NULL) == NULL) //读取管道break;strOutput += buffer;Sleep(10);}CloseHandle(hRead);return TRUE;}
4、进程提权
BOOL WINAPI AdjustPrivileges(LPCSTR lpName = SE_DEBUG_NAME, DWORD dwAttrib = SE_PRIVILEGE_ENABLED ){HANDLE hToken;TOKEN_PRIVILEGES tkp;BOOL bResult=FALSE;//打开当前进程信令if(!OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY,&hToken))return bResult;//调整权限LookupPrivilegeValue(NULL,lpName,&tkp.Privileges[0].Luid);tkp.PrivilegeCount=1;tkp.Privileges[0].Attributes = dwAttrib;//通知系统修改权限AdjustTokenPrivileges(hToken,FALSE,&tkp,0,(PTOKEN_PRIVILEGES)NULL,0);if(GetLastError() == ERROR_SUCCESS)bResult=TRUE;return bResult;}
5、中国公民身份证校验算法,计算身份证最后一位校验值
char GetIdCardChkSum(char* szIdCard){if (NULL == szIdCard || strlen(szIdCard) < 17){return 'E';}char szVerifyMap[] = "10X98765432"; // 加权乘积求和除以11的余数所对应的校验数char szFactor[] = {7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1}; // 加权因子long sum = 0l; //加权乘积求和int m = 0; // 加权乘积求和的模数char *p = szIdCard; // 当前位置while(*p) // 在 '\0' 之前一直成立{sum += (*p - '0') * szFactor[p - szIdCard]; // 加权乘积求和p++; // 当前位置增加1}m = sum % 11; // 取模return szVerifyMap[m];}
6、映射文件
LPBYTE MapFile(LPCTSTR szFile, LPDWORD lpSize){HANDLE hFile;hFile = ::CreateFile(szFile,GENERIC_READ,0,NULL,OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);if (INVALID_HANDLE_VALUE != hFile){DWORD dwFileSize;dwFileSize = GetFileSize(hFile, NULL);if (NULL != lpSize){*lpSize = dwFileSize;}if (dwFileSize > 0){HANDLE hFileMapping;hFileMapping = ::CreateFileMapping(hFile, NULL,PAGE_READONLY, 0, 0, NULL);::CloseHandle(hFile);if (NULL != hFileMapping){LPBYTE pbFile = (PBYTE)::MapViewOfFile(hFileMapping, FILE_MAP_READ, 0, 0, 0);::CloseHandle(hFileMapping);if (NULL != hFileMapping){return pbFile;//::UnmapViewOfFile(pbFile);}}}}return NULL;}void UnmapFile(LPVOID lpFile){if (NULL != lpFile){::UnmapViewOfFile(lpFile);}}
7、获取CPU序列号
CString GetCPUID(){CString strCpuId, strId1, strId2; ULONG s1, s2;__asm{mov eax, 01h //eax=1:取CPU序列号xor edx, edxcpuidmov s1, edxmov s2, eax}strId1.Format("%08X%08X", s1, s2);__asm{mov eax, 03hxor ecx, ecxxor edx, edxcpuidmov s1, edxmov s2, ecx}strId2.Format("%08X%08X", s1, s2);strCpuId = strId1 + strId2; return strCpuId;}
- 代码碎片(1)
- (碎片代码)
- 代码碎片
- 代码碎片
- 代码碎片
- (碎片代码)Button事件添加监听器
- Linux学习碎片(1)
- gluster代码碎片
- android代码碎片(—)
- 测试git 代码碎片
- Android代码碎片(二)
- 代码碎片记录
- qq解析代码碎片
- 代码碎片整理
- 碎片1
- Tarena代码-一些代码碎片
- 代码碎片(用户控件使用客户端脚本)
- 第一行代码笔记 (fragment)碎片的使用
- gcc查找头文件的规则
- JNI 学习笔记
- IOS开发~GCD
- 代码所有制(Code Ownership)
- R语言图像保存
- 代码碎片(1)
- Android学习笔记---26_采用JSON格式返回数据给资讯客户端,效率上要高于xml文件解析和传输
- JNI学习
- 领悟 JavaScript 中的面向对象
- TCP/IP OSI 网络层次介绍
- LWIP完全剖析详解之core/tcp.c
- cs硕士妹子找工作经历【阿里人搜等互联网】
- 一个合格的程序员应该读过哪些书
- cocos2d-x TestCpp 中的Sprite的demo讲解