C# 从文本值指定窗口句柄

C# 从文本值指定窗口句柄,c#,winforms,C#,Winforms,让一个c#程序隐藏另一个正在运行的程序的窗口。 逻辑是 foreach (Process proc in Process.GetProcesses()) { if (proc.MainWindowTitle.StartsWith("Some_title")) { handle = proc.MainWindowHandle; }

让一个c#程序隐藏另一个正在运行的程序的窗口。 逻辑是

foreach (Process proc in Process.GetProcesses())
            {
                if (proc.MainWindowTitle.StartsWith("Some_title"))
                {
                    handle = proc.MainWindowHandle;
             } 
            }...
...
SetWindowPos(handle, IntPtr.Zero, 0, 0, 0, 0, 0x0001 | 0x0002 | 0x0004 | 0x0010 | 0x0080);
...
//later to unhide
 SetWindowPos(handle, IntPtr.Zero, 0, 0, 0, 0, 0x0001 | 0x0002 | 0x0004 | 0x0040);
现在,如果我在取消隐藏窗口之前终止程序,我将丢失设置为隐藏的窗口的句柄。再次遍历进程列表将无法再次获取隐藏窗口的句柄,因为(可能)隐藏窗口不再是该进程的主窗口。[它是一个具有多个窗口的聊天客户端]

您能想到什么方法,在程序调用之间将窗口句柄保存到文件中,并在以后取消隐藏

我已经尝试过了,但是不能将文本分配回IntPtr类型以用作句柄

int literal = 10;
IntPtr handle = new IntPtr(literal);
不能满足你的需要吗