草庐IT

c++ - 如何查询正在运行的进程的参数列表? ( window ,C++)

对于给定的Windows进程,我想知道它是用什么命令行参数启动的。Windows任务管理器能够显示这一点。 最佳答案 假设您知道进程ID,请使用OpenProcess获取它的句柄(这需要提升权限,如文档中所述)。然后使用NtQueryInformationProcess获取详细的过程信息。使用ProcessBasicInformation选项获取PEB进程的-这包含另一个结构指针,您可以通过它获取命令行。 关于c++-如何查询正在运行的进程的参数列表?(window,C++),我们在St

c++ - 为文本编辑控件实现缓冲区的最佳方法是什么?

所以我正在制作自定义编辑控件。为了跟踪编辑控件的内容,我使用了动态分配的char数组。现在,我知道我需要在数组的中间插入某些情况下,例如当用户点击特定的观点。所以,我在想,我可以使用而不是字符数组std::vector,所以我可以使用.insert函数,而且不必太关心内存管理。我也在考虑直接将输入流存储到一个词的数组/vector(不保持连续的缓冲区),因为我这样做的全部目的是实现语法突出显示。哪种处理方法更好?为什么? 最佳答案 对于当今计算机的文本缓冲区,您确实可以只使用一个连续的缓冲区(例如vector),因为CPU足够快以缩

c++ - MAKEWORD有什么用?

我在一段教学代码中遇到过这个宏MAKEWORD(2,2)。我在MSDN中读到它“通过连接指定的值创建一个WORD值。”问题是,WORD不是类似于无符号整数的东西吗,为什么我需要执行这样一个奇怪的过程,例如使用MAKEWORD()? 最佳答案 宏需要两个字节作为它的参数:WORDMAKEWORD(BYTEbLow,BYTEbHigh);它在Windef.h中定义为:#defineMAKEWORD(a,b)((WORD)(((BYTE)(a))|(((WORD)((BYTE)(b)))它基本上是从两个1字节的字构建一个16位的字(并且看

c++ - 如何注册 Windows 服务但避免它被列在服务控制台中?

我知道一个合法的Windows应用程序,一个家长控制软件,作为服务安装,但该服务未列在服务列表中,您在services.msc中看到的列表。虽然它在任务管理器中列出,但不在服务器列表中。我知道它是一个服务器,因为它与所有其他服务位于注册表部分,但是,services.msc控制台不会列出它。我研究了好几天都没有答案。我发现了这个类似的问题,但在答案中他们推荐了复杂的路线,比如编写设备驱动程序:Howtohidewindowsservicefromtaskmanagerinwindowsdesktop但是,这些人通过服务成功了。他们是怎么做到的?这是注册表项:[HKEY_LOCAL_MA

.net - 来自 Windows 服务的全局键盘 Hook

是否可以从windows(xp和7)服务编写全局键盘Hook?(使用SetWindowsHookEx在系统服务中不起作用) 最佳答案 SetWindowsHookEx的文档说:orwithallthreadsinthesamedesktopasthecallingthread.所以需要关联同一个桌面(即使不考虑终端服务也会有多个桌面:普通桌面、安全桌面(用于UAC和登录)和屏保)。由于服务不与交互式session关联(并且从WindowsV6开始,不能关联)您将需要用户session中的一个进程来执行Hook,并与后端服务通信(例如

c++ - 从 hWnd 获取(资源)ID

在ResourceHacker中,当您打开一个可执行文件(windows)时,您可以看到与对话框关联的标识符。有谁知道他们来自哪里?我的意思是,如何在我的C++程序中执行相同的操作以从HWND获取ID?顺便说一句,GetWindowLong(hwnd,GWL_ID)返回0。谢谢 最佳答案 GetWindowLong(hwnd,GWL_ID)返回对话框中控件的标识符,但它不能用于对话框本身,因为对话框根本没有标识符。与对话框关联的标识符实际上用于引用资源blob本身,而不是窗口。它们用于创建对话框(参见CreateDialog()。一

c# - COM 基本链接

伙计们,你能给我提供学习基本COM的教程链接或.pdf吗?。我用谷歌搜索它..我仍然推荐stackoverflow的答案所以请通过我..谢谢 最佳答案 这是我的一些比较好的书签:Wikipedia-ComponentObjectModelIntroductiontoCOM-WhatItIsandHowtoUseIt.IntroductiontoCOMPartII-BehindtheScenesofaCOMServerFinallyUnderstandingCOMAfterChangingaLightBulbIntroductiont

c++ - CCriticalSection 是做什么的?

这段代码有什么区别:::EnterCriticalSection(&m_CriticalSection);//...::LeaveCriticalSection(&m_CriticalSection);和代码:staticCCriticalSectioncs;cs.Lock();//...cs.UnLock(); 最佳答案 实际上没有区别。CCriticalSection是前者唯一的语法糖。它内部使用EnterCriticalSection和LeaveCriticalSection!EnterCriticalSection和Leav

c++ - 为什么 GetLastError() 会根据调用方式返回 0 或 2?

我正在使用mingwg++4.6.1和-O0,WinXPSP2。Minimalworkingexampleishere.g++配置了--disable-sjlj-exceptions--with-dwarf2。GetLastError()根据抛出异常的方式返回0或2:throwruntime_error(error_message());伪造的“错误代码:0”被打印出来,并且conststringmsg=error_message();throwruntime_error(msg);按预期打印“错误代码:2”。首先,我认为GetLastError()被调用了两次,但调试显示它只被调用了

c++ - WinMain 与 main (C++)

这个问题在这里已经有了答案:WINMAINandmain()inC++(Extended)(7个答案)关闭9年前。我是C++的新手,但之前做过一些.NET编程。main(...)和WinMain(...)有什么区别,我之前用main(...)并且能够调用Win32函数就像我使用WinMain(...)一样,所以这让我问“最好在哪里使用一个而不是另一个,或者它甚至会有所作为吗?”