草庐IT

c++ - 如何将我的窗口投影为前台的事件窗口

打开了一些窗口,在我的流程中,我想再启动一个窗口(高优先级),用户必须在其中输入凭据。我想把这个凭据窗口放在前台,反过来它可能会给用户带来很好的体验,因为他不需要手动选择凭据窗口。这是一次性启动,绝对不烦人,但用户必须输入信用。实现此目标的最佳方法是什么?我不认为模拟鼠标点击是个好主意。有没有办法将消息发送到其余窗口以使其失去焦点?这样当我启动我的窗口时,它就会出现在前台。 最佳答案 这对我有用,无需使用SetWindowPos使窗口“始终在最前面”:HWNDforeGround=GetForegroundWindow();if(f

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

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

c++ - 如何将 WinProc 消息代码转换为文本?

我已经像这样定义了一个winproc消息处理程序WndProc(HWNDhwnd,UINTuMsg,WPARAMwParam,LPARAMlParam)是否有将uMsg代码转换为文本的实用函数?我需要它来调试。我似乎无法在msdn上用谷歌找到它。我可以自己编写代码,但它应该已经存在...谢谢。 最佳答案 听起来像是Spy++的工作如果它只是你想要的调试,但是,如果你需要它在更多的代码级别,那么你可能需要使用CPP定义来创建日志记录,例如:#defineWNDMSG(x)casex:LogWndMessage(#x);

windows - 如何使用MFC统计Windows中每个进程的线程数

我想使用MFC构建一个类似于应用程序的任务管理器。我已经成功地枚举了当前运行的各种进程的PID和内存使用情况。我的问题是我还想获得每个进程运行的线程数。 最佳答案 您可以使用Toolhelperlibrary来做到这一点(以及更多相关的事情)(win32)通过进程snapshot然后走路Thread32First/Next. 关于windows-如何使用MFC统计Windows中每个进程的线程数,我们在StackOverflow上找到一个类似的问题: http

windows - 在 Windows 上,当我的子窗口的 z 顺序相对于其 sibling 之一发生变化时,它是否应该获得 WM_WINDOWPOSCHANGED?

我正在尝试将自定义小部件插入到InternetExplorer8网址栏中,位于停止和重新加载按钮旁边。这只是我个人生产力的提升。IE框架这部分的“窗口模型”是一个“地址栏根”窗口,它拥有包含IE8网址栏的窗口:一个编辑框、一个组合控件以及停止和重新加载按钮。在另一个进程中,我创建了一个新的WS_CHILD窗口(具有自定义类名),它是IE的地址栏根窗口的父级,因此使其成为编辑框的同级窗口并停止/重新加载。我用HWND_TOP的hwndInsertAfter调用SetWindowPos以确保它出现在urlbar的“上方”(即“在”中)。这很好用,我看到我的窗口最初是在IEurlbar中绘制

c++ - 如何在没有资源编译器的情况下将自定义窗口的资源添加到可执行文件中?

我能够将位图对象(LoadImage)加载到可执行文件中(并将其实现为图标);然而,当我将它作为独立的可执行文件发布时,图标消失了。我发现它需要位图在运行时出现在目录中才能使这个技巧起作用。但是,即使当前目录中存在位图,我的可执行桌面图标也不会从默认图标更改。我假设会发生这种情况,因为桌面图标应该在编译时确定。因此,我想知道是否有一种方法可以在不需要资源编译器的情况下将资源添加到可执行文件中?我的愿望是用winapi完成所有事情。如果那不可能,那么我会考虑替代方案。 最佳答案 你可以使用BeginUpdateResource,Upd

windows - C++/W32 - 录制声音、Direct Show 或 WaveInOpen?

想到WinXP、Vista、Win7++该选什么:使用DirectShow/Direct...录制音频?使用经典的WaveInOpen(我在某处看到有人说这将在W7/W8中过时-可能吗?)附言。我需要回调功能,以将缓冲区传递给编码器。谢谢! 最佳答案 WaveIn易于使用,网上有大量示例代码,它会以您需要的方式为您提供回调。DirectSound使用循环缓冲区,设置起来可能有点麻烦,很可能您需要处理循环缓冲区而不是“只是填充缓冲区”。然而,DirectSound可以让您更严格地控​​制音频,即延迟更好一些。IMO,Microsoft

windows - 如何检测 Windows 终端服务器是否处于安装模式

我可以使用以下命令来查明Windows终端服务器是否处于安装模式。changeuser/query如何通过WindowsAPI以编程方式检测此问题? 最佳答案 我猜你想要Win32_TerminalServiceSetting中的TerminalServerMode属性WMI类ThisTechnetarticle有一个脚本示例,您可能可以对其进行调整以测试该属性。要在nativewinapi中执行此操作(不使用WMI),您可以查看winsta.dll中未记录的函数或检查registry.

c - 使用 Windows slim 读/写锁

/*languageCcode*/#include"windows.h"typedefstructobject_s{SRWLOCKlock;intdata;}object_t,*object_p;/*ownandpointertype*/voidthread(object_px){AcquireSRWLockExclusive(&x->lock);//...dosomethingthatcouldprobablychangex->datavalueto0if(x->data==0)free(x);elseReleaseSRWLockExclusive(&x->lock);}voidma

windows - 如何区分计算机中的两个鼠标?

好吧,我想与许多用户共享一个桌面环境,所以它似乎需要输入隔离。首先,如何区分一台电脑中的两只鼠标?然后我可以绘制光标并分别处理它们的事件。非常感谢。 最佳答案 你可以看看WindowsMultiPointMouseSoftwareDevelopmentKit1.5.1WindowsMultiPointMouseSoftwareDevelopmentKit(SDK)isadevelopmentframeworkthatallowsdeveloperstobuildapplicationsthatenablemultipleindivi