首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用C#制作表单系统模型?

如何用C#制作表单系统模型?
EN

Stack Overflow用户
提问于 2009-07-23 09:56:02
回答 3查看 3.6K关注 0票数 8

我需要将窗体显示为系统范围的顶级窗口,例如屏幕上的所有/所有/其他窗口。我确实意识到这通常是/bad UI practice/,但我在脑海中有非常具体的场景。

我们打算使用普通的Windows PC作为POS收银机。屏幕上有一个打开现金抽屉的选项。如果有人只是在屏幕上按下一些东西,并在店员不注意的情况下拿到钱,那将是相当糟糕的。因此,我们为个人电脑配备了RFID阅读器,每个职员都有自己的RFID卡,用于身份验证。

然而,我需要一种机制来锁定计算机(或使其不可用),当职员离开。注销似乎太麻烦了。

欢迎任何想法。

LP,Dejan

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-07-23 15:10:36

嗯,经过一天的反复试验,我找到了某种解决方案。

它包括以下几个步骤:

当“”按钮被按下时,新的(空的)/

  1. /被创建。程序在此桌面上运行,具有全屏表单和登录程序。没有其他东西可以切换到此桌面或在此桌面上运行。

已通过注册表禁用

  1. 任务管理器。当然,未被邀请的人仍然可以访问Ctrl键、Alt键和Delete键,但他不能在那里做任何特别有害的事情。

  1. Alt-F4等被禁用。

  1. 进行身份验证后,程序将切换回原始桌面,一切照常进行。

当然,需要一些P/调用。如果有人想做类似的事情,也许他会发现我的简单例子很有帮助-- link text

LP,Dejan

票数 8
EN

Stack Overflow用户

发布于 2009-07-23 10:16:20

我认为您需要研究向下调用Win32应用程序接口来实现这一点。

您需要查看以下内容:

ShowWindowSetWindowPos

并使用类似下面的代码调用它们(请注意,这是伪代码):

代码语言:javascript
复制
[DllImport("user32.dll")]
static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);

static void ShowTopmost(Form frm)
{
     ShowWindow(frm.Handle, SW_SHOWMAXIMIZED);
     SetWindowPos(frm.Handle.ToInt32(), HWND_TOPMOST,
        0, 0, [width of desktop], [height of desktop],
        SWP_SHOWWINDOW);
}
票数 1
EN

Stack Overflow用户

发布于 2009-07-23 10:04:23

表单具有TopMost属性。

设置Form.TopMost = true

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1170738

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档