2012-11-07 59 views
2

我記得在VB6我能夠獲得當前正在運行的軟件的一種形式的句柄,並使用某些API函數從外部更改它。 是否可以使用C#?怎麼樣?問題是這個軟件是用不同的語言。我想把它改成英文。更改贏取應用程序標籤和文本

+0

你搜索計算器?簡單的搜索產生了很多類似的問題:例如http://stackoverflow.com/questions/5822026/get-wpf-window-by-hwnd – Michael

+0

這是對於WPF,雖然它看起來不像這裏給出的答案 –

回答

2

嘗試使用FindWindowSetWindowText從Win32 API的:

FindWindow C#簽名:

[DllImport("user32.dll", SetLastError = true)] 
static extern IntPtr FindWindow(string lpClassName, string lpWindowName); 

SetWindowText C#簽名:

[DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)] 
public static extern bool SetWindowText(IntPtr hwnd, String lpString); 

和樣品的COD:

SetWindowText(Process.GetCurrentProcess().MainWindowHandle, "Hello W"); 
+0

很好。這就是我正在尋找的。 –

+0

歡迎您;) – Ria

1

1)的WinForms存在控制類中的「處理」屬性

2)(所有控件和Form類從它(MSDN article派生)在WPF沒有HWND手柄外露,但你可以得到它通過使用WindowInteropHelper類。
你可以這樣說:

 WindowInteropHelper wih = new WindowInteropHelper(YourWindow); 
     IntPtr hwndHandle = wih.Handle;