在底部设置运行过程

set running process on bottom

本文关键字:过程 运行 设置 底部      更新时间:2023-10-16

我是C 的新手成功。

这是我到目前为止的代码:

#include "stdafx.h"
#include <windows.h>
#include <stdio.h>
#include <string>
#include <iostream>
using namespace std;
void set_to_bg() {
    LPCSTR app_name = "Calculator";
    HWND hWnd = FindWindowA(0, (app_name));
    HWND ProgmanHwnd = FindWindow(_T("Progman"), _T("Program Manager"));
    SetParent(hWnd, ProgmanHwnd);
    SetWindowPos(hWnd, HWND_BOTTOM, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE);
}
int main()
{
    set_to_bg();
    return 0;
}

发生的是"计算器"窗口消失。我正在使用间谍 监视Windows,并且注意到"计算器"是为"程序管理器"的,但没有显示出来。如果省略"SetParent(hWnd, ProgmanHwnd);",则显示"计算器"并将其设置为底部。当我打开一个文件夹或其他应用程序时,它们将重叠"计算器",这是一个很好的结果,但是如果我单击"计算器",则它会丢失其" Onbottom"属性,并与所有打开的所有其他文件夹或应用重叠。

任何想法,代码片段,指导将不胜感激!

shelldll_defview,其中包含桌面图标listView是Progman窗口的孩子,并且覆盖整个桌面,如果您想"粘在桌面,但这是一个黑客,依靠内部外壳详细信息。

HWND_BOTTOM不是属性,它只是告诉 SetWindowPos现在将窗口放在z订单的底部,但不会卡在那里,它仍然是正常的窗口。窗口管理器中有一个内部的"底部"属性,但是您不能在自己的应用程序中使用它,只有Shell桌面图标窗口才能使用此内部样式。

您可以查看Rainlendar和其他开源小工具应用程序,以了解它们是如何做到的,但没有完美的解决方案。您必须考虑"如果两个应用程序执行此情况"。