草庐IT

c++ - 使用 WinAPI 的简单 AES 加密

我需要在我的Qt/C++应用程序中进行简单的单blockAES加密/解密。这是一个“让诚实的人保持诚实”的实现,所以只需要一个基本的encrypt(key,data)——我不担心初始化vector等。我的输入和key将始终正好是16个字节。我真的想避免另一个依赖项来编译/链接/发布我的应用程序,所以我尝试使用每个平台上可用的东西。在Mac上,这是CCCrypt的一行代码。在Windows上,我迷失在WinCrypt.h的API中。他们加密文件的例子几乎有600行长。认真的吗?我正在查看CryptEncrypt,但我掉进了你必须在调用它之前创建的依赖关系的兔子洞。谁能提供一个使用Wind

c++ - 禁用特定进程的注册表访问 (WinAPI)

我有一个问题,我似乎无法找到答案,但我确信答案就在那里。有没有办法可以禁用新创建的进程的注册表和文件访问权限?我正在使用作业对象(http://msdn.microsoft.com/en-us/library/windows/desktop/ms682409(v=vs.85).aspx),它说要为每个新作业进程设置权限,我在几本书中读到可以控制注册表和文件访问等内容。在寻找我的答案时,我发现我需要为诸如SE_BACKUP_NAME之类的东西(或任何它被称为)添加LUID,但这些特权常量似乎都没有反射(reflect)我想要的控制类型。所以我的确切问题是:我将如何为作业中新创建的进程禁用

c++ - 我怎样才能得到一个程序的状态?

我正在观察一个程序,如果它在一段时间内处于“wait:executive”状态,我想终止它。这是ProcessExplorer的屏幕截图:我如何通过代码获得该状态?或者有人可以告诉我该状态的确切含义吗?这可能会帮助我找到正确的查询来解决我的问题。 最佳答案 它不是程序的状态,而是线程的状态。一个进程可以有多个线程。您可以调用WaitForSingleObject确定一些状态。您还可以使用COM并选择Win32_Threadclass实例化WMI.Hereissomeexample.更多信息在这里:Howtodeterminethat

c++ - DirectX9 窗口在运行时调整大小而无需设备重置

在:C++\Win32application(notinfullscreen)\DX9如何在调整大小时快速且足够好地重绘窗口内容?Resize==userdragwindowborder.不同的方法:在每个WM_SIZE\WM_PAINT上重置设备。足够的分辨率,但黑色条纹出现在快速高档。在WM_EXITSIZEMOVE上重置设备并在WM_ENTERSIZEMOVE上暂停渲染。速度最快,但在调整大小时出现丑陋的黑色条纹。在这种情况下找不到如何使用dx9的交换链在调整大小时保持渲染和交换缓冲区;在WM_EXITSIZEMOVE上重置。正是2010SDK的官方演示中发生的情况。看起来很快并

c++ - 如何禁用辅助监视器(使用 ChangeDisplaySettingsEx)?

我正在尝试按照MSDNgivenhere上的说明进行操作禁用辅助监视器。我正在尝试专门使用这组函数来兼容旧版本的Windows。但是,我无法设法禁用监视器。我正在Windows7x64上运行和测试它。我得到的只是一个闪烁的屏幕。该代码肯定能正确检测到显示器——我设法更改分辨率并轻松查看它的显示模式。这是我的(部分)代码-我在DEVMODE的字段上尝试了很多变体DEVMODEdeleteScreenMode;ZeroMemory(&deleteScreenMode,sizeof(DEVMODE));deleteScreenMode.dmSize=sizeof(DEVMODE);delet

c++ - 枚举 HWND 属性 C++

我正在尝试从HWND获取属性。我使用了来自UsingWindowProperties的信息,但下面的示例对我不起作用。我在编译代码时遇到错误。argumentoftype"BOOL(__stdcall*)(HWNDhwndSubclass,LPCSTRlpszString,HANDLEhData)"isincompatiblewithparameteroftype"PROPENUMPROCEXW"这是我的回调函数BOOLCALLBACKPropEnumProcEx(HWNDhwndSubclass,LPCSTRlpszString,HANDLEhData){returnTRUE;}这就

c++ - 如何比较宽字符 "H2Oリテイリング"和 "H2Oリテイリング"

我正在尝试比较一些相似的字符串,例如:比较字符串"H2Oリテイリング"和"H2Oリテイリング"应该返回true比较字符串"Oリテイリング"和"H2Oリテイリング"应该返回true我将通过TCHAR数组获取这些字符串。有什么方法可以比较这些类型的字符串吗?我试过逐个字符进行比较,但没有用。#defineMAX_STRING256boolIsStringsEqual(TCHAR*str1,TCHAR*str2){if(_tcscmp(str1,str2)==0)returntrue;elsereturnfalse;}int_tmain(intargc,_TCHAR*argv[]){TCHA

c++ - 如何使用 C++ (keybd_event) 发送 unicode 键

我的friend正在学习挪威语,我想制作一个全局热键程序来发送诸如æøå我的问题是keybd_event函数不允许我发送那些key,我似乎仅限于virtualkeycodes我可以使用其他功能或一些技巧来发送它们吗? 最佳答案 您必须改用SendInput。keybd_event不支持发送此类字符(除非它们已经在当前代码页中,例如在挪威计算机上)。发送å的一些示例代码:KEYBDINPUTkb={0};INPUTInput={0};//downkb.wScan=0x00c5;kb.dwFlags=KEYEVENTF_UNICODE;

c++ - 有没有办法从 Excel 的公式栏中获取文本和光标位置?

我想从Excel中的公式栏中获取当前(可能未提交)文本(来自进程中的插件)。所有“常规”技术都不起作用,例如GetWindowText(...)等。至于光标位置:GetCaretPos实际上有效(返回插入符号的x、y坐标),但EM_CHARFROMPOS无效(总是返回0),所以这是一个死胡同。此功能是否以任何方式通过COM或XLLAPI公开?编辑:我还想指出,我认为我的大部分问题都来自于公式栏(至少我有99%的把握)不是编辑控件,这可以通过查看它的窗口类。 最佳答案 公式栏,实际上Office中的大多数控件都是非标准的。发送标准消息

c++ - 如何设置 win32 api c++ 按钮背景颜色和文本颜色?

我在win32应用程序中使用简单的按钮,我喜欢更改它的颜色和文本但我无法从谷歌的所有搜索中找到如何去做。我有代表按钮的代码:这是在rc文件中:LANGUAGELANG_NEUTRAL,SUBLANG_NEUTRALIDD_DIALOG1DIALOG0,0,273,209STYLEDS_3DLOOK|DS_CENTER|DS_MODALFRAME|DS_SHELLFONT|WS_CAPTION|WS_VISIBLE|WS_POPUP|WS_SYSMENUCAPTION"Win32demo"FONT8,"MsShellDlg"{DEFPUSHBUTTON"MyButton1",IDOK,5