Articles of winapi

截取所有WM_MOUSEWHEEL消息

我一直在通过Windows API进行search,寻找一种方法来拦截所有WM_MOUSESCROLL消息,然后才能触发它们的透视消息队列。 拦截后,我需要改变一些关于它们的事情,并将它们发送到不同的[或相同的]消息队列。 我需要相当有效地做到这一点,因为它将在一个相当大的应用程序之上运行。 任何想法,我怎么能做到这一点? 我还没有find一个方法。

如何获得一个文件夹中的所有文件及其子文件夹的名称和pathstring数组在c + +?

我正在做一个程序,我需要得到所有文件的名称和pathstringarray.I可以通过这样做的文件和文件夹path: HANDLE hFind; WIN32_FIND_DATA data; string folder="C:\\*.*"; int num=0; string addresses[1000]; hFind=FindFirstFile(folder.c_str(),&data); if(hFind!=INVALID_HANDLE_VALUE){ do{ addresses[num]=folder.substr(0,folder.length()-3); addresses[num]+=data.cFileName; num++; }while(FindNextFile(hFind,&data)); FindClose(hFind);} 但它只获取文件夹和文件夹名称path只在该文件夹中。我需要获取该文件夹的所有文件和它的子文件夹。如何可以做到这一点?如果可能的话,请使用函数返回string数组。

防止在自定义node.js构build中创build控制台窗口

我正在创build一个不应该向用户显示控制台窗口的node.js自定义版本。 我已经尝试将gyp文件中的链接器configuration更改为2 (应该设置链接器标志 /SUBSYSTEM:WINDOWS ),但是当我运行生成的node.exe二进制文件时,仍然会看到一个控制台窗口。 我怎样才能防止出现控制台窗口? 编辑:进一步的调查显示node.gyp中的链接器configuration没有生效。 生成的node.vcxproj仍然有<Link><SubSystem>Console</SubSystem></Link> (这对我来说很奇怪,因为'UACUIAccess': 'true'的相同部分添加了'UACUIAccess': 'true' ),所以build立的二进制不正确地链接。

枚举像alt-tab这样的窗口

我正在创build一个替代Vista的替代品,但我列出了所有活动的程序的一些问题。 我使用EnumWindows来获取Windows列表,但是这个列表是巨大的。 当我只有10个窗户打开时,它包含约400个项目。 这似乎是每一个控制和许多其他的东西的好处。 所以我必须以某种方式过滤这个列表,但是我不能像alt-tab那样完全做到这一点。 这是我现在用来过滤列表的代码。 它工作得很好,但我得到了一些不需要的窗口,如Visual Studio中的分离工具窗口,我也想念iTunes和Warcraft3这样的窗口。 private bool ShouldWindowBeDisplayed(IntPtr window) { uint windowStyles = Win32.GetWindowLong(window, GWL.GWL_STYLE); if (((uint)WindowStyles.WS_VISIBLE & windowStyles) != (uint)WindowStyles.WS_VISIBLE || ((uint)WindowExStyles.WS_EX_APPWINDOW & windowStyles) != (uint)WindowExStyles.WS_EX_APPWINDOW) { return true; } return false; }

IOError:尝试以“w”模式打开隐藏文件时,权限被拒绝

我想replace一个隐藏文件的内容,所以我试图以w模式打开它,所以它会被删除/截断: >>> import os >>> ini_path = '.picasa.ini' >>> os.path.exists(ini_path) True >>> os.access(ini_path, os.W_OK) True >>> ini_handle = open(ini_path, 'w') 但是这导致了一个回溯: IOError: [Errno 13] Permission denied: '.picasa.ini' 不过,我能用r+模式达到预期的效果: >>> ini_handle = open(ini_path, 'r+') >>> ini_handle.truncate() >>> ini_handle.write(ini_new) >>> ini_handle.close() 问: w和r+模式之间有什么区别,这样一个人有“权限被拒绝”,但另一个工作正常吗? 更新:我使用Python 2.6.6在win7 x64上,并且目标文件有其隐藏的属性集。 当我尝试closures隐藏属性时, w模式成功。 但是当我把它重新打开,它再次失败。 问:为什么w模式在隐藏文件上失败? 这是已知的行为?

你如何使用IME?

我想做一个处理用户input的控件,所以我希望能够处理不同的键盘,其中一种方法是使用IME。 如果您没有处理它,那么在IME处于活动状态时会出现一个浮动窗口(例如日语写入活动)。 我发现需要照顾的消息,但我不知道如何发送我陷入IME的密钥,什么时候我得到一个有效的转换字符。

我如何获得桌面的窗口句柄?

Windows API提供了一个API GetDesktopWindow() ,它返回窗口句柄 但我用Spy ++进行了testing,发现桌面的窗口句柄和“Windows桌面”的窗口句柄是不一样的。 由于“Windows桌面”是一个列表视图,我需要执行以下操作 1) HANDLE hWnd = GetDesktopWindow() ; 2) FindWindow(hWnd, ….. ) with the SyslistView32 as the Window class. 一旦我得到窗口句柄,我想使用SendMessage()进行操作,如获取选定的文件名,select的文件数量等。 请给出你的意见。 我正在使用Windows SDk来做这件事

在不同的进程之间共享HDC

我正在编写某种IPCfunction,需要将某个进程的某些资源从一个进程传递到另一个进程。 这对于可以通过DuplicateHandle复制的pipe道手柄等很好。 现在我需要将HDC从一个进程传递到另一个进程。 这甚至有可能吗? 如果是,如何? 子问题:我假设从一个进程到另一个进程的窗口句柄(HWND)是安全的。 这个假设是否正确?

如何从资源加载图标而不会遭受别名?

我有一个GUI应用程序,其中包括一些用于工具栏button,菜单字形,通知图标等的图标。这些图标作为资源链接到应用程序,并有各种不同的大小可用。 通常,对于工具栏button图像,我有可用的16px,24px和32px版本。 我的图标是部分透明的32bpp。 该应用程序是高DPI的意识,并根据stream行的字体缩放调整所有视觉元素的大小。 所以,例如,在100%的字体缩放,96dpi,工具栏图标大小为16px。 在125%缩放比例120dpi下,工具栏图标大小为20px。 我需要能够加载一个大小为20px的图标,而不会有任何别名效果。 我怎样才能做到这一点? 请注意,我想支持Windows 2000及更高版本。

python:使用Windows API来使用ttf字体来呈现文本

什么是一个完整的例子,从无到有在内存中的位图结束,打开一个特定的.ttf文件,并使用该字体,使用本机Windows API呈现一些文本? 我目前正在通过Windows API,所以这是我和其他的计算器之间的比赛。