草庐IT

失去焦点

全部标签

.net - 在 .Net 中获取当前窗口的列表,并为其中一个提供焦点

在不求助于PInvoke的情况下,.net中是否有一种方法可以找出打开了哪些窗口?这与询问内存中正在运行哪些应用程序略有不同。例如,Firefox可以运行,但可以是多个窗口。基本上,我只想了解与任务栏(和alt-tab?)相同的信息。此外,一旦我引用了一个窗口,是否有任何方法可以通过编程方式为其提供焦点?有什么方法可以用托管代码做到这一点吗? 最佳答案 您可以查看新的UIAutomation.NET3.5中的内容。它应该屏蔽大量的PNovke内容,并与Web和WPF应用程序一起工作。我还没有使用过它,所以我没有更具体的地方可以指导你

.net - 使 Windows 应用程序始终位于其他窗口之上并处于焦点位置 - 始终

我正在创建一个kiosk应用程序,我想确保它无论如何始终位于其他Windows应用程序和Windows任务栏之上。我已经阻止了Windows键盘命令(alt-tab等),但仍有可能导致应用程序启动并窃取屏幕的情况。是否可以从.NET挂接到Windows并持续测试应用程序是否具有焦点并位于顶部,如果没有,则为其提供焦点并使其位于顶部? 最佳答案 我实际上在生产信息亭上工作过(不过它是Windows2000)。解决方案是将我们的应用程序作为shell运行。您可以通过在Shell值中用您的应用程序替换Explorer.exe来部分完成此操

windows - 如何让 VB.net 2008 应用程序窃取 Windows 7 上的焦点?

我正在尝试在VB.net中创建一个应用程序,一旦出现特定条件(在本例中为正在创建的文件),它就会出现在前面。我尝试了以下代码,但它只会导致任务栏按钮在Windows7上闪烁:Me.Activate()我理解这样做的原因,我完全理解为什么人们不希望任何随机应用程序窃取焦点(我也讨厌它)。这是一个用途极为有限的应用程序(实际上只有3台计算机会使用它),在这种情况下,用户会希望该应用程序在前面弹出(也可以选择将其关闭)。如果这仍然可以在Windows7上执行,您有什么想法吗? 最佳答案 最简单的方法是更改​​ForegroundLockT

windows - Visual Studio 正在窃取焦点

最近一段时间,VisualStudio抢走了焦点。奇怪的是,在Windows中使用其他应用程序(例如Chrome)时会发生这种情况,但在VisualStudio中工作时(例如打字)也会发生这种情况。到目前为止我的考虑:只有在VS运行时才会发生。出现在VS2012Premium和VS2012Professional中。在安全模式下也会发生。尝试重新安装。没有成功。已卸载第3方扩展程序。没有成功。焦点转到“无处”-我没有看到任何应用程序或窗口具有焦点。此外,[Windows]+[Arrayup]不会最大化任何内容。[Alt]+[Space]无效。[Alt]+[F4]无效。我运行的是Wind

c++ - 从另一个应用程序窗口获取焦点控件的句柄

我有一个应用程序有一些控件(按钮、编辑等)的窗口。我需要模拟用户事件(如Tab单击和输入文本)。我正在使用keybd_event在制表符排序控件(编辑框)之间移动焦点并向它们输入文本。但我需要知道当前焦点控件的句柄(例如从中获取文本或更改其样式)。我该如何解决?附言我现在正在编写Delphi,但这并不重要(Win-API无处不在)。 最佳答案 请参阅GetFocus中的备注部分'用于解释以下示例的文档。functionGetFocus:HWND;varWnd:HWND;TId,PId:DWORD;beginResult:=windo

c# - 如何实现焦点重置以在任何操作之前更新 TextBox 的 BindingSource

当我无法使用UpdateTrigger=PropertyChanged进行绑定(bind)时,我观察到绑定(bind)到textproperties的文本框出现了一些意外的或至少不完全符合我的需求的行为。可能这不是文本框的问题,但其他编辑器也会出现。在我的示例中(附有源代码),我有一个绑定(bind)到某个集合的WPFTabControl。在每个选项卡上,您可以编辑集合中的一个项目,您可以通过多种方式触发保存操作,这应该将编辑保存到某个模型。绑定(bind)到每个项目属性的文本框(有意)保留为默认更新触发“OnFocusLost”。这是因为在设置新值时会发生一些昂贵的验证。现在我发现至

c# - 当应用程序未获得焦点时监听键

我有一个应用程序(C#4.0-WPF),它是隐藏的,可以通过单击系统托盘图标或我创建的其他框架(停靠在左侧和最顶部的小框架)来显示。我的客户想要添加一种新的方式来显示应用程序:当按下“F”键时(例如F9)。当应用程序不是当前窗口/或未获得焦点时,我如何知道在我的应用程序中用户是否按下了这个键? 最佳答案 如果您只想要几个全局热键,全局键盘钩子(Hook)不是正确的解决方案。使用WH_KEYBOARD的全局键盘钩子(Hook)意味着您的dll将被注入(inject)到每个接收按键的进程中。根本不应在托管代码中使用它,因为CLR相对较重

c# - 文本框上的火灾事件失去焦点

我正在尝试在屏幕上的TextBox变得“未聚焦”时立即调用一个方法,如果这有意义的话?用户输入用户名,一旦该文本框失去焦点,我想触发一个事件来检查该用户名是否确实可用。谢谢! 最佳答案 C#中有一个Control.Leave,我认为它非常适合您的目的。你可以到visualstudio中的文本框事件,找到Leave事件。生成的代码如下:privatevoidtxtbox_Leave(objectsender,EventArgse){//CheckforavailableoperationCode}

c# - 在不窃取焦点的情况下吸引用户注意力

我有一个程序可以让用户打开多个表单。一旦给定事件发生(例如:30秒过去了),我需要让用户注意触发事件的表单,而不是窃取焦点。我已经将表格置于顶部:f.TopMost=true;但我想实现一些替代方案。由于更改框架的边框颜色似乎是一项几乎不可能完成的任务(这个解决方案本来是最好的解决方案),有没有人知道如何在不偷走焦点的情况下获得注意力? 最佳答案 选项A:您需要使用WindowsAPI中的FlashWindowEx。这在.NET中不可用,因此您需要使用PInvoke。选项B:使用系统托盘中的气球提示。这是内置于.NET中的,但要求您

c# - 如何强制表单焦点?

如何强制表单的焦点?.Focus()对我不起作用。privatevoidbutton1_Click(objectsender,EventArgse){varform=newloginForm();if(Application.OpenForms[form.Name]==null){form.Show();}else{form.Focus();}}我做错了什么? 最佳答案 您需要先显示表单-使用Show()方法:varform=newloginForm();form.Show();编辑:(更新问题)对于调用Activate()的现有表