请教一下C#进程的问题

你说什么我听不见啊 2017-01-12 03:18:48
本人做了个窗体然后让他form隐藏,taskbar也隐藏了,那么我如何他能够过句柄进程来重新让他的form显示呢...
...全文
192 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
llsus 2017-01-13
  • 打赏
  • 举报
回复
FindwindowEX返回一个句柄,然后作为ShowWindows的参数,就可以显示窗口了 关于这两个API,自己百度一下,多的是。
  • 打赏
  • 举报
回复
1111111
  • 打赏
  • 举报
回复
谢谢两位答复,版主大大...我根据findwindow得到的是句柄啊,还是不明白怎么用,希望版主大大指点我下
stherix 2017-01-12
  • 打赏
  • 举报
回复
winform的话 可以遍历所有系统窗口 根据你那个窗口的类名或者标题找到那个窗口并显示
exception92 2017-01-12
  • 打赏
  • 举报
回复
引用 2 楼 a981583536 的回复:
谢谢,我是通过showwindow的方式打开的但是现在的问题是我进程里面有个窗口隐藏了,我showwindow只能打开那个隐藏的进程但是隐藏的窗口打不开,请问下有什么方法能打开他吗
获取应用程序打开的Forms,根据Name 找个找个Form,让它处于Active状态
  • 打赏
  • 举报
回复
谢谢,我是通过showwindow的方式打开的但是现在的问题是我进程里面有个窗口隐藏了,我showwindow只能打开那个隐藏的进程但是隐藏的窗口打不开,请问下有什么方法能打开他吗
exception92 2017-01-12
  • 打赏
  • 举报
回复

        [DllImport("user32.dll")]
        private static extern bool SetForegroundWindow(IntPtr hWnd);
        [DllImport("user32.dll")]
        private static extern bool ShowWindowAsync(IntPtr hWnd, int nCmdShow);
        [DllImport("user32.dll")]
        private static extern bool IsIconic(IntPtr hWnd);
        private const int SW_RESTORE = 9;
        /// <summary>
        /// 激活已打开窗口
        /// </summary>
        public static void RaiseOtherProcess()
        {
            Process proc = Process.GetCurrentProcess();
            foreach (Process otherProc in
                Process.GetProcessesByName(Process.GetCurrentProcess().ProcessName))
            {
                if (proc.Id != otherProc.Id)
                {
                    IntPtr hWnd = otherProc.MainWindowHandle;
                    if (IsIconic(hWnd))
                    {
                        ShowWindowAsync(hWnd, 9);
                    }
                    SetForegroundWindow(hWnd);
                    break;
                }
            }
        }

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧