草庐IT

windows - CreateDC 失败,错误代码为 0

我正在使用CreateDC进行打印,传入有效的DEVMODE结构并返回NULL,这表示错误,但GetLastError返回0。m_hDC=::CreateDC(L"WINSPOOL",PrinterName,NULL,pDevMode);if(m_hDC==NULL){throwException(GetLastError(),__LINE__,_T(__FILE__));}除了一个客户之外,这对我的所有客户都有效,有什么想法吗? 最佳答案 事实证明这是thunkingspoolerapi的问题。该软件是在64位系统上运行的32位W

windows - 如何使用 Windows 安全描述符来阻止执行其他应用程序?

在我最近关于使用CreateDesktop()API调用创建新桌面并在其中执行我自己的应用程序并防止其他应用程序在我的桌面中执行的问题中,有人指出我使用安全描述符!这里有人可以告诉我该怎么做吗?提前致谢! 最佳答案 所有命名对象,包括您创建的桌面,都有一个安全描述符。安全描述符描述每个对象的所有者和组SID(安全标识符)及其ACL(访问控制列表)。创建对象的函数使用它来控制谁有权访问该对象。CreateDesktop()函数有一个可选参数,它是指向SECURITY_ATTRIBUTES对象的指针。SECURITY_ATTRIBUTE

windows - 如何判断另一个进程是否有事件的前台窗口? (Win32 API vb.net)

user32.dll提供了从进程可执行名称中获取进程id的函数,我还可以获得用户正在工作的事件窗口或前景窗口。我可以确定目标进程打开了哪些窗口吗?否则,我能否找出打开前台/事件窗口的进程的详细信息?我的代码只需要在另一个特定进程正在运行并且用户正在主动使用该窗口时运行,而该窗口是桌面上的事件窗口、前景窗口和当前焦点窗口。 最佳答案 我想你想使用GetWindowThreadProcessId或者可能EnumThreadWindows 关于windows-如何判断另一个进程是否有事件的前台

windows - 备份配置文件

我需要能够在因断电而断开连接的机器上存储配置文件;),我正在使用基本的WinApi来存储配置数据(WriteFile),除非机器断电,否则这会起作用;)有时文件根本没有保存。我在想2个解决方案:1)TransactionalNTFSAPI(例如CreateFileTransacted()),但是这个东西只能在Vista上工作,而且NTFS必须存在,在大多数情况下我不能使用它2)在%APPDATA%目录中创建配置文件的备份副本,比如20个备份副本,并在检测到损坏的配置文件时在应用程序启动时恢复它们如果您知道我的问题的任何其他解决方案(主要问题是通过拔掉电源来关闭机器),请告诉我。谢谢。

c++ - 在 Windows 中使用 MIDI 流时出现问题

我正在使用C++和WindowsAPI编写一个Windows程序,并且试图在MIDI流中对MIDI消息进行排队,但是当我尝试这样做时收到一个奇怪的错误。如果我使用midiOutShortMsg将非排队的MIDI消息发送到流,它可以正常工作。但是,midiStreamOut始终返回错误代码68,这是#defined到MCIERR_WAVE_OUTPUTUNSPECIFIED。midiOutGetErrorText给出了以下错误描述:ThecurrentMIDIMappersetupreferstoaMIDIdevicethatisnotinstalledonthesystem.UseMI

c++ - 设备浏览问题

我正在编写文件浏览软件,我希望它能在所有可移植设备(例如相机、智能手机等)上正常工作。我的程序显示缩略图,所以我需要读取每个文件的内容。现在我面临一些问题:使用我的两台相机,我只能从设备打开一个ISteam。对于每个额外的流,我都会收到ERROR_BUSY错误。这很不方便,因为我在多个后台线程中获取缩略图。我可以从我的智能手机打开多个流,但我无法搜索该流!作为解决方法,我必须将整个流复制到临时文件系统位置并在那里进行处理。我想知道它取决于什么。设备文件系统?驱动实现?还是别的? 最佳答案 这些似乎是对内存非常有限的外围设备的文件访问

windows - 通常从提升的进程执行进程

是否有某种方法可以从提升的方式以非提升的方式启动流程。我的设置启动提升,当它完成时,它只会启动主应用程序。由于设置已提升,因此主进程也会提升,这是不可取的。最好的解决方案是什么? 最佳答案 这是个问题,Vista/Win7似乎没有API来获取调用CreateProcessAsUser()所需的非特权用户token。我发现的唯一解决方案涉及使用任务调度程序来启动程序。我觉得这不太实用。我想到的一个简单的解决方案是使用一个小型的非提升的辅助进程。它可以依次启动提升的设置过程并等待该过程的确认以启动非提升的设置过程。握手非常简单,可以使用

windows - 为什么鼠标在 DISCL_EXCLUSIVE | 中消失了? DISCL_FOREGROUND 模式?

使用DirectInput时,为什么使用DISCL_EXCLUSIVE时鼠标光标完全消失了|DISCL_FOREGROUND作为你的合作等级?mouse->SetCooperativeLevel(hwnd,DISCL_EXCLUSIVE|DISCL_FOREGROUND);尽管DirectInput已被弃用,但鼠标甚至对WINDOWS不可用这一事实是否意味着您在使用DirectInput时(与RAWINPUT)相比,响应速度稍快且更好? 最佳答案 当我打开这个问题时,我没有意识到DISCL_EXCLUSIVE|DirectInput

c++ - 清空 Win32 弹出式菜单

我正在尝试在我的应用程序中创建一个动态弹出菜单,我使用的生成代码是这样的:HMENUmenu;POINTpt;menu=CreatePopupMenu();SetForegroundWindow(receivingWindow);GetCursorPos(&pt);inti=19;AppendMenu(menu,MF_STRING,i++,_TEXT("mehmeh"));AppendMenu(menu,MF_STRING,i++,_TEXT("testo"));AppendMenu(menu,MF_STRING,i++,_TEXT("foobarfoobar"));TrackPopu

windows - 加密难题/如何为远程协助票证创建 PassStub

我正在尝试为远程协助创建票证。其中一部分需要创建一个PassStub参数。截至文档:http://msdn.microsoft.com/en-us/library/cc240115(PROT.10).aspxPassStub:加密新手计算机的密码字符串。当远程协助连接字符串作为文件通过电子邮件发送,以提供额外的安全性,一个使用密码。在第16部分中,他们详细介绍了如何创建PassStub。在WindowsXP和WindowsServer2003中,当使用密码时,使用PROV_RSA_FULL预定义加密提供程序,具有MD5哈希和CALG_RC4,即RC4流加密算法。因为PassStub在文