草庐IT

c - Wndproc 和 hook 是否在主线程中?

抱歉我的愚蠢问题,但是主线程中的wndproc和Hook(调用时)?如果是,是否意味着我不能将它们用于构建键盘输入缓冲区? 最佳答案 您的窗口过程(以及任何子类窗口过程、Hook等)在调用CreateWindow的线程中运行(要求同一线程稍后处理消息队列,窗口过程实际运行当您的主消息分发循环调用DispatchMessage时)。不确定“为键盘输入构建缓冲区”是什么意思。 关于c-Wndproc和hook是否在主线程中?,我们在StackOverflow上找到一个类似的问题:

c - OpenSSL 库 : 2 on Linux libcrypto and libssl and more than 13 on windows. 我应该在 Windows 上链接什么来编译我的示例?

所以我看this示例代码:#include#include#include"openssl/sha.h"voidsha256(char*string,charoutputBuffer[65]){unsignedcharhash[SHA256_DIGEST_LENGTH];SHA256_CTXsha256;SHA256_Init(&sha256);SHA256_Update(&sha256,string,strlen(string));SHA256_Final(hash,&sha256);inti=0;for(i=0;i我应该将哪些库链接到我的项目以在Windows上编译它?

c - 如何从注册表中获取每个键和子键?

我正在尝试编写一个应用程序,我可以在其中提供一个注册表路径,例如HKLM\hardware\description\system并且我的应用程序应该在系统下读取每个键名,如果有子键它们的名字,如果还有更多的子项然后他们的名字等等...我的应用程序正在运行(或多或少),但我的问题是如何计算子键?比如system下有2个key,a和b,a下多了3个key,b下多了5个,那我应该怎么算自己在哪个sublevel呢?这很重要,因为我必须知道如何连接注册表路径?到目前为止,这是我的代码(大部分来自msdn,但我找不到类似的示例):#include#include#include#include#

java - 是否可以在 C :/Windows/System32/location at runtime? 中放置一个 myfile.file

我想在中放置一个名为myFile.file的文件C:/Windows/System32/位置。这里是使用java代码放置我的文件。当我执行我的程序时,它抛出“AccessDenied:C:/Windows/System32/myFile.file”。为什么会这样?可以放在那个位置吗? 最佳答案 该(以及许多其他)系统位置仅限于管理员用户/提升的应用程序。应用数据应存储在用户配置文件(或公共(public)应用数据)中的用户应用数据文件中。如果你真的必须写入系统文件夹,那么你需要通过UAC请求用户许可,或者使用ShellExecute

c++ - 让 c 程序执行另一个程序的麻烦

我主要感兴趣的是让C程序的简单目标我只是想弄个C程序来做c:\windows\system32\cmd.exe/k目录要么c:\windows\system32\cmd.exe/kc:\windows\system32\cmd.exe/k目录我找到了一个WindowsC编译器..叫做lcc-win32这是我正在使用的代码,目前只是为了启动cmd.exe#include#includeusingnamespacestd;intmain(){ifstreaminFile;inFile.open("c:\windows\system32\cmd.exe");if(!inFile){cout但

c - 在没有宿主程序帮助的情况下,如何在同一个进程中协调不同的 DLL?

我正在寻找一种方法来协调同一进程中的DLL,以便在它们之间提供数据共享机制。目标是为所有DLL提供相同的共享代码,并让它们以这样一种方式进行协调,即由主程序加载的第一个将充当共享项的管理器,而其他人将使用此管理器。我无法修改主应用程序,因此不可能设置管理器并与其他DLL共享其内存地址。使用此机制的DLL集可能会有所不同,因此我不能明确假设其中一个将被加载。我考虑的一种解决方案是将内存地址添加到进程的环境变量中。第一个DLL会看到环境变量尚未设置,创建管理器对象并将变量设置为其地址。其他DLL会看到该变量并从中创建一个指向管理器对象的指针。这接近我想要的,但它似乎有点粗糙,因为不能保证环

c++ - 使用 dll 中的类时内存无效

这是我第一次尝试从dll导出类。我所做的是:-创建一个接口(interface)(只有纯虚方法)-使用不会导出的类在dll中实现此接口(interface)-该类有一个在其this指针上调用delete的释放方法-创建了一个带有静态方法的工厂类,该方法返回指向具体类的指针但作为接口(interface)。这个类是导出的。-返回对象的删除是通过调用其释放方法完成的。我从本教程中收集了所有这些aboutclassesindlls.问题是,当我在另一个项目中使用此dll时,一切正常,直到我对该对象调用释放函数。然后它会显示一个断言失败窗口,其中包含消息“_ASSERTE(_BLOCK_TYP

c++ - 窗口最大化

我想创建一个程序,我可以在其中设置最大最大化尺寸(如点击最大化按钮时窗口最大化的尺寸)和最大化位置(最大化窗口的X/Y坐标)正在运行的窗口。这样一来,我就可以随时在辅助显示器上看到我的Rainmeter,而无需手动调整适合其中的每个窗口的大小。我已经成功地为我使用WinAPI中的MINMAXSIZE编写的一个简单程序做到了这一点。这种方法似乎非常适合我的小程序,但除了互联网上的1或2篇文章外,关于它的文档很少。我想知道这是否是设置最大最大化大小的最佳方法,或者是否有其他方法可以做到这一点。我计划将其实现到所有应用程序中的方式是DLL注入(inject)或Hook(我对这两种方法都没有任

c++ - 如何确保转储文件由 C++ 应用程序在未处理的异常情况下写入

如果发生未处理的异常,如何确保转储文件由C++应用程序写入。例如,如果不处理被零除,那么如何确保写入Dump。此外,我尝试搜索但没有找到好的windbg教程也很棒。 最佳答案 我假设您正在寻找一种外部方式来创建这些转储(毕竟,您询问的是未处理的异常)。在Vista及更高版本中,您正在寻找的机制称为Windows错误报告-WER。你可以configureittocreatedumps崩溃时,将它们放置在特定位置。在Vista之前,您可以使用drwtsn32.exe来做到这一点.您还可以使用ADPlus运行您的程序,这将在进程崩溃时立即

c - 如何检查指定用户是否是本地计算机上的管理员?

我想知道用户是否是PC上的管理员?我找到了执行此操作的代码片段,但我遇到了问题。这段代码的问题是,如果启动进程的用户是否具有管理员权限,则此函数将返回。但我想查询特定用户是否具有管理员权限。我能以某种方式做到这一点吗?这很重要,因为我的应用程序将在SYSTEM帐户下运行,因此它总是返回用户是管理员,但我想知道登录用户是否是管理员?代码片段:BOOLIsUserAdmin(VOID)/*++RoutineDescription:ThisroutinereturnsTRUEifthecaller'sprocessisamemberoftheAdministratorslocalgroup.