为什么同样的程序,加到注册表的自启动中就不行了?
我有一个Win32的EXE,在这个EXE中调用了一个VxD,一运行这个EXE就会自动调用VxD, 因为我把用对VxD的调用加到了OnInitDialog() 里,在资源管理器中运行无误,我想让EXE在WINDOWS启动时自动运行,就把它加到了注册表里HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run,但是启动时出现VxD句柄返回值为INVALID_HANDLE_VALUE的错误,我百思不得其解,请高手指教.我已经在RUN里使我的程序在最后了,就是在SYSTRAY之后运行
BOOL CMessageDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
//////打开VxD///////////////////////////////////
hVxD=CreateFile("\\\\.\\Protect.vxd",0,0,0,0,
0,0);
if(hVxD==INVALID_HANDLE_VALUE) //出现错误
{
AfxMessageBox("没有打开虚拟设备驱动程序");
return FALSE;
}
OnUpdateProtect(NULL,NULL); //立即更新数据
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}