草庐IT

c++ - 检查 Windows 机器是否可以充当 RDP 连接中的主机

我正在编写一个程序,我想确保它只在可以充当RDP连接主机的Windows机器上运行。例如,某些Windows版本不能做这样的事情——例如win7basic,win7home,win8.我可以检查Windows版本并将其与RDP主机兼容版本列表进行比较,但我想知道是否有更常见的方法来检查此功能。也许是一些WinAPI方法或一个特殊的注册表项。有什么建议吗? 最佳答案 据我了解MSDNRemoteDesktopServicesAdministration函数NetServerGetInfo应该给你你想要的信息。LPSERVER_INFO

c - 将非 BMP 代码点写入控制台

Windows控制台API提供了WriteConsoleOutput函数,它允许您将字符写入控制台上的任意位置。此函数采用CHAR_INFO的数组。结构作为参数,指定:要写的字符(即代码点)其属性但是CHAR_INFO结构只允许将代码点指定为WCHAR或CHAR。CHAR仅支持ANSI字符,WCHAR仅支持U+0000到U+FFFF范围内的代码点(即theBMP)。有没有办法使用控制台API写出U+10000到U+10FFFF范围内的代码点?IE。在BMP之外编写代码点? 最佳答案 据我所知,Windows控制台API仅限于UCS2

windows - 64 位 Windows 8.1 和 Qt 上的 MIDI 应用程序 - 指针大小问题

我正在尝试开发一个C++Windows应用程序来处理来自某些MIDI设备的MIDI信息。我强制使用的操作系统是Windows8.164位。开发环境为Qt。在阅读了大量网页后,我发现Windows有一组低级函数来处理MIDI数据,允许将WindowsMIDI驱动程序与任何应用程序连接。这些功能在此处描述http://msdn.microsoft.com/en-us/library/windows/desktop/dd757277(v=vs.85).aspx到目前为止,我编写的软件工作正常,我能够在我的应用程序中处理传入的MIDI短消息。尽管如此,当涉及到将一些缓冲区从应用程序传递到驱动程

c# - 无法将 WM_INPUTLANGCHANGEREQUEST 发送到某些控件

我正在研究(又一个)keyboardlayoutswitcher并在Skype窗口(win7x64上的6.22版)中遇到了奇怪的麻烦。AnycombinationsGetForegroundWindow()/GetFocus()/GetParentWindow()不会成功更改布局仅在消息输入内,更奇怪的是,仅当输入多个字符时。其他情况下工作得非常好,除了wpf应用程序拒绝服从没有focusedHandle的东西。publicstaticvoidSetNextKeyboardLayout(){IntPtrhWnd=GetForegroundWindow();uintprocessId;u

windows - 如何停止资源管理器启动我的应用程序最大化?

Explorer似乎总是以SW_MAXIMIZE启动我的应用程序(STARTF_USESHOWWINDOW在STARTUPINFO.dwFlags中设置)。我知道ShowWindow将使用此值thefirsttime你/Windows需要显示一个窗口,但不幸的是,它最大化了一个不应该最大化的窗口。我的窗口是使用CreateDialogIndirectParam创建的,并具有以下样式:WS_CAPTION|WS_SYSMENU|WS_MINIMIZEBOX|WS_CLIPCHILDREN|DS_MODALFRAME|DS_CENTER|WS_VISIBLE。为什么ShowWindow在允

windows - Microsoft SDK 中缺少 SetEnv.cmd

我最近安装了WindowsSDK,但是当我移动到目录时,我找不到SetEnv.cmd。我的操作系统是Windows8.1,SDK安装在ProgramFiles(x86)中。 最佳答案 我发现,我的SDK终究没有安装成功。我不得不删除所有distributables2010然后再试一次。另见http://www.mathworks.com/matlabcentral/answers/101105-how-do-i-install-microsoft-windows-sdk-7-1 关于wi

windows - 将Win32封装在一个类中——在CreateWindow中传递类指针

我看了很多关于这个主题的教程和帖子,他们都说我在我的CreateWindowEx()函数中传递类实例指针(this),然后存储它在窗口过程函数中,当WM_NCCREATE消息被发送时。我猜这是因为WM_NCCREATE应该是自创建窗口以来发送到窗口过程的第一条消息。几个问题/注意事项:通过调试,我了解到实际上WM_GETMINMAXINFO是第一条发送的消息,在WM_NCCREATE之前(至少在我的机器上是这样).这是否意味着我应该监听此消息而不是WM_NCCREATE?根据this热门文章,大家之所以在收到消息WM_NCCREATE后调用SetWindowLongPtr()是因为If

c++ - 无法读取代码页不匹配的 FileVersionInfo

我有一些经过合理尝试和测试的代码,它们使用WindowsAPI调用来读取FileVersionInfo字符串,例如“FileVersion”和“CompanyName”。我发现一个特定的第3方DLL失败了。问题似乎是这样的:读取\VarFileInfo\Translation值,我得到040904B0(美国英语,Unicode)。但是,当我随后尝试在\StringFileInfo\040904B0\CompanyName上调用VerQueryValue时,它返回false。但调整代码以使用WindowsLatin-1ANSI代码页有效:\StringFileInfo\040904E4\

windows - 更改组合框 RTL 样式时的镜像文本

我正在尝试创建一个动态对话框,可以根据语言将其设为RTL。但我有以下问题:每当我更改组合框的RTL样式时,文本就会颠倒过来。我尝试使用InvalidateRect、RedrawWindow等函数,但无法使其正常工作。相关代码(带WTL的WinAPI):CComboBoxcombo=hWndCtl;if(combo.GetCurSel()==0)combo.ModifyStyleEx(WS_EX_LAYOUTRTL,0);elsecombo.ModifyStyleEx(0,WS_EX_LAYOUTRTL);演示项目:here.问题的演示: 最佳答案

c++ - 如何使用 GDI 绘制透明文本?

我的目标是动态地将一些任意文本放入HICON图像(在运行时)。我正在使用以下代码://Errorchecksareomittedforbrevity//FirstcreatefontLOGFONTlf={0};lf.lfHeight=-58;lf.lfWeight=FW_NORMAL;lf.lfOutPrecision=OUT_TT_PRECIS;//UseTrueTypefontsforanti-alliasinglf.lfQuality=CLEARTYPE_QUALITY;lstrcpy(lf.lfFaceName,L"SegoeUI");HFONThFont=::CreateFo