草庐IT

windows - 有什么方法可以使用 IOCP 通知套接字何时可读/可写?

当套接字变得可读/可写(即下一个发送/接收将立即完成)时,我正在寻找某种方法在I/O完成端口上获取信号。基本上我想要一个重叠版本的WSASelect。(是的,我知道对于许多应用程序来说,这是不必要的,您可以继续发出重叠的send调用。但在其他应用程序中,您希望延迟生成要发送的消息,直到最后一次可能的时刻,如e.g.here所讨论。在这些情况下,执行以下操作很有用:(a)等待套接字可写,(b)生成下一条消息,(c)发送下一条消息。)到目前为止,我能想到的最好的解决方案是生成一个线程来调用select,然后调用PostQueuedCompletionStatus,这很糟糕而且不是特别好可扩

windows - 在 Windows 中跟踪已启动的应用程序

我们正在尝试整合信息亭解决方案,以便我们可以按小时为人们使用的应用程序收费。因此,我们需要一种方法来确定应用程序何时启动,何时关闭并记录此信息以进行计费。我是一个相当有经验的.NET程序员,所以托管代码解决方案会很棒。我也稍微涉足了WindowsAPI,所以这也可能有效。有什么想法吗? 最佳答案 这对于WMI调用来说已经足够简单了。实际上,您可以从操作系统捕获有关应用程序何时启动、何时关闭、运行了多长时间、使用了多少内存等的事件。这里是监控进程创建、删除等的一个例子。http://weblogs.asp.net/whaggard/a

windows - 如何在 Windows 中检测何时连接了新硬件?

Windows中是否有一种机制允许应用程序检测新硬件何时连接到系统?我特别想检测:任何正在连接/断开的串口我使用WinUSB的自定义USB转I2C板 最佳答案 你想要RegisterDeviceNotification和WM_DEVICECHANGE。 关于windows-如何在Windows中检测何时连接了新硬件?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/11586819

windows - Windows 可以检测到显示器、鼠标、键盘何时断开连接吗?

Windows能否检测到显示器、鼠标或键盘何时与计算机断开连接?如果是这样,为此使用什么Win32API? 最佳答案 不确定显示器,但断开连接的键盘和鼠标应该会触发WM_DEVICECHANGE消息(如果它们是USB设备)。有关详细信息,请参阅此链接:WM_DEVICECHANGE在这个forum上对WM_DEVICECHANGE有很好的讨论,与HID设备(鼠标/键盘等)的使用有关要获得更详细的通知,您可以使用RegisterDeviceNotification函数RegisterDeviceNotification

c++ - 何时使用 VirtualAlloc 与 new?

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:What'sthedifferencesbetweenVirtualAllocandHeapAlloc?我想预分配一大块内存,比如1gb来实现内存池。VirtualAlloc使用4kb的页面大小进行分配。在这种情况下使用virtualalloc相对于new有什么优势?这种情况下不应使用new还是使用new而不是虚拟分配有任何缺点?

c++ - 安装了全局 Hook 后,我如何知道窗口何时开始移动以及何时停止移动?

有没有简单的方法来解决这个问题?我想我可以使用WM_MOVE通过保持计时器来告诉我它何时开始。如果窗口在最后2秒内没有收到WM_MOVE消息,那么我就知道它刚刚开始移动。然后我又设置了一个定时器,等待他们在一段时间内(2秒)没有消息。如果什么都没有收到,那么我可以确信窗口移动已经完成。这是解决这个问题的正确方法吗? 最佳答案 如果您可以看到WM_MOVE消息,那么您也可以看到WM_ENTERSIZEMOVE和WM_EXITSIZEMOVE消息。 关于c++-安装了全局Hook后,我如何知

windows - 如何检测窗口内容何时发生变化

我需要编写截屏视频,并且需要检测窗口内容何时发生变化,即使只选择了文本。这个窗口是第三方控件。 最佳答案 有几种方法。(1)屏幕轮询。可以轮询屏幕(即创建一个DIB,每个时间段从屏幕到BitBlt),然后按原样发送优点:实现起来非常简单缺点:高CPU负载。每秒轮询整个屏幕的次数非常繁重(应该传输大量数据)。因此它会又重又慢。高网络带宽(2)与上面相同,除了现在您对轮询屏幕进行一些分析以查看差异。然后您可以只发送差异(如果没有更改,显然不发送任何内容),另外您可以选择压缩差异流。优点:实现起来还不算太复杂显着降低网络带宽缺点:CPU使

windows - 进程何时可以在 Windows 上更改其 PID?

有没有办法让进程在Windows上更改其PID?我发现了这个问题[1],但它仅针对Linux陈述了答案(“否”)。Windows呢?[1]ChangingtheProcessIdinlinux 最佳答案 不,您不能更改Windows进程的PID。 关于windows-进程何时可以在Windows上更改其PID?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/10758393/

windows api - 检测何时打开某种类型的文件

是否可以在打开某种类型的文件时执行某些代码?就我而言,我想“监听”视频文件(“.avi、mp4等”)何时打开(通过Windows文件资源管理器外壳,或者直接从视频播放器打开?),这样我就可以存储播放视频的历史记录。一个小时的谷歌搜索没有任何结果,所以我求助于你stackoverflow。请指出正确的方向。谢谢。 最佳答案 从任意进程捕获文件系统事件(打开/读/写)的最佳(也是唯一合理的方法)是编写FileSystemMiniFilter如果您正在开发商业产品,请避免“Hook”用户模式​​API,例如CreateFile。这样做需要

c# - ClickOnce 部署以及何时使用它

我已经研究过ClickOnce和WindowsInstaller。在这两个ClickOnce中,似乎有更多我正在寻找的功能。您认为ClickOnce存在一些弱点。什么时候应该和不应该使用这种方法?我想要一种无需用户交互即可自动更新软件的方法。我希望它在后台和启动时完成。使用自定义逻辑和自定义版本检查系统会更好吗?任何建议/见解都会很棒。编辑所有客户端计算机都将通过无线网卡通过VPN远程连接。 最佳答案 我已经使用ClickOnce3年了,我对它非常满意。它使我能够利用本地应用程序的强大功能轻松部署Web应用程序。我按照您提到的方式使