⑴ 如何截取活動窗口如何截取全屏幕
有以下方法:
一、代替屏幕截圖軟體按下PrintScreen鍵,將會截取全屏幕畫面。用滑鼠點擊「開始→程序→附件→畫圖」,將會打開「畫圖」程序,點擊該窗口中的「編輯→粘貼」菜單,這時會彈出一個「剪貼板中的圖像比點陣圖大,是否擴大點陣圖?」對話框,點擊「是」,就會將該截取的圖片粘貼到其中。再按下Ctrl+S鍵將圖片保存即可。
二、抓取當前活動窗口在使用PrintScreen進行屏幕抓圖時,同時按下Alt鍵,就會只抓取當前活動窗口,然後按上述方法保存即可。
三、截取游戲畫面我們都知道用鍵盤上的PrintScreen鍵可以抓取系統中的桌面圖案,然後在「畫圖」程序或是Photoshop之類的圖像處理軟體中可以「粘貼」出來。
⑵ 如何獲得窗口句柄
有多種方法,
1.通過窗口類名FindWindow
2.通過窗口標題名FindWindow
3.用spy++軟體抓取
4.通過其他條件GetWindow
5.遍歷窗口EnumWindow
⑶ vivo手機小窗口怎麼弄出來
小窗模式開啟方法:
1、探索桌面下,屏幕中間上滑進入全部應用界面,長按應用,拖到屏幕右上角「開啟小窗」四個字上方,即可開啟小窗;
2、在應用界面時,從屏幕左下角(靠近側邊位置)向上滑動進入全部應用界面,長按應用圖標,等待圖標懸浮於應用界面時鬆手,即可開啟小窗;
3、屏幕底部上滑懸停進入卡片式後台,點擊應用名稱右側箭頭,點擊小窗(支持小窗模式的應用才會顯示「小窗」兩字);
4、玩游戲時可以三指上滑,調起畫中畫小窗。
註:經典桌面下的標准桌面風格下僅支持第3種方法,您可在設置--桌面、鎖屏與壁紙--桌面設置--桌面風格中切換為抽屜風格體驗更多方法。
⑷ 如何獲取窗口標題欄的高度和窗口邊框寬度
按Win+R打開運行,輸入regedit回車打開注冊表編輯器;
展開 HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics;
在右側找到CaptionHeight字元串值,它代表窗口標題欄的高度,其值計算方法為:-15*期望高度(像素)。比如,希望窗口標題欄高度為18,那麼其值應該為-15*18=-270;
4
修改完成後注銷重新登錄就可以看到效果。
滾動條寬度對應的注冊表鍵值為ScrollWidth,其計算方法與CaptionHeight相同。
修改前後對比如下圖所示:
⑸ 如何獲得這個窗口的CWnd類或HWND句柄
句柄獲取方法(獲取該窗口的句柄後,即可向該窗口類類發送消息、處理程序):0。獲取所在類窗口的句柄:this->m_hwnd1。主窗口的句柄:無論在主窗口類內,還是子窗口類內,獲取主窗口句柄的方法:AfxGetMainWnd()->m_hWnd,如:::SendMessage(AfxGetMainWnd()->m_hWnd , WM_MY_DOSOME , 0 ,(LPARAM)i);在窗口類中this->m_hWnd或者this->GetSafeHwnd()2。子窗口句柄:用FindWindow,(只要知道子窗口的名字即可)如: ::FindWindow(NULL,WindowsName) 返回找到的窗口的句柄尋找當前窗口是否在運行windowname的程序,該名字為窗口名字,如:CWnd* pWnd=FindWindow(NULL,_T("清芝--支票機"));//GetSafeHwnd函數功能:獲取某個窗口對象(CWnd的派生對象)指針的句柄(HWND)時,最安全的方法是使用GetSafeHwnd()函數。通過下面的例子來看其理由
⑹ c#如何獲得系統所有窗口名稱(包括隱藏窗口)
獲得窗體的句柄可以用GetWindow方法獲得窗體標題用GetWindowText方法,顯示隱藏某個窗體用ShowWindow方法,給你舉個例子
using System.Runtime.InteropServices;
private const int WS_VISIBLE = 268435456;//窗體可見
private const int WS_MINIMIZEBOX = 131072;//有最小化按鈕
private const int WS_MAXIMIZEBOX = 65536;//有最大化按鈕
private const int WS_BORDER = 8388608;//窗體有邊框
private const int GWL_STYLE = (-16);//窗體樣式
private const int GW_HWNDFIRST = 0;
private const int GW_HWNDNEXT = 2;
private const int SW_HIDE = 0;
private const int SW_SHOW = 5;
[DllImport("User32.dll")]
private extern static int GetWindow(int hWnd, int wCmd);
[DllImport("User32.dll")]
private extern static int GetWindowLongA(int hWnd, int wIndx);
[DllImport("user32.dll")]
private static extern bool GetWindowText(int hWnd, StringBuilder title, int maxBufSize);
[DllImport("user32.dll", CharSet = CharSet.Auto)]
private extern static int GetWindowTextLength(IntPtr hWnd);
[DllImport("user32.dll")]
public static extern int ShowWindow(int hwnd, int nCmdShow);
//獲得包含窗體可見、有邊框、有最大化按鈕的窗體的句柄和標題(窗體的屬性出這幾種外還有很多種)
public static List<FromInfo> GetHandleList(int Handle)
{
List<FromInfo> fromInfo = new List<FromInfo>();
int handle = GetWindow(Handle, GW_HWNDFIRST);
while (handle > 0)
{
int IsTask = WS_VISIBLE | WS_BORDER | WS_MAXIMIZEBOX;//窗體可見、有邊框、有最大化按鈕
int lngStyle = GetWindowLongA(handle, GWL_STYLE);
bool TaskWindow = ((lngStyle & IsTask) == IsTask);
if (TaskWindow)
{
int length = GetWindowTextLength(new IntPtr(handle));
StringBuilder stringBuilder = new StringBuilder(2 * length + 1);
GetWindowText(handle, stringBuilder, stringBuilder.Capacity);
string strTitle = stringBuilder.ToString();
if (!string.IsNullOrEmpty(strTitle))
{
fromInfo.Add(new FromInfo(strTitle, handle));
}
else
{
fromInfo.Add(new FromInfo("", handle));
}
}
handle = GetWindow(handle, GW_HWNDNEXT);
}
return fromInfo;
}
//獲得所有窗體的句柄和標題
public static List<FromInfo> GetHandleList(int Handle)
{
List<FromInfo> fromInfo = new List<FromInfo>();
int handle = GetWindow(Handle, GW_HWNDFIRST);
while (handle > 0)
{
int length = GetWindowTextLength(new IntPtr(handle));
StringBuilder stringBuilder = new StringBuilder(2 * length + 1);
GetWindowText(handle, stringBuilder, stringBuilder.Capacity);
string strTitle = stringBuilder.ToString();
if (!string.IsNullOrEmpty(strTitle))
{
fromInfo.Add(new FromInfo(strTitle, handle));
}
else
{
fromInfo.Add(new FromInfo("", handle));
}
handle = GetWindow(handle, GW_HWNDNEXT);
}
return fromInfo;
}
public class FromInfo
{
public FromInfo(string title, int handle)
{
this.title = title;
this.handle = handle;
}
private string title;
private int handle;
public string Title
{
get { return title; }
set { title = value; }
}
public int Handle
{
get { return handle; }
set { handle = value; }
}
}
//獲得窗體句柄和標題
private void button1_Click(object sender, EventArgs e)
{
List<FromInfo> fromInfo = GetHandleList(this.Handle.ToInt32());
}
private void button2_Click(object sender, EventArgs e)
{
//隱藏窗體
ShowWindow(this.Handle.ToInt32(), SW_HIDE);
//顯示窗體
ShowWindow(this.Handle.ToInt32(), SW_SHOW);
}
⑺ MFC中怎樣獲取指定窗口的句柄
句柄獲取方法(獲取該窗口的句柄後,即可向該窗口類類發送消息、處理程序):0。獲取所在類窗口的句柄:
this->m_hwnd
1。主窗口的句柄:
無論在主窗口類內,還是子窗口類內,獲取主窗口句柄的方法:
AfxGetMainWnd()->m_hWnd,
如:::SendMessage(AfxGetMainWnd()->m_hWnd,WM_MY_DOSOME,0,(LPARAM)i);
在窗口類中
this->m_hWnd
或者this->GetSafeHwnd()
2。子窗口句柄:用FindWindow,(只要知道子窗口的名字即可)如:
::FindWindow(NULL,WindowsName)
返回找到的窗口的句柄
尋找當前窗口是否在運行windowname的程序,該名字為窗口名字,如:
CWnd*pWnd=FindWindow(NULL,_T("清芝--支票機"));//
GetSafeHwnd
函數功能:獲取某個窗口對象(CWnd的派生對象)指針的句柄(HWND)時,最安全的方法是使用GetSafeHwnd()函數。
通過下面的例子來看其理由:
CWnd*pwnd=FindWindow(「ExploreWClass」,NULL);//希望找到資源管理器
HWNDhwnd=pwnd->m_hwnd;//得到它的HWND
這樣的代碼當開始得到的pwnd為空的時候就會出現一個「Generalprotectionerror」,並關閉應用程序,因為一般不能對一個NULL指針訪問其成員,如果用下面的代碼:
CWnd*pwnd=FindWindow(「ExploreWClass」,NULL);//希望找到資源管理器
HWNDhwnd=pwnd->GetSafeHwnd();//得到它的HWND
就不會出現問題,因為盡管當pwnd是NULL時,GetSafeHwnd仍然可以用,只是返回NULL
3。獲取窗口中控制項的句柄,用GetDlgItem
語法為:GetDlgItem(IDC_COMBO3)->m_hWnd:參數為該控制項的ID,返回值為:CWnd*類型,但它是CWnd類內的函數,因此要先獲取控制項所在窗口的指針,如:
CStringstr(_T("dd"));
::SendMessage(AfxGetMainWnd()->GetDlgItem(IDC_COMBO3)->m_hWnd,WM_SETTEXT,0,(LPARAM)str.GetBuffer(0));
從句柄獲得指針,用FromHandle
語法:CWnd*pWnd=CWnd::FromHandle(hWnd);
獲取窗口句柄(全集)vc&MFC
獲得窗口句柄:
this->m_hwnd
HWNDGetForegroundWindow(VOID);
GetSafehWnd取你程序所在窗口類的句柄
GetActiveWindow取當前活動窗口句柄
AfxGetMainWnd取主窗口句柄
GetForegroundWindow取前台窗口句柄
FindWindow
EnumWindow