已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C 常用操作函数 载入动态库 bool LoadDll HttpDownDll LoadLibrary HTTPDOWNDLL dll if HttpDownDll NULL MessageBox 0 载 入 动 态 库 a 错洙 误 错洙 误 MB OK MB ICONWARNING FreeLibrary HttpDownDll return false SendCommand SendCommandFunc GetProcAddress HttpDownDll SendCommand if SendCommand NULL MessageBox 0 GetProcAddress 错洙 误 错洙 误 MB OK MB ICONWARNING FreeLibrary HttpDownDll return false return true 卸载动态库 bool FreeDll FreeLibrary HttpDownDll SendCommand NULL return true 字符串分割 std vector split std string str std string pattern std string size type pos std vector result str pattern 扩 展 1 字 符 串 以 方 便 操 作痢 int size str size for int i 0 i size i pos str find pattern i if pos size std string s str substr i pos i result push back s i pos pattern size 1 return result UTF8 转 GBK void UTF8ToGBK std string memset szOut 0 256 strcpy szOut s c str unsigned short wszGbk NULL char szGbk NULL 长度 int len MultiByteToWideChar CP UTF8 0 LPCSTR szOut 1 NULL 0 wszGbk new unsigned short len 1 memset wszGbk 0 len 2 2 MultiByteToWideChar CP UTF8 0 LPCSTR szOut 1 LPWSTR wszGbk len 长度 len WideCharToMultiByte CP ACP 0 LPWSTR wszGbk 1 NULL 0 NULL NULL szGbk new char len 1 memset szGbk 0 len 1 WideCharToMultiByte CP ACP 0 LPWSTR wszGbk 1 szGbk len NULL NULL szOut szGbk 这样得到的 szOut 不正确 因为此句意义是将 szGbk 的首地址赋给 szOut 当 delete szGbk 执行后 szGbk 的内存空间将被释放 此时将得不到 szOut 的内容 memset szOut 0 strlen szGbk 1 改将 szGbk 的内容赋给 szOut 这样即使 szGbk 被释放也能得到正确的值 memcpy szOut szGbk strlen szGbk s szOut delete szGbk delete wszGbk 删除文件 int DeleteFileFunc string v SourceFile int l Result 0 access char int 判断文件是否存在 存在 返回 0 不存在 返回 1 access const char path int mode mode 的值 00 是否存在 02 写权限 04 读权限 06 读写权限 char l SourceFile 256 0 strcpy l SourceFile v SourceFile c str if access l SourceFile 0 如果文件存在 文件为只读无法删除 去掉文件只读属性 SetFileAttributes l SourceFile 0 if DeleteFile l SourceFile 删除成功 l Result 0 else 无法删除 文件只读或无权限执行删除 cout source 无法删除 文件为只读属性或无删除权限 endl l Result 1 return l Result 重命名文件 int RenameFileFunc string v SourceFile string v NewFileName int l Result 0 char l SourceFile 256 0 char l NewFileName 256 0 strcpy l SourceFile v SourceFile c str strcpy l NewFileName v NewFileName c str if access l SourceFile 0 如果文件存在 if rename l SourceFile l NewFileName 删除成功 l Result 0 else 无法重命名 文件打开或无权限执行重命名 cout 文件无法重命名 可能原因如下 endl cout t 1 newname 已存在 endl t 2 newname 正在使用 未关闭 endl t 3 你没有权限重命名此文件 6 vista or later else return FALSE int lang 0 char l Language 10 0 char l Language ReadXmlFile System Language if stricmp l Language en 0 lang 1 if lang 1 if bXPLaterOS SetThreadUILanguage MAKELANGID LANG ENGLISH SUBLANG ENGLISH US else SetThreadLocale MAKELCID MAKELANGID LANG ENGLISH SUBLANG ENGLISH US SORT DEFAULT else if lang 0 if bXPLaterOS SetThreadUILanguage MAKELANGID LANG CHINESE SUBLANG CHINESE SIMPLI FIED else SetThreadLocale MAKELCID MAKELANGID LANG CHINESE SUBLANG CHINESE SIMPLIFIED SORT DEFAULT else return FALSE return TRUE 读写 xml 文件 char ReadXmlFile char v FatherNodeName char v NodeName char v Default char l ComName 20 0 char l TempStr 20 0 char l XmlPath 256 0 char l ExePath 256 0 GetModuleFileName NULL l ExePath 256 int l ExePathLen strlen l ExePath for int i l ExePathLen 1 i 0 i if l ExePath i memcpy l XmlPath l ExePath i strcat l XmlPath g XmlFileName CTinyXMLLib l TinyXml strcpy l TinyXml m XmlPath l XmlPath int l Result l TinyXml LoadXml if l Result 0 l TinyXml ReadXmlNode v FatherNodeName v NodeName v Default l TempStr else strcpy l TempStr v Default return l TempStr char ReadXmlFile char v XmlFileName char v FatherNodeName char v NodeName char v Default char l XmlPath 256 0 char l TempStr 20 0 char l ExePath 256 0 GetModuleFileName NULL l ExePath 256 int l ExePathLen strlen l ExePath for int i l ExePathLen 1 i 0 i if l ExePath i memcpy l XmlPath l ExePath i strcat l XmlPath strcat l XmlPath v XmlFileName CTinyXMLLib l TinyXml strcpy l TinyXml m XmlPath l XmlPath int l Result l TinyXml LoadXml if l Result 0 l TinyXml ReadXmlNode v FatherNodeName v NodeName v Default l TempStr else strcpy l TempStr v Default return l TempStr int WriteXmlFile char v XmlFileName char v FatherNodeName char v NodeName char v Value char l ComName 20 0 char l XmlPath 256 0 char l ExePath 256 0 GetModuleFileName NULL l ExePath 256 int l ExePathLen strlen l ExePath for int i l ExePathLen 1 i 0 i if l ExePath i memcpy l XmlPath l ExePath i strcat l XmlPath strcat l XmlPath v XmlFileName CTinyXMLLib l TinyXml strcpy l TinyXml m XmlPath l XmlPath l TinyXml LoadXml l TinyXml WriteXmlNode v FatherNodeName v NodeName v Value return 0 读 ini 文件 int CCommServerDlg ReadIniFile char l TempStr 2048 0 char l CurrentDir 256 0 GetPrivateProfileString Application RemoteFileListURL http 172 18 1 170 9131 Download FileList txt l TempStr 2048 g config name GetPrivateProfileString Application RemoteDirURL http 172 18 1 170 9131 Download l TempStr 2048 g config name GetCurrentDirectory 256 l CurrentDir strcat l CurrentDir Download CheckFolderExist l CurrentDir GetPrivateProfileString Application LocalFileList l FileListPath l TempStr 2048 g config name GetPrivateProfileString Application LocalFileDir l LocalFileDir l TempStr 2048 g config name return 0 读文件 void Read char v Path char v Buffer const int v BufferLen HANDLE hFile CreateFile v Path GENERIC READ 0 NULL OPEN EXISTING NULL NULL if hFile INVALID HANDLE VALUE SetFilePointer hFile 1 NULL FILE END SetFilePointer hFile 81920 NULL FILE BEGIN char l Buffer 5 0 DWORD nNumberOfBytesRead BOOL bRet ReadFile hFile l Buffer v BufferLen memcpy v Buffer l Buffer v BufferLen TODO CloseHandle hFile 写文件 void Write char v Path char v Content const int v ContentSize HANDLE hFile CreateFile v Path GENERIC WRITE 0 NULL OPEN EXISTING NULL NULL if hFile INVALID HANDLE VALUE SetFilePointer hFile 1 NULL FILE END SetFilePointer hFile 81920 NULL FILE BEGIN DWORD nNumberOfBytesWritten WriteFile hFile v Content v ContentSize TODO CloseHandle hFile 查找进程 BOOL FindProcess int i 0 PROCESSENTRY32 pe32 pe32 dwSize sizeof pe32 HANDLE hProcessSnap CreateToolhelp32Snapshot TH32CS SNAPPROCESS 0 if hProcessSnap INVALID HANDLE VALUE i 0 BOOL bMore Process32First hProcessSnap while bMore printf 进程名称 s n pe32 szExeFile if stricmp RWPEPROC exe pe32 szExeFile 0 printf 进程运行中 i 1 bMore Process32Next hProcessSnap if i 1 大于 1 排除自身 return true else return false 路径操作 char l ExePath 256 0 char l MainExePath 256 0 GetCurrentDirectory 256 l ExePath GetModuleFileName NULL l ExePath 256 int l ExePathLen strlen l ExePath for int i l ExePathLen 1 i 0 i if l ExePath i memcpy l MainExePath l ExePath i strcat l MainExePath RWPEPROC exe BOOL APIENTRY DllMain HMODULE hModule DWORD ul reason for call LPVOID lpReserved switch ul reason for call case DLL PROCESS ATTACH char l Buffer l Buffer getcwd NULL 0 getcwd DllPath MAXPATH HMODULE module GetModuleHandle 0 char szBuff MAX PATH 0 GetModuleFileName module szBuff sizeof szBuff int l Pause 0 case DLL THREAD ATTACH case DLL THREAD DETACH case DLL PROCESS DETACH break return TRUE 查找指定进程 判断指定进程是否存在 int IsProcExist char FileName 50 bool IsDelete char NameBuff MAX PATH char pFileName pFileName 转化为大写后的字符串指针 char pNameBuff NameBuff 转化为大写后的字符串指针 BOOL bRes 返回结果 HINSTANCE hInstance 动态库句柄 HANDLE hHandle 进程句柄 int i j 循环变量 int len funEnumPorcess EnumProcesses funGetModuleFileNameEx GetModuleFileNameEx DWORD buffer maxNum factNum maxNum MAXPROCESS factNum MAXPROCESS buffer DWORD malloc maxNum hInstance LoadLibrary psapi dll 装载 psapi dll if hInstance EnumProcesses funEnumPorcess GetProcAddress hInstance EnumProcesses if EnumProcesses bRes EnumProcesses buffer maxNum 枚举进程 得到进程名 称和实际进程总大小 if bRes factNum sizeof DWORD 计算实际进程个数 GetModuleFileNameEx funGetModuleFileNameEx GetProcAddress hInstance GetModuleFileNameExA if GetModuleFileNameEx for i 0 i l ProcNums HANDLE hHandle OpenProcess PROCESS ALL ACCESS FALSE pe32 th32ProcessID 获取进程句柄 TerminateProcess hHandle 0 CloseHandle hHandle bMore Process32Next hProcessSnap if i 1 大于 1 排除自身 return true else return false 写日志 删除日志 目录是否存在的检查 不存在建立 bool CheckFolderExist char v StrPath WIN32 FIND DATA l Wfd bool l Result false HANDLE hFind FindFirstFile v StrPath if hFind INVALID HANDLE VALUE else if CreateDirectory v StrPath NULL l Result false FindClose hFind return l Result 遍历目录中所有的文件 BOOL DirectoryList char v Path WIN32 FIND DATA l WFindData HANDLE hFind char l FilePathName 128 0 构造路径 char l FullPathName 128 0 bool l SearchFinished false strcpy l FilePathName v Path strcat l FilePathName hFind FindFirstFile l FilePathName if hFind INVALID HANDLE VALUE printf 搜索失败 return 0 while FindNextFile hFind DeleteFile l FullPathName FindClose hFind RemoveDirectory v Path return 0 int DeleteLogDir int l Result 0 time t t time 0 for int i 5 i 13 i time t l DeleteDate t i 24 60 60 三天前 char l DeleteDirName 64 0 strftime l DeleteDirName sizeof l DeleteDirName y m dServiceLogs localtime char l DeleteDirPath 256 0 strcpy l DeleteDirPath logpath strcat l DeleteDirPath Logs strcat l DeleteDirPath l DeleteDirName DirectoryList l DeleteDirPath return l Result bool LocalWriteLog char v FileName char v Module const char v LogInfo time t t time 0 char l FileName 64 0 char l DirName 256 0 strcpy l DirName logpath strcat l DirName Logs char l Temp 3 CheckFolderExist l DirName char l DirYMD 32 0 strftime l DirYMD sizeof l DirYMD y m dServiceLogs localtime strcat l DirName strcat l DirName l DirYMD CheckFolderExist l DirName strftime l FileName sizeof l FileName Y m d localtime strcat l FileName v FileName if v FileName NULL v Module NULL v LogInfo NULL fstream l FileHandle strcat l DirName strcat l DirName l FileName l FileHandle open l DirName ios app if l FileHandle char l Buffer 50 0 memcpy l Buffer l FileName strlen l FileName memcpy l Buffer strlen l FileName Open Log Error 20 MessageBox NULL l Buffer error MB OK time t t time 0 char tmp 64 strftime tmp sizeof tmp d X localtime l FileHandle TIME tmp MODULE v Module v LogInfo endl l FileHandle close return true return false 启动程序 以 system 权限启动显示界面 for win7 DWORD stdcall LaunchAppIntoDifferentSession LPTSTR lpCommand DWORD dwRet 0 PROCESS INFORMATION pi STARTUPINFO si DWORD dwSessionId HANDLE hUserToken NULL HANDLE hUserTokenDup NULL HANDLE hPToken NULL HANDLE hProcess NULL DWORD dwCreationFlags HMODULE hInstKernel32 NULL typedef DWORD WINAPI WTSGetActiveConsoleSessionIdPROC WTSGetActiveConsoleSessionIdPROC WTSGetActiveConsoleSessionId NULL hInstKernel32 LoadLibrary Kernel32 dll if hInstKernel32 return FALSE OutputDebugString LaunchAppIntoDifferentSession 1 n WTSGetActiveConsoleSessionId WTSGetActiveConsoleSessionIdPROC GetProcAddress hInstKernel32 WTSGetActiveConsoleSessionId Log the client on to the local computer dwSessionId WTSGetActiveConsoleSessionId do WTSQueryUserToken dwSessionId dwCreationFlags NORMAL PRIORITY CLASS CREATE NEW CONSOLE ZeroMemory si cb sizeof STARTUPINFO si lpDesktop winsta0 default ZeroMemory TOKEN PRIVILEGES tp LUID luid if OpenProcessToken GetCurrentProcess TOKEN ADJUST PRIVILEGES TOKEN QUERY TOKEN DUPLICATE TOKEN ASSIGN PRIMARY TOKEN ADJUST SESSIONID TOKEN READ TOKEN WRITE break else if LookupPrivilegeValue NULL SE DEBUG NAME break else tp PrivilegeCount 1 tp Privileges 0 Luid luid tp Privileges 0 Attributes SE PRIVILEGE ENABLED if DuplicateTokenEx hPToken MAXIMUM ALLOWED NULL SecurityIdentification TokenPrimary break else Adjust Token privilege if SetTokenInformation hUserTokenDup TokenSessionId void break else if AdjustTokenPrivileges hUserTokenDup FALSE break else LPVOID pEnv NULL if CreateEnvironmentBlock else pEnv NULL Launch the process in the client s logon session if CreateProcessAsUser hUserTokenDup client s access token NULL file to execute lpCommand command line NULL pointer to process SECURITY ATTRIBUTES NULL pointer to thread SECURITY ATTRIBUTES FALSE handles are not inheritable dwCreationFlags creation flags pEnv pointer to new environment block NULL name of current directory break while 0 Perform All the Close Handles task if NULL hUserToken CloseHandle hUserToken else if NULL hUserTokenDup CloseHandle hUserTokenDup else if NULL hPToken CloseHandle hPToken else return dwRet 建立取消磁盘映射连接 int stdcall CreateConn char v LocalName char v RemoteName char v PSW char v UserName char v ReturnBuffer int l Result 0 try char l ReturnBuffer 256 0 DWORD dwRetVal NETRESOURCE nr DWORD dwFlags memset nr dwType RESOURCETYPE A
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025电子产品买卖合同(范本)
- 业务合同审核与执行监控工具
- 2025造价工程师劳动合同
- 财务预算编制模板多场景应用财务分析支持
- 周末的一次小小事情作文6篇范文
- 小丽的心灵手巧通过事例展现人物特点写人作文14篇范文
- 固定资产盘点清单企业版本
- 供应链管理标准化模板介绍
- 企业文化建设方案模板含活动策划与落地执行
- 七喜型柠檬香精行业深度研究报告
- 土增税清算汇报
- 信用卡安全基础知识培训课件
- 医疗质量安全专项整治行动
- 《旅游与酒店新媒体营销》高职旅游与酒店管理专业全套教学课件
- 养老院护工培训课件内容
- 辐射安全与防护考试题及答案
- 钻床工考试题库及答案
- 农药减量增效培训课件
- 2026年中考语文作文押题范文4篇
- 职业规划模板课件图片
- 新生儿肠液回输临床实践与护理要点
评论
0/150
提交评论