Articles of winapi

WaitForMultipleObjects()是否重置所有自动重置事件?

我有一个事件循环等待几个自动重置事件。 事件都被初始化为具有CreateEvent(NULL, false, false, NULL)数组eventHandles_ CreateEvent(NULL, false, false, NULL) 。 while (true) { DWORD waitResult = WaitForMultipleObjects(3, eventHandles_, false, INFINITE); switch (waitResult) { case WAIT_OBJECT_0 + 0: //handle event… case WAIT_OBJECT_0 + 1: //handle event… case WAIT_OBJECT_0 + 2: //handle event… } } 我的问题是:如果事件1和2同时发生,则循环将首先处理WAIT_OBJECT_0 + 1 。 但是当循环再次出现时,事件2是否会继续发出信号? 还是自动重置?

检测Windowsanimation设置

我正在开发一个程序,对正在开发的Windows应用程序进行基本的烟雾testing和验收testing。 它所做的一部分就是当应用程序首次出现时快照应用程序的顶层窗口。 它通过启动进程,等待input空闲,枚举顶层窗口,然后获取窗口DC和blitting从而完成此操作。 事实certificate,顶层窗口的第一个外观默认为animation – 淡入并扩展到其实际大小 – 至less在Windows 7上。animation过程中的屏幕截图可能缺less窗口框架或框架缩小并部分透明。 我可以通过在截图之前添加一个延迟(例如, Sleep(250) )来避免这个问题,但是我无法findanimation实际需要多长时间的任何信息。 如果animation在未来的Windows版本上花费更长时间(或者用户可以调整),则延迟时间可能不够长。 如果animation被禁用,那么我只是在浪费时间。 (该工具将用于运行很多testing,所以四分之一秒的延迟可能会加起来。) 我可以通过检查“轻松访问中心”控制面板中的“closures所有不必要的animation”checkbox来避免此问题,这似乎禁用了此animation。 我想这可能对应于通过SystemParametersInfo编程访问的设置(或设置)。 如果我可以检查animation何时启用,我可以只在需要的时候添加延迟。 我也可以考虑在testing期间禁用animation,然后恢复用户的select。 但我似乎无法find与此特定animation对应的SPI设置。 有SPI_GETANIMATION,它表示是否启用最小化和恢复animation。 但是,该设置与设置顶级窗口外观animation无关。 是否有一个API来检测是否启用顶级窗口外观animation? 有没有一个设置来控制他们的速度,所以我的代码知道要延迟多久? 是否有一个信号我的程序可以注意知道什么时候从一个subprocess的窗口完全画和完成animation?

Access Violation'0xc0000005'的范围究竟是什么?

我想知道exception0xc0000005和它acctually包含。 也就是说,如果应用程序试图访问属于另一个进程的释放的内存/内存,就会发生这种情况。 但是,例如,为硬件映射的地址呢? 或有效范围之外的地址? 试图用相同的代码尝试访问这些错误,或者他们有自己的错误吗? 这是否包括对进程拥有的有效地址的失败读取? 基本上我想知道什么时候一个应用程序失败,这个例外,可能出了什么问题; 这是一个很小的错误,只能来自应用程序。 代码还是我在看什么和包括硬件问题? (我知道必须有一个MSDN页面,但search谷歌或MSDN带来预计100页的故障排除随机应用程序;)) 谢谢!

如何在Java应用程序中预览任何文件?

我正在使用JTree来浏览文件夹的内容,我希望当用户点击一个文件时,软件会显示它的预览(第一页的屏幕截图)。 这些文件大多是Office文档和PDF。 我使用从Sun下载的模块pipe理PDF文件,但是我想知道是否有办法使用任何软件(最好是JAR)甚至是内置的Windows API。 我正在考虑将文件转换为PDF然后做这个PDF的预览,但这不是最佳的。 有任何想法吗 ?

消息队列在Win32中如何工作?

我在Win32上读了一些东西以及消息循环是如何工作的,还有一些东西还不清楚:什么存储在消息队列中? 与消息( WM_COMMAND , WM_CREATE等)相对应的整数值,还是指向包含消息整数值和其他东西(如wParam , lParam等)的MSG结构的指针?

Win32用户模拟好奇心

我在codeproject上find了一些允许用户模拟的示例代码。 此代码通过导入以下非托pipe的Win32 API函数: [DllImport("advapi32.dll", SetLastError = true)] private static extern int LogonUser( string lpszUserName, string lpszDomain, string lpszPassword, int dwLogonType, int dwLogonProvider, ref IntPtr phToken); [DllImport("advapi32.dll", CharSet = CharSet.Auto, SetLastError = true)] private static extern int DuplicateToken(IntPtr hToken,int impersonationLevel,ref IntPtr hNewToken); [DllImport("advapi32.dll", CharSet = CharSet.Auto, SetLastError = true)] private static extern bool RevertToSelf(); [DllImport("kernel32.dll", CharSet […]

Windows 7左键单击时钟popup

当在Windows 7的任务栏上单击时钟(也许是Vista)时,会popup一个popup窗口,显示日历和时钟(因此不是date和时间调整窗口)。 我如何打开这个窗口(首选在C#中)? 我希望timedate.cpl会调用这个,但是这会打开date和时间调整窗口。

最小化/恢复窗口以编程方式跳过animation效果

我需要在窗口列表上执行多个操作(最小化其中的一些,还原其他窗口),以便一次切换两个或多个窗口。 这个问题是在最小化和恢复窗口时可以看到的那些animation。 整个过程看起来很糟糕,所有的animation进出,上下。 但是,我不能禁用这些animation,因为这是用于其他计算机的,我不想更改其他人的设置,而且当您最小化/恢复一个窗口(即手动执行)时,这些animation实际上是有用的,因为您可以看到发生了什么事情,但是一次只能在几个窗口上编程,这并不好。 我现在正在使用SendMessage函数发送WM_SYSCOMMAND消息与参数SC_MINIMIZE / SC_RESTORE 。 我不知道是否有另一种方式。 所以,这个问题: 我如何在没有animation效果的情况下以编程方式最小化/恢复窗口? PS:编程语言并不重要。 我可以使用任何语言来完成这个任务。

链接到一个大的地址感知DLL

假设我有一个用LARGEADDRESSAWARE链接器标志集合构build的DLL。 现在我有一个应用程序dynamic链接到这个DLL。 这是否使我的应用程序LARGEADDRESSAWARE? 如果不是,那么有没有这个标志设置为任何DLL的意义?

如何在Delphi中允许拖动特定控件的文件

一旦有人将文件下载到特定的控件(例如TMemo),我想接受文件。 我从这个例子开始: http : //delphi.about.com/od/windowsshellapi/a/accept-filedrop.htm并像这样修改它: procedure TForm1.FormCreate(Sender: TObject); begin DragAcceptFiles( Memo1.Handle, True ) ; end; 这允许控件显示拖动图标,但正确的WM_DROPFILES消息不会被调用,因为DragAcceptFiles需要一个(Parent?)窗口句柄。 我可以确定WMDROPFILES过程中的WMDROPFILES但我不知道如何,现在拖动光标适用于所有控件。 如何允许拖动特定的控件(并阻止其他控件拖动)?