我需要将窗体显示为系统范围的顶级窗口,例如屏幕上的所有/所有/其他窗口。我确实意识到这通常是/bad UI practice/,但我在脑海中有非常具体的场景。
我们打算使用普通的Windows PC作为POS收银机。屏幕上有一个打开现金抽屉的选项。如果有人只是在屏幕上按下一些东西,并在店员不注意的情况下拿到钱,那将是相当糟糕的。因此,我们为个人电脑配备了RFID阅读器,每个职员都有自己的RFID卡,用于身份验证。
然而,我需要一种机制来锁定计算机(或使其不可用),当职员离开。注销似乎太麻烦了。
欢迎任何想法。
LP,Dejan
发布于 2009-07-23 15:10:36
嗯,经过一天的反复试验,我找到了某种解决方案。
它包括以下几个步骤:
当“”按钮被按下时,新的(空的)/
已通过注册表禁用
当然,需要一些P/调用。如果有人想做类似的事情,也许他会发现我的简单例子很有帮助-- link text
LP,Dejan
发布于 2009-07-23 10:16:20
我认为您需要研究向下调用Win32应用程序接口来实现这一点。
您需要查看以下内容:
ShowWindow和SetWindowPos
并使用类似下面的代码调用它们(请注意,这是伪代码):
[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);
}发布于 2009-07-23 10:04:23
表单具有TopMost属性。
设置Form.TopMost = true
https://stackoverflow.com/questions/1170738
复制相似问题