草庐IT

windows - GetWindowLong() - Creators Update 引入的行为变化破坏了我的 win32 应用程序

最近对Windows10进行的创意者更新破坏了我使用Win32APIGetWindowLong()的应用程序代码。在Windows10CreatorUpdate之前,即使进程B(主线程)被阻止,一个进程(比如进程A)也能够在另一个进程的窗口句柄(比如进程B)上调用GetWindowWord()/GetWindowLong()API在某些系统调用中(例如等待释放互斥量)。因此,尽管进程B被阻塞,进程A仍能够使用这些API成功查询进程B拥有的窗口的保留内存。但是,在Windows10上应用CreatorUpdates后,当进程B(主线程)被阻塞时,进程A在属于进程B的窗口上调用这些API时

相当于 "echo -n"的 Windows 不再适用于 Win7

我在Windowscmd.exe(至少到XP)中有一个绝妙的技巧来模拟没有换行符的UNIXecho的行为,echo-n。例如命令:将导致正好输出六个字符、前导空格和字符串“xyzzy”,除此之外别无其他。Ifyou'reinterestedinwhythisworks,it'sactuallyaninputcommandwhichoutputs"xyzzy"asthepromptthenwaitsforuserinputbeforeassigningthatinputtothejunkenvironmentvariable.Inthisparticularcase,itdoesn'tw

windows - Win32,多 NIC 计算机,每个 NIC 不同的 DNS,gethostbyname 的行为如何?

在win32多网卡计算机上,如果所有网卡都配置了不同的DNS且具有相同的指标,如何在特定网卡上强制通过gethostbyname()进行DNS解析?否则,每次应用程序执行gethostbyname()调用时,如何知道哪个DNS将用于解析名称? 最佳答案 你不能这样做,至少我相当确定你不能指定一个接口(interface)来使用gethostbyname()或任何标准套接字实用程序发送查询。(这可能有一个非常深奥的win32选项,但我打赌反对它)如果您绝对需要此功能,则需要选择一个第三方DNS库来为您提供这种功能……甚至可以从零开始编

c++ - 有什么有用的建议可以找出在 Win32 进程中释放内存的位置吗?

我正在使用的应用程序表现出以下行为:在特定的高内存操作期间,任务管理器(MemUsagestat)下进程的内存使用量达到峰值约2.5GB(注意:注册表项已被删除设置为允许,因为通常在32位Windows下进程最多有2GB)操作完成后,进程大小开始以每秒1MB的速度缓慢减小。我正在尝试找出最简单的方法来快速确定谁在释放此内存,以及它在何处被释放。我在将内存分析器附加到我的代码时遇到问题,而且我并不是特别想覆盖new/delete运算符来跟踪分配/解除分配(IOW,我想在不重新编译代码的情况下执行此操作。任何人都可以就如何通过VisualStudio调试器执行此操作提供任何有用的建议吗?更

windows - 如何使用 Win32 API 获取多个显示器的显示名称?

我有两台显示器连接到我的WindowsPC-一台是普通显示器,另一台是投影仪。因为Windows不会始终将一个或另一个指定为主监视器(部分原因是在Windows启动时它们并不总是同时打开),我需要以编程方式检测哪个监视器是哪个。控制面板在您选择主显示器的屏幕中将显示器名称显示为“HP2159”(普通显示器)和“PROJECTOR”。这就是我想在我的程序中获得的信息。我找不到适合此信息的Win32API函数。我已经尝试了EnumDisplayDevices和EnumDisplayMontiors。两者都只是将“DISPLAY1”和“DISPLAY2”作为设备名称。我应该使用什么来获取“H

windows - Win32 命名管道和消息大小限制 - 旧的 64K 限制是否仍然适用?

Win32过去对消息模式管道的消息大小限制为64K,知识库文章Q119218PRB:NamedPipeWrite()Limitedto64K的残余部分证明了这一点.“适用于”部分只列出了“MicrosoftWin32ApplicationProgrammingInterface”,文章比较老;没有迹象表明它是否也适用于Windows7等合理的最新版本。是否有关于此问题的任何可靠的最新信息?当前的在线文档仅包含对未指定限制的模糊提示,例如CreateNamedPipe()文档中的漂亮措辞功能:Theinputandoutputbuffersizesareadvisory.Theactua

windows - ruby win32api & 结构 (VerQueryValue)

我正在尝试调用标准Win32API函数来获取文件版本信息,使用win32-apilibrary.3个version.dll函数是GetFileVersionInfoSize、GetFileVersionInfo和VerQueryValue。然后我调用kernel32.dll中的RtlMoveMemory来获取VS_FIXEDFILEINFO结构的副本(参见Microsoft文档:http://msdn.microsoft.com/en-us/library/ms646997%28VS.85%29.aspx)。我从我看到的一个使用VB的示例中提取:http://support.micro

windows - Win32 : How to convert string to a date?

在Windows中,我想使用精确的格式字符串将string解析为date。例如,给定字符串"6/12/2010"和格式:"M/d/yyyy"我想将字符串转换为日期,同时确保日期与格式匹配。我还需要能够指定Y2K滑动窗口、枢轴。这意味着如果(正确)输入了两位数的年份,我将指定future的年数,我认为该年份是。例如:Two-digitYearPivotFour-digityear==================================30+0192930+18192930+19192930+20202930+21202930+1002029.NET已经提供了一个DateTim

windows - Win7 Virtualbox 在尝试启动 vm : Error loading 'crypt32.dll' : 1790 时出现此错误

我在我的windows7box中安装了virtualbox4.3.28,尝试打开导入的VM并得到以下错误。我看到大约1/2年前的一些帖子说这是某些Windows安全修复程序的问题,但我没有安装该修复程序,我已经安装了假定的解决方法,但无济于事。KB3004394不在我的系统上对我没有帮助的旧修复(我没有在我的机器上看到有问题的KB文件)Vagrantlaravelbox,guestmachineenteredaninvalidstatehttps://www.virtualbox.org/ticket/13677我看到的错误:1618.161c:supR3HardenedScreenI

ruby - 错误 : "in ` require': cannot load such file -- win32ole (LoadError)"while trying to connect from ruby program to ms access database

我试图通过在Ubuntu下运行的Ruby程序连接到驻留在另一台运行Windows的计算机上的Access数据库。我收到错误'require':cannotloadsuchfile--win32ole(LoadError)我面临的另一个问题是我的系统上不存在Access文件,所以在这里我想使用ip地址和端口号和文件所在系统的用户名和密码,这样我就可以通过互联网连接来连接并获取数据。不幸的是,我不知道我可以在下面的代码段中的何处指定这些详细信息。connect_to_access_db.rbrequire'win32ole'connection=WIN32OLE.new('ADODB.Co