程序控制代碼HANDLE獲得程序主視窗的控制代碼HWND
一個程序可以擁有很多主視窗,也可以不擁有主視窗,所以這樣的函式是不存在的,所幸的是,相反的函式是有的。所以我們可以呼叫EnumWindows來判斷所有的視窗是否屬於這個程序。
typedef struct tagWNDINFO
{
DWORD dwProcessId;
HWND hWnd;
} WNDINFO, *LPWNDINFO;
BOOL CALLBACK YourEnumProc(HWND hWnd,LPARAM lParam)
{
DWORD dwProcessId;
GetWindowThreadProcessId(hWnd, &dwProcessId);
LPWNDINFO pInfo = (LPWNDINFO)lParam;
if(dwProcessId == pInfo-> dwProcessId)
{
pInfo-> hWnd = hWnd; return FALSE;
}
return TRUE;
}
HWND GetProcessMainWnd(DWORD dwProcessId)
{
WNDINFO wi;
wi.dwProcessId = dwProcessId;
wi.hWnd = NULL;
EnumWindows(YourEnumProc,(LPARAM)&wi);
}
如果這個程序沒有視窗,函式返回NULL
只能列舉,別無它法 因為一個程序中,其實是沒有“主視窗”這個概念的,任何由它建立的視窗都有可能是主視窗,也都可能不是主視窗
相關推薦
程序控制代碼HANDLE獲得程序主視窗的控制代碼HWND
一個程序可以擁有很多主視窗,也可以不擁有主視窗,所以這樣的函式是不存在的,所幸的是,相反的函式是有的。所以我們可以呼叫EnumWindows來判斷所有的視窗是否屬於這個程序。 typedef struct tagWNDINFO { DWORD dwProc
根據程序id獲取主視窗控制代碼
struct ProcessWindowData { HWND hWnd; unsigned long lProcessId; }; BOOL CALLBACK EnumWindowCallback(HWND hWnd, LPARAM lParam) { ProcessWindowData&
C# 根據程序獲取程式主視窗控制代碼(包括最小化和隱藏程式)
namespace Applications.UI { class CurrentProcess { private static Hashtable processWnd = null; public del
獲得MessageBox的視窗控制代碼和其所屬的視窗類
.386 .model flat,stdcall option casemap:none include windows.incinclude kernel32.incinclude user32.incincludelib kernel32.libinclud
如何通過視窗控制代碼來獲得一個程式視窗的大小
首先通過FindWindow函式取得視窗控制代碼,當然也可以用GetForegroundWindow()函式取得自己的程式的控制代碼。RECT rctA; //定義一個RECT結構體,儲存視窗的長寬高HWND lhwnd=::FindWindow(NULL,L"微信");
spy++只能讀取主視窗控制代碼而無法讀取到子控制元件控制代碼的原因
看完DIRECTUI簡介就明白了: DirectUI意為直接在父視窗上繪圖(Paint on parent dc directly)。即子視窗不以視窗控制代碼的形式建立(windowless),只是邏
Qt獲取控制元件的大小,以及主視窗大小為什麼一樣大小
MainWindow::MainWindow(QWidget *parent) : QWidget(parent) { QPushButton *button = new QPushButton(tr("abc")); HelloWorld *m
C++根據程序獲取主視窗的控制代碼
原帖網址:http://www.cnblogs.com/ylhome/archive/0001/01/01/1529681.html // processenum.cpp : Defines the entry point for the console applica
用C#呼叫Windows API和其它程序通訊及C# 獲得另外一程式 控制代碼 後控制該程式 控制其透明 窗體大小
作者:邊城浪子◎2005-01-16 關鍵字: C#,API,FindWindow,FindWindowEx,SendMessage,程序,登錄檔 設計初衷:公司為了便於網路管理,使用了IEEE 802.1X的網路訪問控制,這樣每次開機需要輸入兩次登入密碼,於是我就研究了
在DLL中獲取主程序視窗控制代碼
有的時候難免需要在DLL中獲取主程序的視窗控制代碼,比如在DLL注入的時候等等。那麼如何在DLL中獲取主程序的視窗控制代碼呢?可以通過EnumWindows來實現。先通過GetCurrentProcessId獲取程序的PID,然後在EnumWindows中呼叫GetWind
根據程序ID 獲取視窗控制代碼
using namespace System;using namespace System::Diagnostics;using namespace System::ComponentModel; Process *m_pCurProcess = Process::GetProcessById(
AutoIt3 使用程序名獲取視窗控制代碼
背景 需要用AutoIt3控制QQ音樂播放器,首先要獲取QQ音樂的視窗控制代碼 問題 WinGetHandle方法不能滿足要求 QQ音樂的Title會根據當前播放的歌曲動態改變
mfc 根據視窗控制代碼(HWND)殺死程序
先列舉桌面所有的視窗的標題或者類名。根據類名或者標題得知該視窗的控制代碼(HWND)。然後再殺死程序。看程式碼: BOOL bTerminateProcess = FALSE; HWND hwndE
[Delphi]如何通過程序控制代碼判斷該程序是否已退出?
GetExitCodeProcess 看似可以,但是仔細看MSDN,有這麼一句話:“Warning If a process happens to return STILL_ACTIVE (259) as an error code, applications th
根據視窗控制代碼來獲取程序ID
[DllImport("User32.dll", CharSet = CharSet.Auto)] public static extern int GetWindowThreadProcessId(IntPtr hwnd, out int ID
轉載----編寫高質量代碼:改善Java程序的151個建議(第1章:JAVA開發中通用的方法和準則___建議1~5)
ase 重載方法 name 原理 .get tin stat eas 容易 閱讀目錄 建議1:不要在常量和變量中出現易混淆的字母 建議2:莫讓常量蛻變成變量 建議3:三元操作符的類型務必一致 建議4:避免帶有變長參數的方法重載 建議5:別讓null值和空值威
轉載---編寫高質量代碼:改善Java程序的151個建議(第2章:基本類型___建議26~30)
cli math mem 時間 三次 計算 一個 name pub 閱讀目錄 建議26:提防包裝類型的null值 建議27:謹慎包裝類型的大小比較 建議28:優先使用整型池 建議29:優先選擇基本類型 建議30:不要隨便設置隨機種子 回到頂部 建議26:提防包裝類
轉載---編寫高質量代碼:改善Java程序的151個建議(第3章:類、對象及方法___建議47~51)
閱讀 aer 集中 記事本 哈希算法 讀者 堆內存 ref 類型判斷 閱讀目錄 建議47:在equals中使用getClass進行類型判斷 建議48:覆寫equals方法必須覆寫hashCode方法 建議49:推薦覆寫toString方法 建議50:使用package
轉載---編寫高質量代碼:改善Java程序的151個建議(第3章:類、對象及方法___建議41~46)
equals 業務 父親 face 使用 訪問 his () 而是 閱讀目錄 建議41:讓多重繼承成為現實 建議42:讓工具類不可實例化 建議43:避免對象的淺拷貝 建議44:推薦使用序列化對象的拷貝 建議45:覆寫equals方法時不要識別不出自己 建議46:equ
轉載--編寫高質量代碼:改善Java程序的151個建議(第5章:數組和集合___建議65~69)
ceo next foreach遍歷 通過 當前 prev 支持 變量 信息 閱讀目錄 建議65:避開基本類型數組轉換列表陷阱 建議66:asList方法產生的List的對象不可更改 建議67:不同的列表選擇不同的遍歷算法 建議68:頻繁插入和刪除時使用LinkLis