jjzjj

c# - 阻止进程创建 MessageBox

我在我们的应用程序中使用的系统有问题:有时,当我们向该系统询问数据时,他会弹出一个MessageBox来告诉我们类似这样的信息:“我无法检索您的数据,要搜索的数据太多了”。这个问题是用户可能无法看到或关闭弹出窗口,因此这会阻止整个应用程序(解释为什么用户无法关闭/看到弹出窗口会花费太多时间并且偏离主题,这很糟糕但我们必须处理它)。因此,作为一个临时解决方案,我想阻止这个特定进程创建MessageBox。我在网上寻找解决方案并找到了关于CBTProc的信息这似乎提供了一种对特定Windows事件(进程创建窗口的请求)作出react并指示操作系统阻止该请求的方法。这是要走的路吗?我测试了S

c# - 通过 Windows 窗体发送用户输入

我正在寻找一种无需使用Form.TransparencyKey即可通过winform传递鼠标事件的方法。如果没有简单的方法来做到这一点,有没有办法使用Win32API将鼠标事件发送到给定的窗口句柄?编辑通过winform我不是指传递给父窗口,而是传递给驻留在我后面的其他应用程序。 最佳答案 这听起来有点矫枉过正,因为我看到了SLaks的回答..你需要使用Handle属性的窗口句柄在SendMessageWin32API上使用pinvokeSendMessage的参数之一是WM_LBUTTONDOWN这是SendMessage的声明[

windows - CreateWindowEx 失败并出现 ERROR_CANNOT_FIND_WND_CLASS

我正在尝试创建一个具有特定类类型(“VSDebuggerCDataTipWnd”)的窗口,但是,当我运行CreateWindowEx时它失败了,并且GetLastError告诉我找不到该类。这是引用代码,但应该无关紧要:constWin32WindowStylesdwStyle=Win32WindowStyles.WS_POPUP;IntPtrwnd=NativeMethods.CreateWindowEx(0L,"VSDebuggerCDataTipWnd","MyWindow",dwStyle,100,100,100,100,IntPtr.Zero,IntPtr.Zero,IntP

c# - 桌面图标操作 - 如何在启用图片旋转主题时获取 SysListView32 的句柄

我正在尝试在桌面上移动图标,一切正常,直到选择了具有图片旋转的主题。对于基本的Windows7主题,SysListView32是SHELLDLL_DefView的子项,后者又是Progman的子项。Butwhenapicturerotationdesktopthemeispicked,SysListView32becomeschildofSHELLDLL_DefViewwhichinturnbecomeschildofWorkerW.不止1个。我应该如何找到指向正确WorkerW的正确HWND。枚举所有桌面窗口并使用类名WorkerW检查每个窗口?[DllImport("user32.

c# - 在 C# 中获取屏幕像素颜色的最快方法

我正在寻找用C#捕获单个屏幕像素颜色的最快方法到目前为止,我将GDI+方法与System.Threading.Timer一起使用,该方法在回调中调用捕获函数,但我正在寻找实现目标的最佳方法我现在的代码是这样运行的System.Threading.TimerstTimer=newSystem.Threading.Timer(timerFired,null,0,1);调用一个包含这个方法的函数[DllImport("gdi32.dll")]privatestaticexternintBitBlt(IntPtrsrchDC,intsrcX,intsrcY,intsrcW,intsrcH,In

c#接收即插即用事件

我想知道是否有关于如何处理Windows中使用的即插即用事件消息的示例和/或文档。理想情况下,我想要完成的是能够让我的应用程序检测到一个已连接到机器的设备,而无需计时器,计时器会在滴答声中轮询所有COM端口。我发现这样做效率极低,而且会使我的应用程序的CPU使用率增加十倍。我的应用程序使用C#,目前正在利用.NET4.0,我们希望在下个月内升级到.NET4.5。所以我正在寻找一些关于如何做到这一点的文献。由于这是我对支持即插即用设备的第一次调查,请对批评持温和态度。编辑:此应用程序还将在Windows7和WindowsXP上运行 最佳答案

c# - 在 64 位进程中加载​​ 32 位 dll

这个问题在这里已经有了答案:Target32Bitor64BitnativeDLLdependingonenvironment(3个答案)DllImport-Anattemptwasmadetoloadaprogramwithanincorrectformat[duplicate](1个回答)关闭8年前。社区在8个月前审查了是否重新打开此问题,然后将其关闭:原始关闭原因未解决我希望我的C#应用程序有条件地运行native方法,有条件地选择运行dll的x86或x64版本。每当我尝试加载32位dll时,我都会收到以下错误:UnhandledException:System.BadImage

Office Addin 2013 中的 C# 全局键盘 Hook

我遇到了一个问题,无法让我的Office插件在Powerpoint2013上与我的全局键盘一起工作,但在以前的版本(2007和2010)上却没有。我没有收到任何异常,但似乎从未在Powerpoint2013上触发OnKeyDown事件,我不知道为什么。我在所有版本的Windows(XP、7、8和8.1)、32位和64位环境中遇到同样的问题。MicrosoftOffice版本为32位。这是一个代码示例:usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Xml.

C# 检测击键并发送到后台窗口

今天我花了六个小时四处寻找方法来完成我想要完成的任务。然而,运气不佳,我尝试过的每一种方法都没有奏效。所以我正在开发的程序是一个用于视频游戏的多框应用程序。本质上,我想让我创建的应用程序在后台运行。用户将检查复选框以说明他们想要捕获哪些键,因此并非每个键都被捕获。然后,当他们玩主游戏时,应用程序会将选中的key发送到后台运行的游戏。我已经尝试过全局热键,但从来没有超过一个键起作用。我也尝试过连接键,但出于某种原因,无法实现该功能。我也涉足了sendmessage,但运气不佳。只是想知道是否还有其他人对此有一些想法。举一个做同样事情的另一个程序的例子是HotKeyNet、KeyClone

c# - Windows 7左键单击时钟弹出窗口

当左键单击Windows7(Vista也可能)任务栏中的时钟时,会打开一个弹出窗口,显示日历和时钟(因此不是日期和时间调整窗口)。我如何自己打开此窗口(在C#中首选)?我希望timedate.cpl会调用它,但这会打开日期和时间调整窗口。 最佳答案 要显示时钟,您需要向托盘窗口发送适当的窗口消息。这可以使用WindowsAPI函数SendMessage完成:usingSystem;usingSystem.ComponentModel;usingSystem.Runtime.InteropServices;usingSystem.Te