jjzjj

c++ - 如何使用 C++ 通过其句柄关闭 MessageBox 窗口

我有一个多线程应用程序,它可以为用户交互显示一个MessageBox。在用户从应用程序的系统托盘图标中选择上下文菜单命令后,消息框本身会从工作线程显示,因此从技术上讲,用户可以在显示消息框的同时继续使用该应用程序。在用户发出“退出”命令之前,这非常有用,此时我需要找到一种方法来关闭所有打开的消息框。我做了功课,我能够获得消息框(usingthismethod)的主(对话框)窗口的HWND句柄。我使用Spy++检查了HWND是否正确,因此HWND本身不是问题。发生的事情是,当我从另一个线程执行PostMessage(hMsgBoxWnd,WM_CLOSE,0,0);到消息框时,它只是忽略

c++ - AdjustTokenPrivileges 错误 6 - 句柄无效

请告知为什么下面的AdjustTokenPrivileges函数总是返回true,从而给出:“AdjustTokenPrivilegeserror6”(即无效句柄)?stackoverlow提示我解释得不够我不知道还有什么要补充的。我是C++的新手。HANDLEhToken;OpenProcessToken(GetCurrentProcess,TOKEN_ADJUST_PRIVILEGES,&hToken);SetPrivilege(hToken,L"SeBackupPrivilege",1);CloseHandle(hToken);BOOLSetPrivilege(HANDLEhTo

windows - 将 ProcessID 转换为进程句柄

我正在尝试为监控进程编写基本驱动程序并获取进程路径。我创建PsSetCreateProcessNotifyRoutine并使用ZwQueryInformationProcess检索进程信息但是在我的ProcessCallback函数中,当我尝试使用NtCurrentProcess获取当前进程HANDLE时,它会给我运行另一个进程的当前进程。例如:itrytorunmyProgram.exeinc:\,whenigotoC:\usingwindowsexplorerandrunmyProgram.exemydrivergivemeexplorer.exepathbecausemyProg

windows - 无法获取 Windows Internet Explorer 主窗口的句柄

背景:我正在创建一个IWebBrowser2并导航到一个URL。这是代码的简短版本:IWebBrowser2*pWebBrowser=NULL;hr=::CoCreateInstance(CLSID_InternetExplorer,NULL,CLSCTX_LOCAL_SERVER,IID_IWebBrowser2,(void**)&pWebBrowser);hr=pWebBrowser->Navigate(bstrURL,&varFlags,&varEmptyStr,&varEmptyStr,&varEmptyStr);hr=pWebBrowser->put_Visible(VARI

windows - FILE_FLAG_NO_BUFFERING 如何与向通信设备打开的句柄交互?

正如标题所说,我正在编写一个网络程序,我在其中使用CreateFile打开网络驱动程序的句柄,并且我一直在试验NO_BUFFERING标志。大多数文档甚至都不会提及将其与通信设备一起使用,而那些这样做的文档(又名MSDN引用等)只是简单地提到您可以。有谁知道这会如何影响与设备的通信? 最佳答案 这是一个设备驱动程序实现细节,您在CreateFile()调用中指定的选项在IRP_MJ_REQUESTrequest中传递.我链接的那个是用于文件系统的,非常漂亮。通过IrpSp->Parameters.Create.Options链接单击

windows - 如何从 ReOpenFile 的 QFile 或 QSaveFile 获取窗口句柄?

给定一个QFileDevice实例(一个QFile或QSaveFile)——如何获得nativeWindowsHANDLE文件?这个句柄可以与ReOpenFile一起使用吗? 最佳答案 QFileDevice::handle()返回从QFSFileEnginePrivate::nativeHandle获得的C文件描述符(fd-一个小整数).该文件描述符是您从_open_osfhandle中获得的内容.您需要使用_get_osfhandle返回到HANDLE。structFdHandle{intfd=-1;HANDLEhandle=I

c++ - 创建附加到控制台但具有重定向标准 IO 句柄的进程

我有一个命令行应用程序,它根据用户提供的脚本执行其他程序。一些执行的子进程是cmd.exe运行各种.cmd脚本。一些.cmd脚本使用titleWindowsshell命令设置控制台窗口标题。这就是问题所在。如果用户请求记录子进程的输出,我使用标准句柄的管道来获取子进程的输出。然而,这似乎使子进程无法附加到我的应用程序运行所在的控制台,因此title命令停止工作,停止更改控制台窗口标题。是否可以创建一个具有重定向标准句柄但仍附加到父进程控制台的进程,以便title命令起作用? 最佳答案 显然,要将子进程附加到父控制台,所需要做的就是不

c# - 如何获取进程的主窗口(不是窗口句柄)?

这个问题在这里已经有了答案:GetWPFwindowbyhWnd(4个答案)关闭9年前。一段时间以来,我一直在尝试获取对我的进程主窗口的引用。我浏览了许多站点以寻找解决方案。但看起来每个人都提供了一种解决方案来获取窗口句柄而不是窗口本身。获取进程的主窗口句柄非常简单。我似乎也按预期获得了窗口标题。我浏览了User32.dll提供的大部分API,但找不到我要找的东西。我需要对窗口的引用,因为我想访问窗口类的几个成员来完成我的工作。我指的窗口是WPF窗口。在这方面的任何帮助将不胜感激:)提前致谢。

python - 注册表句柄泄露?

我们正在运行一个Python脚本(使用多线程)在基于Amazon-EC2的WindowsServer2008机器上做一些工作。当机器启动时,我可以看到它开始执行Python脚本,然后我开始在事件日志中看到如下消息:Windowsdetectedyourregistryfileisstillinusebyotherapplicationsorservices.Thefilewillbeunloadednow.Theapplicationsorservicesthatholdyourregistryfilemaynotfunctionproperlyafterwards.DETAIL-19

c# - 如何将另一个应用程序的窗口句柄最小化到系统托盘?

实例A正在尝试恢复实例B的窗口,但我无法获取实例B的窗口句柄。我认为问题是B正在使用以下方法将窗口最小化到系统托盘:this.Visibility=Visibility.Hidden;A尝试使用以下方法获取B的窗口句柄:Processprocess=Process.GetCurrentProcess();Process.GetProcessesByName(process.ProcessName).First().MainWindowHandle;等于IntPtr.Zero。我还尝试使用Spy++按类名获取窗口句柄,但类名具有以下格式的每个实例GUID:HwndWrapper[File