Tag: winapi

如何将std :: string转换为C ++中的LPCWSTR(Unicode)

我正在寻找一种方法,或将std :: string转换为LPCWSTR的代码片段

在哪里可以findPython的win32api模块?

我需要下载它的Python 2.7,但似乎无法find它…

找出哪个进程注册了全局热键? (Windows API)

据我所知,Windows不提供API函数来告诉哪个应用程序注册了一个全局热键(通过RegisterHotkey)。 我只能发现,如果RegisterHotkey返回false,而没有“拥有”热键,则注册一个热键。 在没有直接的API的情况下,会不会有一个迂回的方式? Windows维护与每个注册热键相关的句柄 – 有点让人发疯,因为应该没有办法获取这些信息。 可能不起作用的示例:发送(模拟)一个已注册的热键,然后截获Windows将发送到注册它的进程的热键消息。 首先,我不认为拦截消息会显示目标窗口句柄。 其次,即使有可能,这也是一件坏事,因为发送热键会触发各种程序的各种可能有害的活动。 这并不重要,但是我经常看到这样的function需求,而且我自己也是注册热键的应用程序的牺牲品,甚至没有在UI或文档中的任何地方透露它。 (在delphi工作,只不过是在WinAPI的学徒,请善待。)

为什么在C ++中,我们使用DWORD而不是unsigned int?

我不害怕承认我是一个C ++新手,所以这可能看起来像一个愚蠢的问题,但…. 我在代码示例中看到DWORD在各处使用。 当我查找DWORD的真正含义时,它显然只是一个无符号整数(0到4,294,967,295)。 所以我的问题是,为什么我们有DWORD? 它是什么给我们的整型“unsigned int”不? 这与便携性和机器差异有关吗?

生成一个唯一的机器ID

我需要编写一个函数来生成一个对于运行Windows操作系统的机器来说唯一的id。 目前,我正在使用WMI来查询各种硬件参数并将它们连接在一起,并将它们散列以获得唯一的ID。 我的问题是,我应该使用什么build议的参数? 目前,我正在使用bios \ cpu \ disk数据的组合来生成唯一的ID。 如果每个度量都有多个结果,那么我使用第一个结果。 但是,我遇到了一个问题,双启动到两个不同的Windows操作系统的计算机在每个操作系统上生成不同的站点代码,这应该不会发生。 作为参考,这些是我目前使用的指标: Win32_Processor:UniqueID,ProcessorID,Name,Manufacturer,MaxClockSpeed Win32_BIOS:Manufacturer Win32_BIOS:SMBIOSBIOSVersion,IdentificationCode,SerialNumber,ReleaseDate,Version Win32_DiskDrive:Model, Manufacturer, Signature, TotalHeads Win32_BaseBoard:Model, Manufacturer, Name, SerialNumber Win32_VideoController:DriverVersion, Name

在VC2010 Express中无法打开包含文件“afxres.h”

我试图编译一个旧的项目使用VS Express 2010,但我得到这个错误: 致命错误RC1015:无法打开包含文件'afxres.h'。 从这个代码 ///////////////////////////////////////////////////////////////////////////// // // Generated from the TEXTINCLUDE 2 resource. // #include "afxres.h" 我已经安装了Windows SDK,但没有任何成功。 谢谢!

在WPF的窗口前面

我怎样才能将我的WPF应用程序带到桌面? 到目前为止我已经尝试过: SwitchToThisWindow(new WindowInteropHelper(Application.Current.MainWindow).Handle, true); SetWindowPos(new WindowInteropHelper(Application.Current.MainWindow).Handle, IntPtr.Zero, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE); SetForegroundWindow(new WindowInteropHelper(Application.Current.MainWindow).Handle); 没有一个正在做这个工作( Marshal.GetLastWin32Error()是说这些操作成功完成,每个定义的P / Invoke属性都有SetLastError=true )。 如果我创build一个新的空白WPF应用程序,并用计时器调用SwitchToThisWindow ,它完全按预期工作,所以我不知道为什么它不工作在我的原始情况。 编辑 :我正在与全球热键一起做这个。

Objective C for Windows

在Windows平台上编写Objective-C的最好方法是什么? Cygwin和gcc? 有没有办法,我可以以某种方式将其整合到Visual Studio? 沿着这些路线 – 有没有关于如何链接和使用Windows SDK的东西这样的build议。 它是一个不同的野兽,但我知道我可以在Windows DLL中编写程序集和链接,使我可以访问这些调用,但我不知道如何做到这一点,没有谷歌search和获取零散的方向。 有没有人知道一个很好的在线或书籍资源做或解释这些事情?

Windows 7 SDK安装失败

我似乎完全无法将Windows 7 SDK安装到我的机器上,而我在网上find的唯一解决scheme就是对registry进行大量修改。 我已经做到了这一点 – 仍然没有成功。 这是报错: 安装选定的Windows SDK组件时发生问题。 “Microsoft Windows SDK for Windows 7”产品的安装报告了以下错误:请参阅Samples \ Setup \ HTML \ ConfigDetails.htm文档以获取更多信息。 请尝试解决问题,然后再次启动Windows SDK安装程序。 如果您仍然遇到此问题,请访问http://go.microsoft.com/fwlink/?LinkId=130245上的SDK团队支持页面。 点击查看日志button查看安装日志。 要退出,请单击完成。 没有Samples目录也可以参考,并且SDK支持团队看起来不再存在。 我该如何解决这个问题?

用Win32程序中的main()函数replaceWinMain()

我在StackOverflow和Google上search了一下,但是没有得到想法。 我想用这种types的用户编程来启动我的应用程序: int main() { Window App("Test", 640, 480); while(App.IsOpen()) { // Do the stuff } } 但这是不可能的,因为我应该将hInstance和hPrevInstance等parameter passing给WinMain函数。 其实有一个窗口类,我devise它使窗口创build更容易一点。 我在SFML上看到了这个实现,但是我不知道它是如何实现的。 现在我用通常的方式: int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR, int) { Window App(hInst, hPrevInst, "Test", 640, 480); while(App.IsOpen()) { // Do the stuff } } 谢谢。