jjzjj

C#检测所有窗口中的按键事件

嘿,我的键事件处理程序有问题。这是来源:usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Windows.Forms;usingSystem.Diagnostics;usingSystem.Threading;namespaceWindowsFormsApplication3{publicpartialclassForm1:Form

windows - 事件窗口 - 如何防止标题栏变成蓝色/灰色

我在对话框中嵌入了一个无模式属性表。我没有为控件使用新的窗口类,但确实使属性表成为对话框中容器的子项。除了一件事,一切都很好。当用户点击属性表时,对话框的标题栏由蓝色(ACTIVE)变为灰色(INACTIVE);当属性表处于事件状态时,我想将对话框的标题栏保持为蓝色,因为属性表对用户来说似乎是对话框的一部分。属性表没有标题栏。c++win32api无mfc问题:1)当属性表处于事件状态时,是否有某种方法可以使对话框标题栏保持蓝色?2)如果我为属性表使用一个新的窗口类并将使用该类的控件添加到对话框中,它的工作方式会有所不同吗? 最佳答案

c++ - Windows/C++ : detect when focus has changed between windows (globally)

我正在尝试找到一种方法来检测何时将焦点更改为另一个窗口(而不必每隔X毫秒轮询一次)。我已经想出了一种方法来检测何时使用WH_SHELL和HSHELL_ACTIVATESHELLWINDOW在应用程序之间切换焦点。问题是我想检测焦点何时在同一个应用程序的对话框/窗口之间切换。即。在记事本中,我可以确定应用程序何时切换到记事本,但我无法检测到“打开”或“保存”对话框何时出现,因为焦点仍在同一应用程序中。 最佳答案 您可以使用SetWindowsHookEx使用WH_CBTHook类型。如果您只想检测应用程序中的焦点变化,请将GetCur

windows - 了解 SystemParametersInfo SPI_SETFOREGROUNDLOCKTIMEOUT

我的应用程序需要在被外部工具(通过API)调用时获得焦点,我知道默认情况下,它应该只在任务栏中闪烁,但在这种情况下,这绝对不是行为我想要的。在这种情况下,我尝试通过“this.Activate()”(C#)获得焦点。这就是ForeGroundLockTimeOut发挥作用的地方。但是,我在理解SystemParameterInfoSPI_SETFOREGROUNDLOCKTIMEOUT时遇到了一点问题。我知道它用于设置ForeGroundLockTimeOut,它定义了您的应用在获得所请求的焦点之前必须等待的时间。(有关更多信息,变量“val”是一个设置为0的IntPtr)System

c# - 当其他控件获得焦点时隐藏表单

这个问题与thismyquestion有关.现在我在类里面有了表格,当用户单击按钮时,我会显示(或隐藏)表格。没关系。但是当我使用原始表单移动或单击原始表单中的某处时,我想隐藏表单。新形式位于原始形式之后。我正在尝试像lostfocus和其他事件,但它没有帮助。所以我想我需要一些技巧来检查我的控制是否有父形式(原始形式)或其他一些黑客的点击。我知道最好的办法是我输入代码,但我有很多行,所以我认为最好的方法是,如果你以一般方式帮助我,然后我尝试应用到我的应用程序。 最佳答案 您可以使用全局鼠标和键盘来完成hook.事实上,它已包含在C

java - 禁用 JAVA 中的所有键和组合键

我想在我的对话框可见时禁用Windows键和所有Windows键+X组合。CTRL+SHIFT+ESC和ALT+TAB也应该被禁用。这可能吗?我只希望我的JDialog始终位于顶部,因此即使是StartBar也不应该是可见的。有人可以帮我解决这个问题吗?编辑:或禁用键盘的方法。 最佳答案 您可以尝试使用RobotClass并让机器人不断释放您提到的所有键。例如:robot.keyRelease(KeyEvent.VK_CONTROL);我相信用户仍然可以使用CTRL+ALT+DEL来关闭程序。也看看这个问题:UseJavatoloc

windows - 阻止另一个程序获得焦点

我需要每天经常运行一组冗长的单元测试,作为测试的一部分,一些窗口会弹出,随后由测试脚本关闭。理想情况下,我想在测试运行时继续工作,因此我需要停止测试软件获取焦点或在我当前正在处理的内容前面打开一个窗口。有没有办法阻止某个进程的后代在打开窗口时获得焦点以及在z顺序顶部打开窗口,或者我可以将窗口重定向到另一个它们不会打扰的屏幕我? 最佳答案 您可以创建另一个用户帐户,在您当前的用户帐户中运行您的测试,然后切换到另一个用户帐户来执行您想要的操作。但是,如果您的PC的GH和RAM较低,那么我不建议您这样做。

c# - 桌面开发 : Remember Target After Losing Focus

是否可以从另一个程序获取焦点来响应事件,但是一旦处理完响应,就切换回前一个程序并将光标恢复到原来的位置?这听起来像是一个奇怪的问题,但是按照以下思路来思考它用户正在程序A中的文本框中输入。弹出程序B的窗口,用户按下几个按钮以确认某些内容。程序B将控制权返回给程序A并恢复对文本框的选择。如果有一个完整的C#解决方案,那就太好了,但这听起来可能比平时需要更多的努力。有什么想法吗? 最佳答案 就个人而言,这样做很可能会导致用户在弹出窗口中选择不需要的值。例如,某人正在Word中打字。您的应用程序弹出一个窗口,点击“Enter”选择一个值.

c++ - 未聚焦时 Direct2D 窗口变黑

我有一个Direct2D窗口,它在聚焦时画得很好;然而,当焦点移动到另一个窗口(同一个应用程序或另一个)时,整个窗口变黑。我将问题归结为ID2D1HwndRenderTarget::Clear的使用。此功能对我的应用程序至关重要,因为没有它,绘画会变得相当……奇怪。有没有一种方法可以让未聚焦的Direct2D窗口正常绘制(注意:WM_PAINT会像往常一样被调用,Clear也是如此,BeginPaint等都没有错误)提前致谢。 最佳答案 来自MSDN,HandlingDeviceLossWhileyourprogramisrunni

windows - 点击迷失在聚焦形式上

问题:有没有一种方法可以始终让点击通过对表单产生影响来聚焦表单?背景:在我的(C#win窗体)应用程序失焦的情况下,我可以将鼠标悬停在窗体上并获得指示我的鼠标位置的阴影和边框。例如,单击菜单项(文件)时,表单获得焦点,但文件菜单未获得单击。这需要额外的点击。对于表单上的普通按钮,只需单击一次。 最佳答案 这可以通过在点击发生之前设置焦点来解决。SE代码:classToolStripEx:System.Windows.Forms.ToolStrip{protectedoverridevoidWndProc(refMessagem){/