草庐IT

c++ - 获取已创建进程的进程句柄 Windows

我需要在运行我的程序时为刚刚创建的所有进程提供句柄或PID。到目前为止,我已经使用了这段代码,每次创建进程时都会告诉我。问题是我只获得有关创建的进程的信息,但我没有关于进程本身的任何信息。https://msdn.microsoft.com/en-us/library/aa390425(VS.85).aspx这是我获得事件的功能,但我不知道从哪里可以获得新流程的信息:HRESULTEventSink::Indicate(longlObjectCount,IWbemClassObject**apObjArray){HRESULThres=S_OK;for(inti=0;i谢谢

c++ - 如何在进程外客户端中获取免注册 COM 对象代理

我不知道是否有使这成为可能的API,或者我是否必须自己动手。这就是我想要完成的。我有一个连接到NT服务以启动与另一个COM服务器的session的应用程序。应用程序,客户端。经纪人NT服务;(系统帐户上下文)。sessionCOM服务;(系统帐户上下文,将根据需要模拟用户)。session服务器将为连接到NT服务的每个应用程序实例都有一个运行实例。应用程序可以请求session服务器加载COM库DLL,并从session服务器中的那些DLL托管对象和服务。DLL通过免注册激活进行注册。从session服务器创建对象并将它们传回应用程序只要它们是IDispatch派生的就可以正常工作,这

c++ - 是否有 API 可以将 FILETIME 格式的时间从 UTC 时间转换为本地时间?

我知道SystemTimeToTzSpecificLocalTimeAPI可以将UTC时间转换为本地时间,但需要SYSTEMTIME格式的时间。我很好奇是否有接受FILETIME格式的API?附言。我知道我可以通过使用FileTimeToSystemTime()然后使用SystemTimeToFileTime()来实现这一点。我只是想节省转换为SYSTEMTIME和返回的两个步骤。 最佳答案 看看FileTimeToLocalFileTime()Convertsa(UTC-based)filetimetoalocalfiletime

c++ - 从模拟用户下启动的某些系统默认 .lnk 文件的问题

我正在编写32位服务应用程序,我希望能够在其中为登录用户启动“开始”菜单项。我确实设法通过模拟用户并使用CreateProcessAsUser和命令行启动选定的.lnk文件来完成此任务:%windir%\system32\cmd/c"start/b/i""""".它适用于几乎所有快捷方式,除了Accessories文件夹中的一堆系统快捷方式(例如StickyNotes.lnk、SnippingTool.lnk)。在启动截图工具期间,我从cmd收到带有此错误的消息框:Windowscannotfind'C:\ProgramData\Microsoft\Windows\StartMenu\

c++ - NetBeans C++ 8.0.2 输出中这些消息的含义是什么?

我在NetBeansC++中运行“HelloWorld”,它运行正常,但在输出中有错误消息:HelloWorld!readfrommasterfailed:Input/outputerrorRUNFAILED(exitvalue1,totaltime:72ms)这是什么意思,如何解决? 最佳答案 尝试更改默认选择的终端类型。为此,请转到属性(右键单击您的项目)->运行->控制台类型并更改类型。当所选选项不是Standardoutput时,有时会出现此问题(我假设您就是这种情况)。 关于c

c++ - Windows 7(或更高版本)中事件可见 HWND 的数量是否会显着影响性能?

诚然,这个问题含糊不清,但我正在努力避免陷入设计困境。我听说在一个应用程序中创建数百个按钮和其他控件的性能不如我自己编写无窗口控件并自行处理鼠标单击/移动/跟踪/捕获逻辑。我只想说我的偏好是使用基于HWND的控件,因为我不必重新发明轮子,但如果应用程序变得无法使用则不需要。 最佳答案 根据我对HWND密集型应用程序的体验,我认为您不会遇到严重的一般性能问题。但是,如果您疯狂地创建O/S窗口,则需要确保您没有超过每个进程和每个session的句柄限制(whichdefaultto10,000foraprocessand32,768fo

c++ - 如何在 C++ 中实现时间本地化?

我正在使用time_t和ctimeheader在我的应用程序中获取时间,一切正常。问题是,星期几和月份以英语显示,我希望它们以我的语言(葡萄牙语)显示。我怎么做?这是我的代码:time_ttempo=time(NULL);char*data=ctime(&tempo);cout这是实际输出:"FriAug2120:00:552015"我是这样想的:"20:00:55Sex21Ago2015"Sex是周五,Ago是八月。我什至用过这个:setlocale(LC_ALL,".");我的完整代码是这样的(它是葡萄牙语,所以变量名可能很奇怪):#include#include#include#

c++ - 如何捕获内存异常?

我在捕获异常时遇到问题,这是错误:Unhandledexceptionat0x01034BB1inHello.exe:0xC0000005:Accessviolationreadinglocation0x02343DA2.这是我的代码:boolVerifyAddress(HANDLEhwnd,DWORDdwAddress,char*bMask,char*szMask){PBYTE*pTemp={0};for(inti=0;*szMask;++szMask,++bMask,++i){try{if(!ReadProcessMemory(hwnd,reinterpret_cast(dwAdd

c++ - 从 USB 设备中的设备路径获取卷名称

我已经使用WindowsAPI构建了一个程序来检测某些媒体(cd、usb...)的插入。程序返回设备路径:\\\\?\\usb#vid_vvvv&pid_pppp#aaaaaaaaaaaaaaaa#{gggggggg-gggg-gggg-gggg-gggggggggggg}我正在使用函数GetVolumeNameForVolumeMountPoint通过解析报告的设备接口(interface)路径来获取卷名称here,但似乎此功能不适用于USB设备。知道在使用USB设备时如何从设备路径获取卷名称吗? 最佳答案 //FirstgetG

c++ - Windows 上没有 GLUT 的 OpenGL 4.5 简单教程

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭7年前。Improvethisquestion我在网上找到了很多针对旧版OpenGL的教程。但是在我加载了4.5的核心功能之后,我无法访问glSwapBuffers。可能这个功能已经过时了。有没有任何教程或文档我可以如何在OpenGL4.5中实际绘制。现在我已经使用PFD_DOUBLEBUFFER初始化了OpenGL,并且我已经将着色器编译到一个程序中。编辑:作为装载机,我使用OpenGLLoaderGenera