WPF 打开第三方程序并让程序窗口置顶

需要用到几个Win32函数:

FindWindow

GetWindowRect

SetWindowPos

//获取第三方程序窗口句柄
IntPtr hwnd = (IntPtr)Win32.FindWindow(null, "第三方程序窗口标题");

//获取窗口的位置和大小
Win32.GetWindowRect(hwnd, out rect);

//设置窗口位置,第二个参数的意思是置顶,最后一个参数的意思是不可改变大小
Win32.SetWindowPos(hwnd, -1, rect.Left, rect.Top, rect.Right - rect.Left, rect.Bottom - rect.Top, 1);

获取窗口标题,可以用 VS 自带的 Spy++ 工具,选中窗口后,确定,查看属性,就可以看到“窗口标题”。

时间: 2024-08-26 16:18:52

WPF 打开第三方程序并让程序窗口置顶的相关文章

QT窗口置顶/真透明/背景模糊/非矩形/跳过任务栏分页器/无边框/无焦点点击/焦点穿透

qt 窗口置顶/真透明/背景模糊/非矩形/跳过任务栏分页器/无边框/无焦点点击/焦点穿透 窗口置顶qt 里是 setWindowFlags(Qt::WindowStaysOnTopHint)kde 里是 KWindowSystem::setState(winId(), NET::KeepAbove)这样的置顶窗口不会处于全屏窗口的上方,如果需要真正的置顶,setWindowFlags(Qt::X11BypassWindowManagerHint) 可无视这个规则,但这样不会出现任务栏等,kimt

win应用只允许单个实例运行,并将已运行实例窗口置顶

关键词:windows,c++,桌面应用,单个实例,窗口置顶 目标:1.判断本程序是否已有一个实例在运行.2.若有,则激活已在运行的实例(将其窗口置顶),并退出当前运行. 1.使用semaphore来检测是否已有实例在运行(也可以用mutex,文件等其他方式) HANDLE g_hSingleSema = ::CreateSemaphore(NULL, 1, 1, _T("single_myapp_sema")); if (g_hSingleSema && ERROR_

菜单复选及窗口置顶

void CKLKKDlg::OnTop() { // TODO: 在此添加命令处理程序代码 UINT i=GetMenu()->GetMenuState(ID_TOP,MF_CHECKED);//判断选中状态 if (i==MF_CHECKED) { GetMenu()->CheckMenuItem(ID_TOP,MF_UNCHECKED);//取消选择 SetWindowPos(&wndNoTopMost,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE);//窗口不置顶

ahk之路:利用ahk在window7下实现窗口置顶

操作系统:win7 64位 ahk版本:autohotkey_L1.1.24.03 今天安装了AutoHotkey_1.1.24.03.SciTE.PuloversMacroCreator,重新开始我的ahk之路. 先写了一个一直想在windows下实现的功能--窗口置顶,在linux下用习惯了这个功能,还真是离不开了.代码很简单: 1 #t:: 2 WinSet AlwaysOnTop,On,A 3 return 4 5 ^#t:: 6 WinSet AlwaysOnTop,Off,A 7 r

vc 使窗口置顶 在最前面

bool SetWindowTop(CWnd* pWnd){ if(!pWnd) {   return false; } if(pWnd->GetExStyle()&WS_EX_TOPMOST) {   return true; } else {   int i= pWnd->SetWindowPos(&CWnd::wndTopMost,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE);   if (i==0)    return false;   else   

WPF实现只打开一个窗口,并且重复打开时已经打开的窗口置顶

内容来自:https://codereview.stackexchange.com/questions/20871/single-instance-wpf-application 第一步:添加System.RunTime.Remoting引用 第二步:新建一个类class1.cs(按自己想法命名) using System; using System.Collections; using System.Collections.Generic; using System.ComponentMode

窗口置顶方法

CWindow::SetWindowPos BOOL SetWindowPos( HWND hWndInsertAfter, int x, int y, int cx, int cy, UINT nFlags ); BOOL SetWindowPos( HWND hWndInsertAfter, LPCRECT lpRect, UINT nFlags ); 1 BOOL CXXX::OnInitDialog() 2 { 3 CRect rect; 4 GetWindowRect(&rect);

窗口置顶

hwnd = win32gui.FindWindow('','***') if(hwnd): win32gui.EnableWindow(hwnd,True)#这句关键 win32gui.SetForegroundWindow(hwnd)

TopWnd一键置顶窗口的实现,分享源码

TopWnd为一款精小实用的绿色软件,可以置顶大部分的窗口,一键置顶,一键取消! 贴上下载地址: 我一直都在实用这个小工具,今日好奇,决定一探其内部究竟如何实现. 网上搜索一番,没有找到这个小工具的源码. 无奈只好一步步的自己去实现它. 最终用MFC+全局钩子成功模仿了一个相差无几的程序. 准备工作 visual studio 2012 建MFC工程 拖几个控件 参考文章:http://blog.csdn.net/friendan/article/details/12168273 全局钩子 源码