C# Process打开程序并移动窗口到指定位置
process.start只是按指定的参数来运行一个程序,而这个程序自己运行起来是什么样子的就不是Process所能处理的了,不过当程序运行起来后倒是可以通过Process的MainWindowHandle来得到运行程序的主窗口的名柄.而通过这个句柄利用API函数MoveWindow来移动程序的主窗口.
[DllImportAttribute("user32.dll", EntryPoint = "MoveWindow")]
public static extern bool MoveWindow(System.IntPtr hWnd, int X, int Y, int nWidth, int nHeight, bool bRepaint);
ProcessStartInfo psi = new ProcessStartInfo(@"D:\EXE\FileControl.exe");
p = Process.Start(psi);
Thread.Sleep();//让程序停一会
MoveWindow(p.MainWindowHandle, , , , , true);
PS:测试了很久,发现直接在程序启动后就去执行MoveWindow函数,始终无法成功,最后想到一点会不会是窗口句柄还未生成,就让程序停了一会再跑 Thread.Sleep(100) 还真就成功了,提醒朋友们在使用时记得加上这句,或者还有其他机制我没发现的,也请高手帮忙指点一二,因为可能这种方法不一定能适应所有程序窗口。
C# Process打开程序并移动窗口到指定位置的更多相关文章
- Qt 关于图片打开,另存为,保存到指定位置操作
Qt 关于图片打开,另存为,保存到指定位置操作(转载) 在头文件mainwindow.h中先声明以下类: 1 #include <QImage> 2 #include <QPixma ...
- 微信小程序:scroll滑到指定位置
概述 这是我开发微信小程序遇到的坑中的一个,专门记录下来,供以后开发时参考,相信对其他人也有用. scroll滑到指定位置,有两种解决方案,一种是用scroll-view标签,另一种是用wx.page ...
- [微信小程序]计算自己手机到指定位置的距离
目的: 根据目的地的坐标计算自己手机的位置离目的地的距离的 核心思路: 后续操作必须等所有异步请求都返回了才能继续 使用 const qqmap = require("../../utils ...
- C# 将窗口移动到指定位置
private void button1_Click(object sender, EventArgs e) { Frm f = new Frm(); f.StartPosition = FormSt ...
- IIS7.0中Process打开cmd程序出现问题
本人在VS中用Process打开cmd程序,并传入参数,转换图片,运行成功! 但是放入IIS7.0中,Process打不开cmd程序,程序直接运行过去,无结果,无报错! 解决方案: 将IIS里面你程序 ...
- Mac小技巧:快速查看指定应用程序的所有窗口
我们知道在Mac中快速在系统所有程序中切换得快捷键为: cmd + tab 不过有时我们需要快速查看某一个程序的所有窗口,那又该如何呢? 以下方法在MacOS 10.12中测试成功! Mac默认该功能 ...
- 使用VBS打开程序和关闭程序
下面这个是先执行程序后,然后再结束程序. Dim Wsh Set Wsh = WScript.CreateObject("WScript.Shell") '下行是设置延时启动时间 ...
- .bat 打开程序
为什么要用.bat打开程序. 因为一个一个难得点 怎么做 百度的,start 程序路径\程序 改进 点击bat,不显示dos窗口. 新建.vbs文件 Set shell = Wscript.creat ...
- WPF 一个空的 WPF 程序有多少个窗口
原文:WPF 一个空的 WPF 程序有多少个窗口 好多小伙伴说 WPF 的程序有五个窗口,但是我尝试使用了 EnumThreadWindows 去获取的时候居然拿到了 10 多个窗口 在 WPF 内部 ...
随机推荐
- 一些android系统参数的获取
//获取网络类型 2G/3G/WIFI public String getNetworkType(){ String mNetWorkType = ""; Connectivity ...
- 在Spring Data JPA 中使用Update Query更新实体类
对于 Spring Data JPA 使用的时间不长,只有两年时间.但是踩过坑的却不少. 使用下列代码 @Modifying @Query("update User u set u.firs ...
- Android_程序结构分析
一.Android程序运行过程 二.Android项目结构
- Eclipse启动tomcat时报错:Multiple Contexts have a path of "/xxx"
今天使用Eclipse启动tomcat部署项目时,遇到一个奇怪的错误: Could not publish server configuration for Tomcat v6.0 Server at ...
- 生物信息 perl 脚本实战
索引 1.统计fasta.fa和fastq文件的长度,统计fastq的reads个数,单个reads长度,reads总长度:统计fasta文件中contig的个数,列出名称,单条的长度,以及总长度. ...
- wifi adb 调试手机
首先手机,PC都连上WIFI, 如果可以用USB操作,在PC端,输入ping 手机的ip 地址,看看是否成功, 在PC端输入下面命令adb tcpip 5555adb connect 192.168. ...
- unity3d模型制作规范
1. 单位,比例统一 在建模型前先设置好单位,在同一场景中会用到的模型的单位设置必须一样,模型与模型之间的比例要正确,和程序的导入单位一致,即便到程序需要缩放也可以统一调整缩放比例.统一单位为米. 2 ...
- 在ubuntu下真机调试android程序出现设备没有访问权限
今天把android的开发环境从windows平台切换到了ubuntu上. java jdk android-adt android-ndk都下好,环境变量都配好之后, 在调试程序的时候,出现设备没有 ...
- linux笔记:linux常用命令-压缩解压命令
压缩解压命令:gzip(压缩文件,不保留原文件.这个命令不能压缩目录) 压缩解压命令:gunzip(解压.gz的压缩文件) 压缩解压命令:tar(打包压缩目录或者解压压缩文件.打包的意思是把目录打包成 ...
- C++ 如何重复利用一个内存地址块
#include<iostream> using namespace std; ; }; int main(int argv ,char * args[]) { double *p1,*p ...