Articles of winapi

如何判断一个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

通过subprocess发送一个钩子捕获消息到控制台是可能的吗?

所以我开始一个普通的控制台程序,然后在其中创build另一个进程。 接下来,subprocess尝试在父进程拥有的控制台上写入内容。 是否有可能在这个控制台上挂钩,所以当subprocess试图写一些文本我可以做这个文本search和replace,并把它改变到控制台。 (我知道使用pipe道是可能的,但是在这里我特别要求在控制台级别执行此操作,因为如果某些程序看到它们连接到pipe道而不是控制台,则其行为会有所不同。) SetWindowsHookEx与我的问题有关吗?

如何使用套接字重叠I / O?

我想在我的服务器中使用重叠I / O,但是我无法find关于这个主题的很多教程(大多数教程都是关于重叠I / O与完成端口,我想使用callback函数)。 我的服务器最多可同时连接400个客户端,并且只能长时间发送和接收数据(每30秒钟,服务器和客户端之间交换几千字节的数据)。 我想使用重叠I / O的主要原因是select()最多只能处理64个套接字(我有400个!)。 所以我会告诉你我是如何理解重叠的I / O,并纠正我,如果我错了: 如果我想从一个客户端接收数据,我使用WSARecv()并提供套接字句柄和一个缓冲区来填充接收到的数据, 同时我也提供一个callback函数 。 当数据被接收并填充到缓冲区时,callback函数将被调用,并且我可以处理这些数据。 当我想发送数据时我使用WSASend() ,我也提供套接字句柄和callback函数,并且当数据被发送时(不确定是否放置在底层的发送缓冲区中或实际放置在线上),callback也会被称为告诉我数据已发送,我可以发送下一个数据。