草庐IT

c++ - CertCreateCertificateContext 返回满足 ASN1 错误标记值

我正在将.p7b证书文件加载到内存中,然后对其调用CertCreateCertificateContext,但失败并显示错误“满足ASN1错误标记值”。调用看起来像这样:m_hContext=CertCreateCertificateContext(X509_ASN_ENCODING|PKCS_7_ASN_ENCODING,pbCertEncoded,dwCertEncodedLen);这会返回NULL并且GetLastError()会返回上述错误。我通过从IE的设置中拖出一个证书来创建证书文件,然后自动导出到一个文件。我做错了什么?谢谢! 最佳答案

c++ - 全局 Shell Hook 只注册本地事件

我正在尝试使用全局shellHook来监听窗口创建和销毁的事件,但似乎我的程序只是为本地线程注册销毁的事件。根本没有创作事件,而且绝对不是我认为应该是的全局事件。我花了最后一天时间搜索google以及codeguru、codeproject和msdn,但在我看来我做对了,尽管我显然不是。谁能帮我指出正确的方向?#pragmadata_seg(".SHARE")HWNDhWndServer=NULL;HHOOKg_shell_hook=NULL;#pragmadata_seg()#pragmacomment(linker,"/section:.SHARE,RWS")TASKBAR_API

c++ - pthread Windows 事件等效问题

我有以下代码可以复制Windows手动和自动重置事件。classevent{public:event(boolsignalled=false,boolar=true):_auto(ar),_signalled(signalled){pthread_mutex_init(&_mutex,NULL);pthread_cond_init(&_cond,NULL);}~event(){pthread_cond_destroy(&_cond);pthread_mutex_destroy(&_mutex);}voidset(){pthread_mutex_lock(&_mutex);//onlys

c++ - 您如何使用字符覆盖在 Windows 上进行屏蔽密码输入?

目前我正在使用这个实现来在密码输入期间隐藏用户输入:voidsetEcho(boolenable){HANDLEhStdin=GetStdHandle(STD_INPUT_HANDLE);DWORDmode;GetConsoleMode(hStdin,&mode);if(enable){mode|=ENABLE_ECHO_INPUT;}else{mode&=~ENABLE_ECHO_INPUT;}SetConsoleMode(hStdin,mode);}用户需要能够在输入文本时得到积极的反馈。在使用C++的Win32环境中可以使用哪些技术? 最佳答案

c++ - 第一次调用 FindWindowEx/EnumChildWindows 后是否缓存了控件树?

我注意到,如果您针对属于不在前台(即最小化)窗口的hWnd调用FindWindowEx或EnumChildWindows,则它们不会报告任何children。另一方面,如果我首先对正在查询的窗口调用SetForegroundWindow,然后调用FindWindowEx或EnumChildWindows,它们会报告所有子项.即使我感兴趣的窗口不在前台,下一次调用也会报告所有子项。它几乎是在第一次调用后进行某种缓存? 最佳答案 这是您自己的应用程序中的一个窗口,还是您正在调查第三方应用程序的功能?我猜应用程序只会在它第一次进入前台时创

wpf - 有没有办法使用 native C++ 从 WPF 窗口捕获位图?

想象一下MDI应用程序中的一个文档窗口,它包含一个WPF子窗口,例如边栏。如何获得包含WPF像素和GDI(非wpf)像素的位图?我发现,在为Win7任务栏应用程序图标悬停进行缩略图预览时,我在预览中应该是WPF像素的部分变黑了。我当前的方法只是抓取文档窗口的位图捕获。然后我得到一个DC用于预览,从中制作一个内存DC,然后选择我的位图。然后我做了一些大小调整,并将内存dc位转换为真正的dc。我猜BitBlt操作没有考虑到WPF像素是硬件加速的,因此需要从图形硬件中获取这一事实。GDI中的所有内容都得到很好的管理,但是当没有WPF子窗口时,预览图像看起来很好。我想知道是否有可能从nativ

c++ - 以低权限枚举 Windows 上的共享文件夹

使用C++(VS2008)我需要能够枚举当前机器上的所有共享文件夹并获取或构造本地和远程名称。我们一直在使用NetShareEnum为此相当成功,但遇到了一个问题,我们需要使用低权限的用户帐户运行。要使用NetShareEnum获取本地路径,我们至少需要检索SHARE_INFO_2结构-但这需要“管理员、高级用户、打印运算符(operator)或服务器运算符(operator)组成员资格”。我一直在尝试使用WNetOpenEnum和WNetEnumResource相反,但我似乎也没有为股票取回本地名称。AFAICS它仅从外部角度列举了股票。因此,我要么希望获得有关WNetEnumRes

c++ - 显示如何向 Opera/Firefox 4 等 Vista 窗框的玻璃部分添加按钮/菜单的示例

我想在使用WTL和Win32++的C++应用程序中将菜单添加到框架的玻璃部分。这些库可能主要是因为这是我需要从Win32做的事情。最新版本的Opera和即将推出的Firefox将执行此操作,但我无法找到代码示例。有没有人有将控件添加到他们可以共享的玻璃的示例?我想我可以使用一个按钮示例和类似的东西。我用WinSpy做了一些挖掘,但我无法计算出Opera使用的确切控件。我只针对WindowsVista和7。歌剧示例:在Firefox4中显示菜单的示例proposal(在他们的YouTube演示文稿中点击链接了解更多信息:(来源:faaborgatpeople.mozilla.com)

c++ - 如何获取进程的最后事件日期?

我有一项任务是在C++中使用COMInProcServer打印进程的最后事件日期。我尝试使用getProcessTimes()函数执行此操作,但这给了我一个访问冲突错误。首先,我想知道是否有任何其他命令给出进程的最后事件日期..其次下面代码有什么问题FILETIMEftCreation,ftKernel,ftUser;GetProcessTimes(hProcess,&ftCreation,&ftExit,&ftKernel,&ftUser);`我尝试了memsetting和其他几种替代方法,但没有任何效果...... 最佳答案 这

c++ - 32 位应用程序中的 WebBrowser 控件在 window.open() 调用上启动 64 位 Internet Explorer

我有一个在Windows764位上运行的32位应用程序。该应用程序(用C++编写)托管一个WebBrowser控件。当要求WebBrowser控件弹出一个新窗口(通过javascriptwindow.open()调用)时,它会启动一个新的InternetExplorer进程。特别地,这个新的IE进程是一个64位的IE进程。由于网页喜欢Adob​​eFlash,不幸的是我需要确保启动的新IE进程是32位版本(这是我机器上的默认版本),以便可以显示Adob​​eFlash内容。有趣的是,IE本身(围绕WebBrowser/MSHTML的包装器)不会遇到这个问题,这意味着可以设置某种配置来提