V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
yss729
V2EX  ›  C#

c# 开机自动启动,不允许显示系统桌面

  •  
  •   yss729 · 2019-02-11 16:25:54 +08:00 · 9774 次点击
    这是一个创建于 2116 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近接到一个需求,要做一个自定义桌面,限制系统级别的操作,比如禁用注册表,任务管理器,开始菜单和安全模式等, 员工电脑只能在这个桌面上管理日常的应用,目的是方便公司管理员管理。

    先不讨论通过组策略或者云桌面什么的。现有的功能做的差不多了,但是开机自启动,客户想输入密码从系统欢迎页进入系统后,能直接弹出自定义桌面。目前实际过程中会在原系统桌面上停留个几秒时间来加载系统服务,有没有办法在欢迎页进入到系统后就立马弹出我的程序,或者换一种思路能控制欢迎页面的等待时间,所有东西加载完后进去就看到自定义的桌面。

    12 条回复    2019-07-09 12:01:18 +08:00
    mmdsun
        1
    mmdsun  
       2019-02-11 16:31:05 +08:00
    记得 windows embedded standard 可以自定义启动桌面。win7 应该差不多。看一下 embedded standard 的文档吧。
    ixiaozhi
        2
    ixiaozhi  
       2019-02-11 16:34:56 +08:00   ❤️ 1
    有个简单的想法,桌面不留任何快捷方式,任务栏隐藏,换个应用第一屏的壁纸...
    mmdsun
        3
    mmdsun  
       2019-02-11 16:35:48 +08:00   ❤️ 1
    关键字是:Custom Shell 可以改注册表。谷歌一下
    Mithril
        4
    Mithril  
       2019-02-11 16:46:29 +08:00   ❤️ 1
    Desktop 实际上是 Explorer 那个程序提供的,你可以试试把它直接禁掉,同时设置一个 User Logon 启动的程序。
    当然最好的办法就是 @mmdsun 说的直接用 custom shell
    yss729
        5
    yss729  
    OP
       2019-02-11 16:49:27 +08:00
    @mmdsun 谢谢大神,我目前程序是用 c#写的,基于.netframework4.5,如果用 custom shell 方案是要重写的对吧,而且好像还要用 c/c++?
    yss729
        6
    yss729  
    OP
       2019-02-11 16:53:33 +08:00
    @Mithril 谢谢,你这个也是一个办法,我也想过,我的程序是用 c#写的,如果能控制到进入系统前先结束 explorer.exe 进程,能保证我的桌面能起来那也是可以的,无非在我桌面启动后再恢复那个进程,我的程序已设置优先保证在最前端位置,最大化,禁用了最小化和关闭按钮,包括禁用了一些能产生退出效果的快捷键。custom shell 可能是更好的方案,但现阶段我只能通过应用层面去控制
    Mithril
        7
    Mithril  
       2019-02-11 16:56:39 +08:00
    @yss729 那个 Explorer 启动不启动无所谓,不启动也就是部分系统功能用不了,应该不会影响你这种程序的。
    mmdsun
        8
    mmdsun  
       2019-02-11 16:58:54 +08:00   ❤️ 1
    不用 c++,办法很多 。这里有不少解决思路:

    https://stackoverflow.com/questions/33364908/how-to-run-an-application-as-shell-replacement-on-windows-10-enterprise

    @echo off
    echo Bootstrapping, please wait ...
    start /b "Bootstrap" "C:\vmwatcher\VMViewClientWatcher.exe"

    https://msdn.microsoft.com/en-us/library/ms838576(v=WinEmbedded.5).aspx
    yss729
        9
    yss729  
    OP
       2019-02-11 17:14:24 +08:00
    @mmdsun 非常感谢,根据那个注册表键把 explorer.exe 改成我的应用程序应该就能完美解决! 第一次在 V2EX 提问,大家真的很棒!!
    Linda0822
        10
    Linda0822  
       2019-07-05 11:19:26 +08:00
    @mmdsun 新人有个问题想请教大家,win 系统启动服务后不能编辑和修改 IP 和 DNS 信息,适应系统要 xp 到 win10,这个有人懂没?
    mmdsun
        11
    mmdsun  
       2019-07-06 12:02:44 +08:00 via Android
    @Linda0822 这块不太了解。建议你单独开贴提问吧。
    Linda0822
        12
    Linda0822  
       2019-07-09 12:01:18 +08:00
    @mmdsun 好的谢谢
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5582 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 06:49 · PVG 14:49 · LAX 22:49 · JFK 01:49
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.