我正在尝试通过使用Windows计时器队列在WindowsGDI上实现高每秒帧数。相关的API是CreateTimerQueue、DeleteTimerQueueEx、CreateTimerQueueTimer,和DeleteTimerQueueTimer。计时器是使用CreateTimerQueueTimer(&m_timer,m_timer_queue,TimerCallback,this,0,20,WT_EXECUTEINTIMERTHREAD);创建的,以实现大约50fps的速度。GDI操作(后台存储中的一些绘制,加上InvalidateRect)不能是异步的,因此我不能选择其
对于我正在编写的应用程序来说,阻止Windows计算机上所有Internet访问的最简单方法是什么?更多详情:Windows:XP或更高版本应用程序:用C/C++编写的基本Win32应用程序。阻止:它需要能够随意阻止和取消阻止,最好是用户无法轻易逆转的方式。(例如,通过右键单击系统托盘中的网络连接图标。)此外,理想情况下,我希望在用户重新启动Windows或重置机器时它用于允许恢复访问的方法,尽管我会也愿意让应用程序随Windows一起自动启动,并在计算机处于阻止状态时重置时在启动时取消阻止访问。Internet访问:首先,我想阻止传统浏览器访问传统的http/https站点。其次,最
我正在处理的应用程序中有一个非常令人沮丧的错误。例程本该在一个窗口做一些事情,然后在方法结束时将焦点返回到另一个窗口,但是当我前几天开始使用一个大数据集时,焦点在最后停止返回。我一次一行地检查代码,错误停止了。所以,我认为这是某种时间问题。我追查直到我发现我怀疑是罪魁祸首。调用ShellExecute(...),终止我使用的图像编辑器。(http://msdn.microsoft.com/en-us/library/bb762153(VS.85).aspx)现在,如果我越过这个调用,然后继续运行程序,一切正常,但如果我越过这一行,就会发生错误。怎么会这样?我在此方法的最后调用了SetF
我正在使用activex控件将虚拟文件从网站拖到桌面上。如何创建IStream在我的httpurl上,以便Windows可以执行删除?我正在查看的示例使用SHCreateStreamOnFile复制本地文件;对于其他类型的流,如http文件下载,必须有类似的功能。 最佳答案 如何使用URLMonikerFunctions.您可以使用URLDownloadToFile(阻塞函数),或URLOpenPullStream(异步)。 关于windows-使用WindowsIStream下载文件,
当左键单击Windows7(Vista也可能)任务栏中的时钟时,会打开一个弹出窗口,显示日历和时钟(因此不是日期和时间调整窗口)。我如何自己打开此窗口(在C#中首选)?我希望timedate.cpl会调用它,但这会打开日期和时间调整窗口。 最佳答案 要显示时钟,您需要向托盘窗口发送适当的窗口消息。这可以使用WindowsAPI函数SendMessage完成:usingSystem;usingSystem.ComponentModel;usingSystem.Runtime.InteropServices;usingSystem.Te
有没有办法检测不属于我的应用程序的窗口何时被使用python/pywin32拖到窗口中?我想对其进行设置,以便当我拖动一个标题与桌面边缘附近的图案匹配的窗口时,它会在松开鼠标时捕捉到边缘。我可以编写代码,以便在松开鼠标时将所有具有该标题的窗口捕捉到桌面,但我只想移动被拖动的特定窗口。 最佳答案 到目前为止,我看到的唯一可能的解决方案是使用SetWindowsHookEx。Pywin32没有接口(interface),所以我想我必须做这样的事情:编写一个C扩展模块。它有一个类似setCallback的函数,当拖动事件发生时,它需要一个
我想知道是否有一种方法可以在鼠标输入到达窗口之前对其进行拦截和修改?我想要做的是拦截鼠标运动事件,对值应用一些自定义缩放和加速,然后继续传递它们。在输入到达原始输入API或DirectInput之前,我需要一些可以执行此操作的东西。 最佳答案 为了在登录和SAS屏幕等期间影响所有鼠标输入,包括DirectInput,您需要将过滤器驱动程序加载到鼠标驱动程序堆栈中。其他人也做过,比如http://www.maf-soft.de/mafmouse/WindowsDDK中应该有一个moufiltr示例,您可以将其用作起点。您很可能希望使用
我正在寻找一个关于如何重启任何允许在设备管理器中启用/禁用的设备的编程API,例如音频设备和网络适配器 最佳答案 您将不得不使用SetupApi/ConfigManagerAPI.但请注意,在x64下,您的应用程序。必须也是x64才能启用/禁用设备(所以你现在不能直接在Delphi中执行此操作-首先我认为这是x64下x86-app的文件/注册表重定向的问题,但它没有帮助)。设备枚举工作正常。在MSDN上的一篇文章中有一些关于它的内容,但我现在找不到它。我制作了FP/Lazarusx64应用程序以在x64操作系统下启用/禁用设备。您可
我知道有可能registerglobalhooksformouse移动、按钮点击、滚动等,但我想知道是否有任何方法可以检测用户是否真的在使用全局Hook拖动文件或文本(或其他一些内容)。似乎找不到任何东西。 最佳答案 它不由Windows消息处理,即使需要消息循环才能使其工作。经典COM要求。从RegisterDragDrop()开始阅读以查看管道。值得注意的是,UAC的UIPI方面会妨碍您,您不能从非提升的进程D+D到提升的进程。ChangeWindowsMessageFilter()是通常的解决方法,它不适用于D+D。没有已知的
我是WindowsAPI的新手,我正在尝试查找出现在任务栏中的所有窗口的句柄。到目前为止,我已经设法:获取所有窗口的句柄获取窗口的标题检查窗口是否可见检查窗口是否存在最小化窗口获取一个窗口的子窗口获取桌面窗口我已经尝试获取桌面窗口的所有子窗口,这给了我将近900个窗口句柄!因此,我试图通过仅获取可见窗口和标题长度超过0个字符的窗口来过滤它们,但我仍然离得很远-有68个窗口??请WinAPI专家告诉我你是如何做到这一点的:-)并且还可能解释为什么有这么多窗口?编辑:privatestaticboolHasAppWindowStyle(IntPtrhandle){return(GetWin