Articles of winapi

是否可以使用另一个进程创build的HWND?

我在我的程序中创build窗口,然后将此窗口的HWND发送到另一个应用程序。 在窗口的HDC上绘图是否适用于另一个进程?

改变进度条的颜色32

我试图改变背景和酒吧的颜色在一个赢得32进度栏按以下方式: HWND hwndPB =CreateWindowEx(0, PROGRESS_CLASS, NULL, WS_CHILD | WS_VISIBLE |PBS_SMOOTHREVERSE | PBS_MARQUEE , 20, 50, 275, 20, hwndDlg, NULL,NULL , NULL); SetWindowLongPtr(hwndDlg,GWLP_USERDATA,reinterpret_cast<LONG_PTR>(hwndPB)); SendMessage(hwndPB,(UINT)PBM_SETBKCOLOR,0,RGB(200,200,200)); SendMessage(hwndPB,(UINT) PBM_SETBARCOLOR,0,(LPARAM)RGB(100,100,100)); SendMessage(hwndPB,(UINT) PBM_SETMARQUEE,(WPARAM) TRUE,(LPARAM)50 ); 我猜这是不工作的,因为视觉主题被启用。 任何人都可以build议我做一个方法来完成或禁用视觉样式。 我正在使用VS 2008.另外,它是一个非mfc应用程序。

按进程隐藏多个窗口

我有一个过程,我想隐藏窗口。 如果这个过程只有一个窗口,它会很好用。 但是,如果有提示对话框或提示对话框或另一个子窗口,隐藏方法只隐藏主窗口,而不是对话框… 你能帮我隐藏一个过程的所有窗口吗? 非常感谢 这是我的代码: [DllImport("user32.dll")] private static extern Boolean ShowWindow(IntPtr hWnd, Int32 nCmdShow); public void Show() { ShowWindow(_processHwnd, SwShow); } public void Hide() { Process[] processRunning = Process.GetProcesses(); foreach (Process pr in processRunning) { if (pr.Id == _process.Id) { _processHwnd = pr.MainWindowHandle; } } ShowWindow(_processHwnd, SwHide); }

切换远程应用程序的input语言

是否可以切换input语言的另一个应用程序? 具有应用程序的进程ID,线程ID,窗口句柄等

在调用IContextMenu时如何处理重命名操作?

我使用CMF_CANRENAME调用IContextMenu::QueryContextMenu ,在调用Windows XP上的IContextMenu::InvokeCommand时遇到了处理重命名操作的问题。 我不是一个命名空间的扩展,我不使用DefView / IShellView,但我提供了一个实现IServiceProvider的网站。 在较新版本的Windows上,我查询了一个实现了IFolderView2的服务,并且shell调用了IFolderView2::DoRename ,我可以开始重命名操作。 在Windows XP上,但它查询SID_DefView服务,但我找不到有关如何实现该服务的任何信息。 它(SHELL32!CDefFolderMenu :: _ ProcessRename)要求的接口是{985F64F0-D410-4E02-BE22-DA07F2B5C5E1},我可以在registry中看到这是IDefViewFrame3的IID,但它似乎是无证的! 另一方面IDefViewFrame被logging,但是MSDN所说的唯一的事情是“仅用于它的IUnknownfunction,它没有自己的方法”。 在这种情况下是否有文档处理XP的重命名操作? 我真的不想伪造一个IDefViewFrame3接口,但我能想到的唯一的其他select是看它是否是重命名的动词,只是在TrackPopupMenu后自己处理。

DirectShow示例和基类重新定位

从Windows SDK 8.1开始,示例应该可以从开发人员中心下载,如此处所述。 无论如何,我无法在开发中心findDirectShow基础类。 那些可以下载的地方?

Win32 API来枚举dll导出函数?

我发现类似的问题,但没有答案,我在找什么。 所以在这里: 对于本机Win32 DLL,是否有Win32 API来枚举其导出函数名称?

如何在VB6中执行进一步的代码之前等待shell进程完成

我有一个小型的VB6应用程序,我使用Shell命令来执行程序。 我将程序的输出存储在一个文件中。 然后我读取这个文件,并使用VB6中的msgbox将输出放在屏幕上。 这是我的代码现在看起来像: sCommand = "\evaluate.exe<test.txt " Shell ("cmd.exe /c" & App.Path & sCommand) MsgBox Text2String(App.Path & "\experiments\" & genname & "\freq") 问题是VB程序使用msgbox打印的输出是文件的旧状态。 是否有一些方法来执行VB代码,直到我的shell命令程序完成,以便我得到输出文件的正确状态,而不是以前的状态?

你如何以Windows编程方式resize和移动Windows API的窗口?

你如何以编程方式调整和Windows API的Windows移动? 场景是:我想垂直平铺两个窗口(80%/ 20%的宽度比例)。

任务pipe理器是Windows 10的一个特殊的“总是在最前面”窗口?

如果我的窗口具有“始终在最上面”的扩展样式集,那么我认为它是所有没有“始终在最前面”样式集的窗口的顶部,以及那些具有“总在最前面”样式集的窗口但在我的窗口被激活之前被激活。 为了testing这个function,我打开任务pipe理器窗口 – 将其设置为始终在上面,然后打开我的窗口( myWindow )。 在Windows 7中,我观察预期的行为 – myWindow在任务pipe理器之上。 但是,在Windows 10中,情况并非如此。 任务pipe理器“始终在其他窗口的顶部”,即使这些窗口本身具有“始终在最前面”样式集。 Windows 10中的任务pipe理器有什么特别之处吗? 如果是的话,是否有一些工作将我的窗口放在任务pipe理器的顶部? 我试图简单地使用BringWindowToTop函数,但不起作用。 setWindowPos和HWND_TOP都不会作为hWndInsertAfter参数的值。