博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#操作移动其他程序窗口
阅读量:5347 次
发布时间:2019-06-15

本文共 926 字,大约阅读时间需要 3 分钟。

在做项目时候,曾经遇到一个问题,就是用C#的WinForm,来打开一个使用C++编写的软件,并控制打开窗体位置和大小。

在这里使用了Win32 API来做的。可以使用C#根据窗体的路径,启动一个进程,然后使用Win32 API控制打开窗口的位置和大小。

主要代码如下:

   public class A

{

        //调用Win32 API

         [System.Runtime.InteropServices.DllImportAttribute("user32.dll", EntryPoint = "MoveWindow")]
         public static extern bool MoveWindow(System.IntPtr hWnd, int X, int Y, int nWidth, int nHeight, bool bRepaint);

        //打开窗体方法,fileName是C++的窗体名称,包含路径

        private void OpenAndSetWindow(String fileName)

        {
            Process p = new Process();//新建进程
            p.StartInfo.FileName = fileName;//设置进程名字
            p.StartInfo.CreateNoWindow = true;
            p.StartInfo.WindowStyle = ProcessWindowStyle.Normal;
            p.Start();
            MoveWindow(p.MainWindowHandle, 200, 300, 500, 400, true);

           //p.MainWindowHandle是你要移动的窗口的句柄;200,300是移动后窗口左上角的横纵坐标;500,400是移动后窗口的宽度和高度;true表示移动后的窗口是需要重画

      }

}

如果打开IE网页,可以成下面语句一句

 p.StartInfo.FileName = "iexplore";

 p.StartInfo.Arguments = "网页

转载于:https://www.cnblogs.com/liujp/archive/2012/07/06/2578952.html

你可能感兴趣的文章
Linux常用命令(二十四)
查看>>
4种java定时器
查看>>
Vue.js 教程
查看>>
自习(二)
查看>>
linux 设置网卡
查看>>
C#中datatable导出excel(三种方法)
查看>>
hive 语法 case when 语法
查看>>
归并排序
查看>>
Ajax:js读取txt内容(json格式内容)
查看>>
Task 7 买书最低价格问题
查看>>
Selenium3+python自动化007-警告框
查看>>
html5 相同形状的图形进行循环
查看>>
springboot中文官方文档
查看>>
lamdba表达式
查看>>
ThreadLocal实现线程范围内共享
查看>>
多校HDU5723 最小生成树+dfs回溯
查看>>
ASP.NET MVC分页实现之改进版-增加同一个视图可设置多个分页
查看>>
关于ASP.NET MVC开发设计中出现的问题与解决方案汇总 【持续更新】
查看>>
关于Entity Framework中的Attached报错的完美解决方案终极版
查看>>
Selenium之Web页面滚动条滚操作
查看>>