我记得VB6
我能够获得当前正在运行的软件形式的句柄,并使用一些 API 函数从外部对其进行更改。可以用c#做吗?如何?问题是该软件使用不同的语言。我想把其中的一部分改成英文。
问问题
1713 次
2 回答
2
尝试使用FindWindow
和SetWindowText
来自 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);
和样本鳕鱼:
SetWindowText(Process.GetCurrentProcess().MainWindowHandle, "Hello W");
于 2012-11-07T09:07:00.353 回答
1
1) 在 WinForms 中,Control 类中有一个“Handle”属性(所有控件和 Form 类都派生自它(MSDN 文章)
2)在 WPF 中没有暴露 HWND 句柄,但您可以使用WindowInteropHelper类来获取它。
你可以像这样得到它:
WindowInteropHelper wih = new WindowInteropHelper(YourWindow);
IntPtr hwndHandle = wih.Handle;
于 2012-11-07T08:47:42.773 回答