草庐IT

c++ - 如何在工作线程(非 UI 线程)中创建模态对话框?

我编写了一个示例MFC应用程序,其中有两个线程:-主线程(UI线程)-工作线程(非UI线程)我有一个特定的要求,即在非UI(工作线程)中创建一个Modal对话框。当我创建CDialog对象并在其上调用DoModal时,它起作用了。该对话框被创建并充当应用程序的模式。(WinXPSP2机器)但这在Windows2003服务器机器上不起作用。2003服务器的行为是,模态对话框位于应用程序主窗口后面,只有当我单击主窗口时,对话框才会出现在前面。它不是作为我的应用程序的模态对话框。可能是什么问题——有什么想法吗?如果在非UI线程中创建UI控件是个问题,那么是否有任何Win32API允许我将工作

c# - 每次打开应用程序窗口(其他进程)时如何执行一些代码?

我正在尝试跟踪所有当前正在运行的进程的可见窗口。我的程序与这些窗口交互,它检测到它们的速度越快越好。我的目标是将可见窗口移动到屏幕上的某个位置,如果可能的话,甚至在它们绘制到默认位置之前。如果不是,我想在创建后尽快移动它们。现在,我在循环中使用EnumWindows(p/从user32.dll调用)枚举可见窗口,迭代之间的延迟尽可能小。我正在寻找一种方法来Hook“某物”,这将允许我等待“窗口打开”事件触发而不是不断轮询。有什么方法可以实现吗? 最佳答案 您需要SetWindowsHookEx()API函数,设置WH_SHELLHo

c# - 在 C# 中使用 TaskDialogIndirect

我已经使用常规WindowsVista/7TaskDialog工作了一段时间,我想添加一些额外的功能(如自定义按钮和页脚),所以我需要使用TaskDialogIndirect.按照TaskDialogIndirect的MSDN文档,我得到了这个签名:[DllImport("comctl32.dll",CharSet=CharSet.Unicode,EntryPoint="TaskDialogIndirect")]staticexternintTaskDialogIndirect(TASKDIALOGCONFIGpTaskConfig,outintpnButton,outintpnRad

windows - DefWindowProc 处理哪些消息?

是否有任何文档说明DefWindowProc处理哪些消息,以及如何处理?我最近偶然发现WM_SETFONT/WM_GETFONT没有被处理,我不确定我的代码是否有错误,或者这是否是预期的行为,所以我尝试了以下WinMain:WNDCLASSEXwcx={sizeof(WNDCLASSEX),CS_HREDRAW|CS_VREDRAW|CS_DBLCLKS,DefWindowProc,0,0,//class/wndextrabyteshInstance,0,LoadCursor(0,IDC_ARROW),0,0,_T("someclass"),0};ATOMa=RegisterClass

c# - .NET 中的 "start/affinity"等价物

startWindowsshell命令(在cmd.exe中)似乎能够启动进程具有选定的处理器关联,而不是启动进程然后在它启动后的某个(小)时间段内设置所选的处理器亲和性。start/affinity2something.exe有没有办法在使用或不使用P-Invoke的情况下在.NET应用程序中执行相同的操作?调用cmd.exe/Cstart...不算在内。Process类具有ProcessorAffinity属性,但如果您在调用Start之前尝试设置它,它会抛出InvalidOperationException方法。 最佳答案 我怀

windows - ZwQuerySystemInformation/NtQuerySystemInformation - 系统信息类5

对于32位Windows,在使用ZwQuerySystemInformation声明_SYSTEM_PROCESSES结构(系统信息类5)之后可以很好地满足我构建进程树的目的。typedefstruct_SYSTEM_PROCESSES{//SystemInformationClass5ULONGNextEntryDelta;ULONGThreadCount;ULONGReserved1[6];LARGE_INTEGERCreateTime;LARGE_INTEGERUserTime;LARGE_INTEGERKernelTime;UNICODE_STRINGProcessName;U

windows - 使用 WM_SHOWWINDOW 代替 ShowWindow() 来显示窗口

我正在尝试使用热键实用程序(或NirCMD等)的SendMessage功能来弹出隐藏窗口。例如,我可以通过发送0x0010(WM_CLOSE)来关闭窗口,但是当我尝试发送wParam为1和lParam为0的0x0018(WM_SHOWWINDOW)时,没有任何反应。我环顾四周,有人提示WM_SHOWWINDOW不起作用的几个地方,他们很高兴地接受了改用ShowWindow()的建议。但是我没有可用的ShowWindow();我只能发送Windows消息。但是ShowWindow()并不神奇,它肯定可以通过SendMessage-ingWM_SHOWWINDOW或幕后的东西来工作。如何通

windows - Microsoft 将 TraceDmp 工具/源隐藏在哪里?

MSDN上的这个链接说它存储在WindowsSDK的示例目录中:http://msdn.microsoft.com/en-us/library/aa363805(VS.85).aspx除非不是,而且我有最新版本。如果不是可分发工具本身,可以去哪里找到此代码? 最佳答案 如果您有v6.1WinSDK,可以在这里找到它:%programfiles%\MicrosoftSDKs\Windows\v6.1\Samples\WinBase\eventtrace\tracedmp我需要检查它是否适用于较新版本的平台SDK。

windows - 两个DC是否可以共享一个GDI对象(画笔、笔等)?

两个设备上下文(DC)可以共享一个GDI对象,例如画笔或笔吗? 最佳答案 SelectObject的文档提到一次不能将位图选择到一个以上的DC中。本质上这是因为GDI操作可以写入位图,同时管理多个写入操作会很复杂。然而,所有其他GDI对象一旦创建(区域除外-但它们总是被复制)是不可变的,因此对于一次被选入多个DC没有限制。 关于windows-两个DC是否可以共享一个GDI对象(画笔、笔等)?,我们在StackOverflow上找到一个类似的问题: https

windows - 如何创建系统还原点?

这个问题在这里已经有了答案:Howtocreateasystemrestorepointprogrammatically?(3个答案)关闭2年前。安装paint.net,发现字符串Creatingsystemrestorepoint...我猜它正在为卷影服务创建一个还原点。-不是吗?我不确定。如果我是对的,我该如何在我的应用中执行此操作?如果有合适的Apis,请告诉我。