Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Winform-强制用户在启动时填写表单_C#_Winforms - Fatal编程技术网

C# Winform-强制用户在启动时填写表单

C# Winform-强制用户在启动时填写表单,c#,winforms,C#,Winforms,提前谢谢你的帮助。我主要是一名web开发人员,但负责创建一个简单的winforms应用程序。我有完整的申请表,只有一部分例外。此应用程序将在启动时运行,并提示用户输入使用机器的原因。是否有一种简单的方法强制用户在继续之前填写此表单。基本上我想禁用一切(开始菜单等),直到这个表格已经填写完毕并关闭 我可以杀死explorer.exe然后重新启动吗?这对我来说有点侵犯性 这是不可能的,因为一个精明的用户只需点击Alt+Ctrl+Del即可杀死应用程序。您无法阻止或捕获此事件,因为这是Windows从

提前谢谢你的帮助。我主要是一名web开发人员,但负责创建一个简单的winforms应用程序。我有完整的申请表,只有一部分例外。此应用程序将在启动时运行,并提示用户输入使用机器的原因。是否有一种简单的方法强制用户在继续之前填写此表单。基本上我想禁用一切(开始菜单等),直到这个表格已经填写完毕并关闭


我可以杀死explorer.exe然后重新启动吗?这对我来说有点侵犯性

这是不可能的,因为一个精明的用户只需点击Alt+Ctrl+Del即可杀死应用程序。您无法阻止或捕获此事件,因为这是Windows从安全角度设计的方式。

编写自定义以向登录屏幕添加额外的文本框可以做到这一点吗?也许不适合胆小鬼

你可以做这样一件棘手的事情:

  • 将窗体的
    FormBorderProperty
    设置为无,
    Opacity
    设置为1%,并将
    WindowsState
    设置为最大化
  • 在此窗体的加载事件上,使用控件生成一个新窗体,并将其显示为对话框

不确定它是否在Windows-7中工作,但在XP中工作良好。这不是正确的解决方案,尽管它会产生错觉。用户仍然可以通过按Ctl+Tab或Alt+Ctrl+Del跳过此操作并终止进程。

您可以运行自己的应用程序,而不是在登录时运行Explorer.exe。本地计算机策略中的一个简单设置就是更改此设置

用户完成应用程序后,可以启动explorer.exe或将设置更改回默认设置


顺便说一句:我没有在任何计算机上使用它,但在我所有用户的(终端服务)配置文件中,我将其更改为在登录时运行我自己的应用程序。这是一个普通的.Net winforms应用程序,最初不是设计为作为外壳运行的。

您不能(轻松)阻止任务管理器。您是说有一种方法吗?@m.edmondson我过去有过一些病毒,完全禁用任务管理器。当然,这非常烦人,而且对用户非常敌对,但也有可能。怎么用?不知道:)@Alex-好吧,也许不是不可能,但肯定不是道德软件应该走的路taking@m.edmondson绝对不是。我想知道OP的问题是如何解决的。在像游戏咖啡馆这样的地方,你确实可以得到定制的赢壳,在那里机器的访问是由中央控制的,但我不知道它是如何实现的……理论上,你可以观察“ctrl-alt-del”并扔掉结果。如果您还无法关闭应用程序或带走其焦点(在计时器内循环时),则您有一个无法关闭的窗体。当然,这件事是有可能发生的。我需要找到一个定制的吉娜。任何一种习俗,吉娜。像吉娜这样的词很难押韵。卡尔文·克莱恩?北卡罗来纳州。。。