如题
解决方案 »
- 请朋友帮我做俩个小软件吧,基于对话框的!
- [out]类型参数如何返回给网页的问题
- 如何在不同的DC下显示同一位图(保存在内存中的)!!!!!!!!分不够可以再加
- 菜鸟提问,如何禁止窗口大小改变
- 三年了,第一次跳槽找工作,明天去面试。大家给点意见,支持一下。分不多,只有60分了。
- CArray<ObjectStruct,ObjectStruct> objArray;?
- 我想要SMTP的语法(HELO MAIL FROM那些),直接给出URL或贴出来,谢谢
- 请多多指教
- MFC 如何实现对任务栏下的QQ好友发送消息
- 编译错误,请高手指导!谢谢!
- Ffmpeg 中关于 将 YUV420 转换成 rgb 的问题
- 界面上鼠标响应问题
照的话,可以放到 启动组 中,
也可以把你的程序写到HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run里面,实现开机启动这样的效果是,启动时,在你的桌面上会自动弹出你的程序对话框
与HKEY_CURRENT_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
有上面区别吗
程序放在哪个下面 执行快?
里面的Userinit是在shell之前运行,由winlogon.exe创建进程
HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Winlogon
里面的shell是自定义的外壳,由userinit.exe创建进程
这两个都符合你的要求
真不知道怎么弄 望Lactoferrin
指点
http://msdn.microsoft.com/en-us/library/ms724875(v=VS.85).aspx
的后面添加了一项目 但是重启后 完全不执行我的程序啊 ?高手指点
TXT REG_SZ D:\MYTEST.EXE
然后我重启机器,这个程序就没有执行啊
里面的shell是自定义的外壳,由userinit.exe创建进程
==================
将这里的shell改成你的程序,然后改一下你的程序,用CreateProcess启动explorer来启动桌面就行了。
我不是这样做的 ,但一样能启动了
在userint 中数据里添加的我看到后面是逗号 我想应该在这里添加
多谢可爱的兔子党
SetWindowPos
或者修改shell,把你的程序作为shell,不运行explorer,这样原来的桌面和任务栏就不会出现
this->SetWindowPos(&wndTopMost ,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE |SWP_SHOWWINDOW);
还是不行,出现任务栏
不过你不想任务栏出来,又要桌面干什么啊?
GetWindowPlacement(&m_OldWndpl); //保存原窗口位置 CRect WindowRect,ClientRect;
GetWindowRect(&WindowRect); //获取普通窗口位置 //获取各个控制条之外的客户区位置
RepositionBars(0,0xffff,AFX_IDW_PANE_FIRST,reposQuery,&ClientRect);
ClientToScreen(&ClientRect); //获取屏幕分辩率
int nFullWidth=GetSystemMetrics(SM_CXSCREEN);
int nFullHeight=GetSystemMetrics(SM_CYSCREEN); //计算全屏显示的窗口位置
m_FullScreenRect.left=WindowRect.left-ClientRect.left;
m_FullScreenRect.top=WindowRect.top-ClientRect.top;
m_FullScreenRect.right=(WindowRect.right-ClientRect.right)+nFullWidth;
m_FullScreenRect.bottom=(WindowRect.bottom-ClientRect.bottom)+nFullHeight;
m_bFullScreen=TRUE; //全屏标志 //进入全屏显示
WINDOWPLACEMENT wndpl;
wndpl.length=sizeof(WINDOWPLACEMENT);
wndpl.flags=0;
wndpl.showCmd=SW_SHOWNORMAL;
wndpl.rcNormalPosition=m_FullScreenRect;
SetWindowPlacement(&wndpl);
以前在Run\里启动的时候,是能整个全屏的
现在放在\WINDOWS NT\winlongon\
后不能满屏了
当你的程序完成验证要退出时,再用createprocess运行userinit.exe
你先用你的程序代替shell,通过验证之后用CreateProcess启动expleror就行了。
而且如果你的客户端启动的同时也启动桌面的话,你的目的就达不到了,因为用一下快捷键就会绕过去。
当验证通过后再切换回原来的Default桌面,这样可防止别人用任务管理器结束你的进程
因为winlogon只会在Default运行taskmgr,如果切换成了别的桌面taskmgr就看不到了
桌面图标和任务栏就归explorer.exe管
memset(&info,0,sizeof(info));
info.cb=sizeof(info);
PROCESS_INFORMATION pinfo;
char cmd[128];
strcpy(cmd,"Explorer.exe");
if(!CreateProcess(NULL,cmd,NULL,NULL,FALSE,0,NULL,NULL,&info,&pinfo))
{
return;
}启动的是 我的文档
我现在都看不到桌面了在任务管理器上运行 Exlorer.exe 也是一样 打开我的文档
不要改HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon里面的shell
可以改HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon里面的shell
你不要说没有,没有就自己建一个
http://msdn.microsoft.com/en-us/library/ms724875(v=VS.85).aspx
我现在在用你的办法 userinit。exe
也可以把你的程序写到HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run里面,实现开机启动