Winfrom根据IP地址来弹出任务栏上的进程窗口

要用到u32的dll来打开任务栏的窗体,通过窗口句柄来弹窗

      [DllImport("user32.dll", EntryPoint = "ShowWindow", SetLastError = true)]
      static extern bool ShowWindow(IntPtr hWnd, uint nCmdShow);
      
    [DllImport("user32.dll", EntryPoint = "SetForegroundWindow")]
      static extern bool SetForegroundWindow(IntPtr hWnd);

  //通过Process来获取到所有在运行的进程
 Process[]  MyProcesses = Process.GetProcesses();
 foreach (Process MyProcess in MyProcesses)  //循环遍历获取到的每一个进程资源
                {
                    //var version = MyProcess.MainModule.FileVersionInfo.FileVersion;
                    foreach (var item in _ip)  
                    {

                        Match mat = Regex.Match(MyProcess.MainWindowTitle, @"[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}");      //通过正则表达式来获取字符串中的ip地址
                        if (mat.Value != "")
                        {
                            if (mat.Value.Equals(item)) //对应自己的ip
                            {
                                try
                                {
                                    var sss = MyProcess.MainWindowHandle;   //获取窗口句柄
                                    ShowWindow(sss, 1);      //弹窗显示
                                    SetForegroundWindow(sss);
                                }
                                catch (Exception)
                                {
                                    continue;
                                }
                            }
                        }
                    }
                }
WinForms中弹cmd窗口并执行命令,可以通过使用`Process`类实现。下面是一个简单的示例: 首先,在Form中添加一个按钮和一个TextBox控件,Button用于触发弹cmd窗口执行命令的操作,TextBox用于显示cmd窗口的输结果。 然后,在Button的Click事件中添加以下代码: ```csharp private void button1_Click(object sender, EventArgs e) { // 创建一个进程对象 Process process = new Process(); // 设置进程执行的命令行程序(cmd.exe) process.StartInfo.FileName = "cmd.exe"; // 启用进程的Shell扩展 process.StartInfo.UseShellExecute = false; // 指定进程流重定向 process.StartInfo.RedirectStandardOutput = true; // 禁用进程显示窗口 process.StartInfo.CreateNoWindow = true; // 启动进程 process.Start(); // 向cmd窗口发送命令 process.StandardInput.WriteLine("dir"); // 替换为你需要执行的命令 // 关闭输入流,表示命令已经发送完毕 process.StandardInput.Close(); // 等待进程执行完毕 process.WaitForExit(); // 读取cmd窗口的输结果 string output = process.StandardOutput.ReadToEnd(); // 在TextBox中显示输结果 textBox1.Text = output; } ``` 在这个示例中,我们创建了一个Process对象,设置了进程的属性,包括要执行的命令行程序、是否启用Shell扩展、是否重定向输流等。 然后启动进程并向cmd窗口发送命令,并关闭输入流表示命令发送完成。 最后,等待进程执行完毕,读取cmd窗口的输结果并显示在TextBox中。你可以根据实际需求修改和扩展这个示例。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值