WinC编程的乐趣

283次阅读

共计 909 个字符,预计需要花费 3 分钟才能阅读完成。

  • 上代码
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>

// 屏蔽控制台应用程序显示
// #pragma comment(linker, "/SUBSYSTEM:windows /ENTRY:mainCRTStartup")

// 通过窗口名称获取句柄
HWND GetWindowHandleByTitle(char* title)
{return FindWindowA(NULL, title);
}

// 通过窗口类名获取句柄
HWND GetWindowHandleByClassName(char* className)
{return FindWindowA(className, NULL);
}

// 移动窗口的位置
void MoveWindowByPosition(HWND hWnd, int x, int y)
{SetWindowPos(hWnd, NULL, x, y, 0, 0, SWP_NOSIZE | SWP_NOZORDER | SWP_NOACTIVATE);
}

// 主程序入口
int main()
{//HWND hWnd = GetWindowHandleByTitle(" 无标题 - Notepad"); // 窗口名称获取
    HWND hWnd = GetWindowHandleByClassName("WeChatMainWndForPC"); // 窗口类名获取

    if (hWnd != NULL) {
        // 窗口句柄获取成功, 需要进行的操作
        printf(" 获取到窗口句柄:%p\n",hWnd);
        // SendMessage(hWnd, WM_CLOSE, 0, 0); // 关闭窗口消息
        for (size_t i = 0; i < 100; i++)
        {int x = rand() % 200 + 10;
            int y = rand() % 300 - 50;
            MoveWindowByPosition(hWnd, x, y); // 将窗口移动到 (100, 100) 位置
            Sleep(500);
        }

    }
    else {
        // 窗口句柄获取失败
        printf(" 窗口句柄获取失败 ");
    }
    return 0;
}

该程序屏蔽了命令行(Dos)窗口显示,通过 windows 窗口类名获取到运行程序的句柄,拿到句柄之后发送了窗口移动指令。

正文完
 1
Hack V
版权声明:本站原创文章,由 Hack V 于2024-04-08发表,共计909字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
请喝咖啡