Articles of winapi

无法安装Windows 7 SDK(需要已安装.NET Framework 4)

我试图在Windows 8和Windows 10机器上安装Windows 7 SDK,并得到这个错误: 如果我点击确定,我不能安装我需要的VC ++编译器,因为它们被禁用=( 在这个错误之后,我尝试安装.NET 4,并得到这个错误: 如何解决它? 有时候我可以在Windows 8上安装这个SDK,但是大多数情况下我都看到这些消息。

获取鼠标指针下方的窗口句柄,同时忽略半透明窗口

我已经创build了一个半透明的窗体(60%的不透明度与黑色背景颜色),我的应用程序启动,最大化,在整个屏幕上。 基本上,它在整个桌面上投射灰色。 当用户将鼠标hover在桌面上的某个窗口上时,我想获取该窗口的句柄(hWnd)。 做这个工作的简单方法是: 暂时隐藏我的表单(或者,暂时将我的表单的不透明度设置为0.0) 调用[GetCursorPos] [1] 调用[WindowFromPoint] [2] 再次显示我的表单 这种方法的问题是我的表单/屏幕闪烁,我不喜欢。 我试图用两种方法解决这个问题: 我认为应该有办法通过调用ChildWindowFromPointEx (传递桌面和CWP_SKIPTRANSPARENT的hWnd),直接在窗体的窗口下获得窗口的hWnd,但似乎没有工作。 我也玩过[ChildWindowFromPoint] [4]和[RealChildWindowFromPoint] [5],但没有成功。 (PS Raymond Chen讨论了这些调用之间的差异, 在这里 ,我认为ChildWindowFromPointEx被devise为完成我所需要的) 我试图通过使用(1) SendMessage(GetDesktopWindow(), WM_SETREDRAW, false, 0)在我隐藏我的表单和(2) SendMessage(GetDesktopWindow(), WM_SETREDRAW, true, 0) SendMessage(GetDesktopWindow(), WM_SETREDRAW, false, 0)之前防止整个桌面刷新(types的“冻结”屏幕瞬间SendMessage(GetDesktopWindow(), WM_SETREDRAW, true, 0)隐藏我的表单后。 这不是很正确:屏幕的某些区域会冻结,会出现一些奇怪的黑色块,但是我知道,(1)确实有用,因为有一次我打电话给(1),没有(2)和我的桌面出现完全冻结(不得不重新启动,即使TaskMgr没有正确呈现)。 我也尝试过在窗体上使用SuspendLayout和ResumeLayout,但我不认为它们是为了处理我的情况。 任何帮助将不胜感激。

如何判断一个Windows PE文件是一个控制台子系统还是一个Windows子系统编程?

基本上我需要一个程序,将从控制台对应窗口sortingWindows.exe。 一个文件扫描仪: SortExe(file exe) { if (IsPeWindows(exe)) { AddToList1(exe); } else if (IsPeConsole()) { AddToList2(exe); } } 我如何实现IsPeWindows或IsPeConsole()? 只要是c,c ++,c#或visual basic的语言解决scheme之一,我并不特别在意。

Windows窗口对接

我想知道如何将窗口停靠在窗口的一侧,最好使用直接的Win32 API。 我正在寻找的效果就像任务栏 – 一个窗口,在屏幕上有一个保留的空间,所以最大化另一个窗口,使窗口占据屏幕的其余部分,但离开我的窗口的地方和可见。 我知道各种IM客户端这样做,但一直没有find任何资源如何做到这一点。 不知道它的适当名称是什么。 编辑:“应用程序桌面工具栏”是用来查找信息的search字词。

_chdir和SetCurrentDirectory在windows中有什么区别?

有什么区别,我应该select一个吗?

是否有可能编写一个Windows应用程序获取通知时,在另一个Windows应用程序中select文本?

我很好奇,如果有可能写一个监视我的文本select的程序。 一个可能的用途是编写一个编辑器/ IDE不可知的代码格式化程序: 应用程序/服务P启动并以某种方式挂接到窗口,以便在任何窗口中select文本时得到通知。 其他应用程序A启动。 用户selectA中的文本 P将被select的文本通知。 – >我很乐意得到这个…

registry碎片整理程序

这是出于好奇,但我已经看到了几个(其中一些非常受欢迎的)软件称为registry碎片整理程序。 虽然我可以看到他们提供的好处,但是我非常好奇你是如何做registry整理? 请注意,我不是要求提供软件名称,只是以编程方式完成的基本描述。 我知道有微软的磁盘碎片整理API。 这是他们正在使用? 或者有“registry整理”API?

其他进程的GetKeyboardLayoutName?

基本上,我想要做的是让GetKeyboardLayoutName返回其他进程的键盘ID(KLID)。 默认情况下,它只重新显示我的应用程序窗口的键盘ID。 我也试过GetKeyboardLayout,但是它返回一个不幸的HKL(它接受另一个窗口的hwnd)。 或者,如果有一种将HKL转换成KLID的方法,那也是很棒的,但是我怀疑是不是有这样的一个问题。 那么,我怎么能做到这一点呢? 我希望能够使用获得的KLID作为LoadKeyboardLayout函数的参数。

C#中的Windows凭据提供程序

我正在做一个学校项目,我应该修改Windowslogin界面提供的凭据方式。 经过一番search,我find了着名的Vista RTM(Longhorn)样本和技术文档。 我发现所有的样本都是用C ++开发的。 由于我没有任何C / C ++的经验,我认为自己是一个体面的C#程序员,我想知道是否有可能做这个C#。 我还需要与REST API交换数据来validationlogin,所以C#会更友好。 我发现这个https://stackoverflow.com/a/23496878/3626447 ,但由@mageos提供的信息太“原始”。 有人知道一些有用的资源吗?

CBS_DROPDOWNLIST组合无法在Windows UX主题下响应WM_CTLCOLOR …

我们有一些C ++ Win32代码,通过响应WM_CTLCOLOR …消息,将特定的控件应用于背景颜色。 这在Windows UX主题不运行时正常工作。 在带默认主题的Windows 7中,带有CBS_DROPDOWNLIST样式的combobox只显示主题的灰色背景。 CBS_DROPDOWNcombobox将在启用主题的情况下正确响应背景颜色更改。 我知道我可以删除受影响的控件的主题,但这使他们看起来很奇怪。 任何人都有任何想法的官方方式来改变个人主题控制的背景颜色,现在MS似乎已经打破了WM_CTLCOLOR …的东西。 谢谢JF