VC根据进程名获得进程ID 和 VC获得系统特殊文件夹 SHGetSpecialFolderPath 和 VC写入注册表,使程序开机启动
来源:互联网 发布:短域名批量生成 编辑:程序博客网 时间:2024/03/29 22:24
#include <tlhelp32.h> ////枚举进程头文件
//VC根据进程名获得进程ID
DWORD GetProcessIDFromName(char *name)
{
HANDLE snapshot;
PROCESSENTRY32 processinfo;
processinfo.dwSize = sizeof(processinfo);
snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
if(snapshot == NULL)
return FALSE;
BOOL status = Process32First(snapshot, &processinfo);
while(status)
{
if(_stricmp(name,processinfo.szExeFile)==0)
return processinfo.th32ProcessID;
status = Process32Next(snapshot,&processinfo);
}
return -1;
}
//VC写入注册表,使程序开机启动
if(autoopendlp == 1)
{
HKEY hKey;
LPCTSTR lpRun = "Software//Microsoft//Windows//CurrentVersion//Run";
long lRet = RegOpenKeyEx(HKEY_LOCAL_MACHINE, lpRun, 0, KEY_WRITE, &hKey);
if(lRet == ERROR_SUCCESS)
{
char pFileName[MAX_PATH] = {0};
DWORD dwRet = GetModuleFileName(GetModuleHandle(AfxGetApp()-> m_pszAppName), pFileName, MAX_PATH);
lRet = RegSetValueEx(hKey, "ctrl", 0, REG_SZ, (LPBYTE)pFileName, strlen(pFileName));
MessageBox(pFileName);
if(lRet != ERROR_SUCCESS)
{
AfxMessageBox("系统参数错误,不能随系统启动");
}
}else
RegDeleteValue(hKey,"ctrl");
RegCloseKey(hKey);
}
//VC获得系统特殊文件夹 SHGetSpecialFolderPath
SHGetSpecialFolderPath
作用:
获取特定文件夹路径
原型:
BOOL SHGetSpecialFolderPath(
HWND hwndOwner,
LPTSTR lpszPath,
int nFolder,
BOOL fCreate
);
示例:
获得自启动文件夹的路径
TCHAR filePath[MAX_PATH];
::SHGetSpecialFolderPath(NULL, filePath, CSIDL_STARTUP, FALSE);
以下是nFolder值的对应情况
获取值的机器为多普达838
CSIDL_STARTMENU —— \Windows\“开始”菜单
CSIDL_STARTUP —— \Windows\StartUp
CSIDL_WINDOWS —— \Windows
CSIDL_RECENT ——
CSIDL_PROGRAMS —— \Windows\“开始”菜单\程序
CSIDL_PROGRAM_FILES —— \Program Files
CSIDL_PERSONAL —— \My Documents
CSIDL_MYVIDEO ——\My Documents\我的视频
CSIDL_MYPICTURES —— \My Documents\我的图片
CSIDL_MYMUSIC —— \My Documents\我的音乐
CSIDL_FONTS —— \Windows\Fonts
CSIDL_FAVORITES —— \Windows\Favorites
CSIDL_DESKTOPDIRECTORY ——
CSIDL_DESKTOP —— \My Documents
CSIDL_APPDATA —— \Application Data
- VC根据进程名获得进程ID 和 VC获得系统特殊文件夹 SHGetSpecialFolderPath 和 VC写入注册表,使程序开机启动
- VC 根据线程句柄获得线程ID 根据线程句柄获得进程ID
- VC根据进程ID获得主窗口句柄(不是进程句柄)
- VC获得系统文件夹路径
- VC:程序、进程和线程
- VC查看系统进程ID,终止进程的程序源码
- vc修改注册表开机自动启动程序
- VC++ 通过进程名或进程ID获取进程句柄
- VC++ 通过进程名或进程ID获取进程句柄
- VC获取进程启动和结束时间
- VC获取进程启动和结束时间
- VC获取进程启动和结束时间
- VC获得本地计算机名和IP地址
- 【转】VC中如何启动其它程序,并且获得启动程序的PID 创建进程CreateProcess函数
- VC开机自启动(一)需管理员权限 写入注册表
- vc判断指定进程或程序名是否存在和进程为64或者32位
- VC 获得系统时间、程序运行时间
- VC注册表写入和读取字符串
- 后海日记(7)
- 《你的孤独,虽败犹荣》读后感
- Dollars即时聊天客户端应用源码
- 支付宝向他付款代码
- SoftReference, ReferenceQueue 自己控制内存
- VC根据进程名获得进程ID 和 VC获得系统特殊文件夹 SHGetSpecialFolderPath 和 VC写入注册表,使程序开机启动
- JAVA Webservice
- 实用教程
- 正则化方法:L1和L2 regularization、数据集扩增、dropout
- 线性表
- linux下oracle数据库执行sql脚本乱码问题
- jsessionid的困扰
- quick-cocos2dx Socket连接若干问题总结
- UVALive 6834