1. 程式人生 > >mfc獲取其它程式視窗控制代碼

mfc獲取其它程式視窗控制代碼

const char *getWindowTitle(HWND hWnd){
	char WindowTitle[1000]={0};      
    ::GetWindowText(hWnd,WindowTitle,1000);  
	 std::string *title = new std::string(WindowTitle);
	 return (*title).c_str();
}
bool equal(const char *a, const char *b){
	return strcmp(a, b) == 0;
}
void show(const char *message){
	AfxMessageBox(message);
}
  
//EnumChildWindows回撥函式,hwnd為指定的父視窗  
BOOL CALLBACK EnumChildWindowsProc(HWND hWnd,LPARAM lParam)  
{  
    char WindowTitle[1000]={0};      
    ::GetWindowText(hWnd,WindowTitle,1000);  
    printf("%s\n",WindowTitle);  

	if(equal( getWindowTitle(GetParent(hWnd)), getWindowTitle(hWnd))){
		//show(WindowTitle);
	}
	
    return true;     
}  
  
//EnumWindows回撥函式,hwnd為發現的頂層視窗  
BOOL CALLBACK EnumWindowsProc(HWND hWnd,LPARAM lParam)  
{  
    if (GetParent(hWnd)==NULL && IsWindowVisible(hWnd) )  //判斷是否頂層視窗並且可見  
    {  
        const char *WindowTitle = getWindowTitle (hWnd); 
		
        EnumChildWindows(hWnd,EnumChildWindowsProc,NULL); //獲取父視窗的所有子視窗  
		if(equal(WindowTitle, "waw.exe")){
			show(WindowTitle);
			return false;
		}
    }  
      
    return true;     
}  

void CwawWithLogDlg::OnBnClickedOk()
{
// TODO: 在此新增控制元件通知處理程式程式碼
//CDialogEx::OnOK();
   EnumWindows(EnumWindowsProc ,NULL );  
}

相關推薦

mfc獲取其它程式視窗控制

const char *getWindowTitle(HWND hWnd){ char WindowTitle[1000]={0}; ::GetWindowText(hWnd,WindowTitle,1000); std::string *ti

C#獲取當前活動視窗控制

c# 獲取當前活動視窗控制代碼,獲取視窗大小及位置 2018年04月26日 13:48:21 漂泊_人生 閱讀數:1889   需呼

C# 影象處理: 獲取當前活動視窗控制,獲取視窗大小及位置

C# 影象處理: 獲取當前活動視窗控制代碼,獲取視窗大小及位置 需呼叫API函式 需在開頭引入名稱空間 using System.Runtime.InteropServices; 獲取當前視窗控制代碼:GetForegroundWindow() [DllImport("us

在DLL中獲取主程序視窗控制

有的時候難免需要在DLL中獲取主程序的視窗控制代碼,比如在DLL注入的時候等等。那麼如何在DLL中獲取主程序的視窗控制代碼呢?可以通過EnumWindows來實現。先通過GetCurrentProcessId獲取程序的PID,然後在EnumWindows中呼叫GetWind

MFC通過對話方塊視窗控制獲得對話方塊物件指標

MFC在很多的對話方塊操作中,我們經常要用到在一個對話方塊中呼叫另一個對話方塊的函式或變數.可以用如下方法來解決. HWND hWnd=::FindWindow(NULL,_T("視窗名"));      //得到對話方塊的控制代碼C***Dialog* pWnd= (C*

MFC 獲取當前視窗控制,或者父子視窗控制

父子視窗 在子視窗中,需要用到父視窗的控制代碼: AfxGetMainWnd()->m_hWnd 注:在父視窗中,也可以這麼用來呼叫自己視窗的控制代碼 在子視窗中,需要用到自己視窗的控制代碼 ChildDlg *pChildDlg ; pChildDlg->m_h

MFC獲取視窗控制的方法

AfxGetMainWnd AfxGetMainWnd獲取自身視窗控制代碼 HWND hWnd = AfxGetMainWnd()->m_hWnd; GetTopWindow 函式功能:該函式檢查與特定父視窗相聯的子視窗z序(Z序:垂直螢幕的方向,即疊放次序),並返回

VS2013的MFC獲取程式控制

在VC6中,我可以右擊工具欄的空白處,勾選Controls以顯示控制元件(編輯框、按鈕、等),VS2013要怎麼做呢? 答:在VS2013中,你應該View->Toolbox以顯示這些控制元件,或者Ctrl+Alt+X快捷鍵調出來它。 spy++怎麼用? 答:先Too

C# 根據程序獲取程式視窗控制(包括最小化和隱藏程式

namespace Applications.UI {     class CurrentProcess     {             private static Hashtable processWnd = null;             public del

MFC視窗控制控制元件控制獲取

1. 程式主視窗控制代碼的獲得     CWnd* p = AfxGetMainWnd();//函式AfxGetMainWnd()獲得主對話方塊的指標p     HWND h = p->m_hW

MFC獲取其他類、視窗控制等相關函式

轉載自http://blog.csdn.net/xiaoyun8822/article/details/7939605 一般我們使用的框架是VC提供的Wizard生成的MFC App Wizard(exe)框架,無論是多文件還是單文件,都存在指標和控制代碼獲取和操作問

WPF 視窗控制獲取和設定

WPF 視窗控制代碼設定和獲取 1、控制代碼類 WHwnd.cs public class WHwnd { /// <summary> /// 主窗體控制代碼 /// </summar

按鍵精靈 -獲取視窗控制

MessageBox "視窗右下角座標:" get_window_pos //得到當前最前面的視窗控制代碼-就是把需要的視窗啟用在最前面 Hwnd = Plugin.Window.Foreground() //得到滑鼠指向的視窗控制代碼Hwnd = Plugin.Window.Mo

獲取ArcMap視窗控制,通過WinAPI獲取工作空間中點選要素的系統桌面座標

這裡用了個“桌面座標”,是希望區分一下ArcGis的“螢幕座標”(與之對應的還有一個“地理座標”)。 什麼是“螢幕座標”呢?使用ITool介面的OnMouseDown方法獲取的“x,y”值即是,其原點值在“工作空間”窗體左上角。 什麼是我所稱謂的“工作空間”呢?它是資料編輯區域,用Spy++檢視一下其窗體

GetWindow、GetTopWindow和GetNextWindow(視窗控制獲取!!!)

GetWindow //uCmd 可選值:   GW_HWNDFIRST = 0; {同級別第一個}   GW_HWNDLAST  = 1; {同級別最後一個}   GW_HWNDNEXT  = 2; {同級別下一個}   GW_HWNDPREV  = 3;

VC 各種情況下的視窗控制獲取

AfxGetMainWnd AfxGetMainWnd獲取自身視窗控制代碼 HWND hWnd = AfxGetMainWnd()->m_hWnd; GetTopWindow 函式功能:該函式檢查與特定父視窗相聯的子視窗z序(Z序:垂直螢幕的方向,即疊放

根據程序ID 獲取視窗控制

 using namespace System;using namespace System::Diagnostics;using namespace System::ComponentModel; Process *m_pCurProcess = Process::GetProcessById(

Selenium:多視窗切換(獲取視窗控制handle)

我們在操作網頁的時候,點選有些頁面的連結,會重新開啟一個視窗,我們要在新頁面上操作,就得切換視窗 比如在百度首頁的登入框點選註冊,會重新開啟一個註冊的新頁面,要在新頁面註冊,就得先切進新頁面 那我們怎麼在這兩個視窗之間進行切換呢?每個瀏覽器視窗都有一個唯一的屬性控制代碼(handle)來表示,我們就可

如何通過視窗控制來獲得一個程式視窗的大小

首先通過FindWindow函式取得視窗控制代碼,當然也可以用GetForegroundWindow()函式取得自己的程式的控制代碼。RECT rctA; //定義一個RECT結構體,儲存視窗的長寬高HWND lhwnd=::FindWindow(NULL,L"微信");  

[WinAPI] 獲取視窗控制的幾種方法

1、使用FindWindow函式獲取視窗控制代碼 示例:使用FindWindow函式獲取視窗控制代碼,然後獲得視窗大小,並且移動視窗到指定位置。 我們想獲得酷我音樂盒的視窗控制代碼並移動它,該怎麼辦呢? 首先開啟VC或者VS裡面tool中的SPY++點選查詢視