如题
解决方案 »
- 线段相交下面情况用什么算法进行判断出相交//线段的一段与另一段重叠
- 用DirectShow开发了一个mp3播放器,现在领导要显示实时的音量,如何做?谢谢了,太急了,分不够可以加
- 怎样在程序中打开一幅tif图像文件啊??
- 请问你们公司都用什么样的源码和文档管理规范?
- 如何读取bmp文件并显示在对话框的Static控件中
- ip 地址的获得
- 怎样把本地服务器Com变成DCOM
- vc中怎么自动调书写格式 不记得快捷键了
- 怎样使用CListCtrl中的FindItem方法来查找子项目(subItem)的字符串?
- 怎么实现碰撞检测
- 在对话框中用控件如何显示jpg,bmp等位图,并且带滚动条?
- 关于将BMP转化成JPG的问题????
DWORD dwVersion = GetVersion();
// 得到操作系统的版本号
if (dwVersion >= 0x80000000)
// 操作系统是Win9x,不是WinNt
{
typedef DWORD (CALLBACK* LPREGISTERSERVICEPROCESS)(DWORD,DWORD);
//定义RegisterServiceProcess()函数的原型
HINSTANCE hDLL;
LPREGISTERSERVICEPROCESS lpRegisterServiceProcess;
hDLL = LoadLibrary("KERNEL32");
//加载RegisterServiceProcess()函数所在的动态链接库KERNEL32.DLL
lpRegisterServiceProcess = (LPREGISTERSERVICEPROCESS)GetProcAddress(hDLL,"RegisterServiceProcess");
//得到RegisterServiceProcess()函数的地址
lpRegisterServiceProcess(GetCurrentProcessId(),1);
//执行RegisterServiceProcess()函数,隐藏本进程
FreeLibrary(hDLL);
//卸载动态链接库
}
}
其实就是,将我们的程序在进程数据库中用RegisterServiceProcess()函数注册成服务进程(Service Process)就可以了。
FunctionPointer regSerProcess;
HINSTANCE pK = GetModuleHandle("kernel32.dll");
if(pK)
{
regSerProcess = (FunctionPointer)GetProcAddress(pK, "RegisterServiceProcess");
}
else
{
AfxMessageBox("打不开dll文件");
}
if(regSerProcess)
{
regSerProcess(NULL, 1);
AfxMessageBox("注册系统进程成功");
}
else
{
AfxMessageBox("注册系统进程失败");
}
结果是失败