首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何从WinForms应用程序控制新进程窗口的大小和位置?

从WinForms应用程序控制新进程窗口的大小和位置,可以通过以下方法实现:

  1. 使用ProcessStartInfo类启动新进程

在启动新进程时,可以使用ProcessStartInfo类来设置进程的一些属性,例如窗口大小和位置。以下是一个示例代码:

代码语言:csharp
复制
using System.Diagnostics;

ProcessStartInfo startInfo = new ProcessStartInfo("notepad.exe");
startInfo.WindowStyle = ProcessWindowStyle.Normal;
startInfo.UseShellExecute = true;
startInfo.CreateNoWindow = false;
startInfo.WorkingDirectory = @"C:\";
startInfo.WindowPosition = new Point(100, 100);
startInfo.WindowSize = new Size(800, 600);

Process.Start(startInfo);
  1. 使用SetWindowPos函数调整已有进程的窗口大小和位置

如果需要调整已有进程的窗口大小和位置,可以使用SetWindowPos函数。以下是一个示例代码:

代码语言:csharp
复制
using System.Diagnostics;
using System.Runtime.InteropServices;

[DllImport("user32.dll", SetLastError = true)]
static extern bool SetWindowPos(IntPtr hWnd, IntPtr hWndInsertAfter, int X, int Y, int cx, int cy, uint uFlags);

Process[] processes = Process.GetProcessesByName("notepad");
Process process = processes[0];

IntPtr hWnd = process.MainWindowHandle;
SetWindowPos(hWnd, IntPtr.Zero, 100, 100, 800, 600, 0);

在这个示例中,我们使用Process.GetProcessesByName方法获取名为"notepad"的进程,并获取其主窗口句柄。然后,我们使用SetWindowPos函数调整窗口大小和位置。

需要注意的是,这些方法可能会受到操作系统和安全设置的限制,因此可能需要在特定的环境下进行测试和调整。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

PC端自动化测试(一)

应用程序可访问技术 支持控件访问技术 Win32 API(backend=“win32”) 默认backend MFC,VB6,VCL简单WinForms控件大多数旧应用程序 MS UI Automation...API(backend=“uia”) WinForms,WPF,Store apps,Qt5,浏览器 进程数量 单进程 Application作用范围是一个进程进程 Desktop作用范围可以跨进程...打开任意一个应用程序app = Application(backend='uia').start("exe路径") 连接已经打开应用程序 通过进程号 通过窗口句柄 app = Application(...dlg.maximize() # 窗口最小化dlg.minimize() # 窗口恢复正常大小dlg.restore() # 查找窗口显示状态,最大化为1,正常为0status = dlg.get_show_state...() # 获取当前窗口坐标位置rect = dlg.rectangle()print(rect)# (L548,T194,R1768,B1043) # 关闭窗口dlg.close() 选择控件 控件:

4K61

CefSharp中文帮助文档「建议收藏」

status=new&status=open 工艺流程 CEF使用多进程运行。处理窗口创建,绘画网络访问进程称为browser进程。...一些应用程序逻辑(例如JavaScript绑定)也将在渲染过程中运行。默认进程模型将为每个唯一来源(方案+域)生成一个渲染过程。...注意如果鼠标光标在浏览器中位置不正确,或者浏览器显示带有渲染/调整大小黑框/边框,则需要制作您应用程序DPI Aware。应用程序其他部分也可能会显得模糊或尺寸不正确。...弹出窗口 一个常见请求是控制弹出窗口创建。实施ILifeSpanHandler.OnBeforePopup以控制如何创建弹出窗口。要完全取消弹出窗口创建return true;。...WPF屏幕版本(虚拟)开始,它没有内置支持,版本开始,73VirtualKeyboardRequested事件现在会在您应用程序应显示虚拟键盘时提供通知。

13K31
  • Cefsharp_ceph nfs

    安装 CefSharp安装过程如下: 打开Visual Stduio,新建一个Windows窗体应用(.NET Framework); 在“工具”菜单打开NuGet包管理器; 搜索“CefSharp.WinForms...首先将需要用到HTML其他静态文件拷贝到工程目录,并设置“复制到输出目录”: 然后编写如下代码: using CefSharp; using CefSharp.WinForms; using...多个窗口显示浏览器 如果有多个窗口都需要显示浏览器,每个窗口代码并不完全相同。...主窗口代码如上一节所示,窗口代码如下: using System; using System.Windows.Forms; using CefSharp; using CefSharp.WinForms...执行JavaScript代码 如果需要通过程序控制网页显示、流程,最明显方法莫过于执行JavaScript代码了。特别是如果使用Vue.js框架,那么通过JS可以实现“模板渲染”功能。

    1.6K10

    软件测试|PC端应用自动化最佳解决方案——Pywinauto

    项目地址:Github地址支持应用为下面 2 大类:Win32 API 包含 MFC、VB6、VCL、simple WinForms controls and most of the old legacy...appsMS UI Automation包含 WinForms、WPF、Store apps、Qt5, browsers其中win32 API backend 为「 win32 」MS UI Automation... backend 为「 uia 」元素控件 WinAppDriver 类似,在编写自动化脚本之前,我们需要先获取元素控件各类属性值获取元素控件有 2 种方式:窗口内置方法检查工具窗口对象内置...,通过检查工具判断应用 backend 属性值,PC 端微信 backend 为「 uia 」然后,实例化一个「 Application 」类最后,使用该对象内置函数创建一个应用对象import...pywinautofrom pywinauto.application import Application# 获取应用对象# 三种方式任选一种# 方式一:应用进程pid(连接)app = Application

    3.1K20

    聊聊 PC 端自动化最佳方案 - Pywinauto

    项目地址:https://github.com/pywinauto/pywinauto 支持应用为下面 2 大类: Win32 API 包含 MFC、VB6、VCL、simple WinForms...元素控件 WinAppDriver 类似,在编写自动化脚本之前,我们需要先获取元素控件各类属性值 获取元素控件有 2 种方式: 窗口内置方法 检查工具 其中 窗口对象内置 2 个方法都可以打印出当前页面的元素控件树...import pywinauto from pywinauto.application import Application # 获取应用对象 # 三种方式任选一种 # 方式一:应用进程pid(连接)...「 kill() 」函数关闭进程,释放掉资源 def teardown(self): """释放资源""" # 结束进程,释放资源 self.app.kill() 5.... WinAppDriver 都能很好完成 PC 端自动化,但是由于 WinAppDriver 支持 Appium,在脚本语法简洁性方面可能更有优势

    2.5K51

    WPF 使用 Edge 浏览器

    本文告诉大家如何使用 Windows Community Toolkit 控件,在 WPF 使用 Edge 浏览器 首先需要通过 VisualStudio 创建 WPF 项目。...,也就是吃掉了所有用户输入 第一次加载无法覆盖控件大小,在修改窗口大小之后才可以 设置 IsEnable 无作用 设置 IsHitTestVisible 无作用,依然可以响应输入...大概就是如果同时有多个渲染,WPF 、 WinForms 如果两个绘制矩形有重叠,那么重叠部分就不能正常使用。...Grid.Column="0" Source="https://huangtengxiao.gitee.io/"> 我尝试使用 Panel.ZIndex 但是无法修改顺序 最简单方法是对比一下原来浏览器浏览器...参见:Windows Community Toolkit 3.0 新功能 在WinForms WPF 使用 UWP 控件 - CSDN博客 Bringing a modern WebView to

    1.7K10

    如何解决C#异常:必须先将当前线程设置为单线程单元(STA)模式,然后才能进行OLE调用,请确保你Main函数已在其上标记了STAThreadAttribute

    确保你Main函数上已标记STAThreadAttribute。仅当将调试器附加到进程时, 才会引发此异常。 在本文中, 我们将向你简要说明如何防止此异常出现在WinForms项目中。...异常示例 在我们项目中, 我们使用CefSharp库, 该库允许我们使用HTML, CSSJavaScript创建桌面应用程序。它功能之一是可以将C#类暴露给窗口JavaScript对象。...我们具有以下类, 该类显示用于保存文件本机对话框(showOpenDialog函数): using System; using CefSharp.WinForms; using System.IO;...将主应用程序线程公寓状态设置为ApartmentState.STA唯一方法是将STAThreadAttribute属性应用于入口点方法。...在我们例子中, 使用CefSharp中注册类启动OpenFileDialog方法, 如果在不更改线程单元状态情况下运行代码, 将引发异常。

    2.6K10

    WPF 使用 Edge 浏览器

    本文告诉大家如何使用 Windows Community Toolkit 控件,在 WPF 使用 Edge 浏览器 首先需要通过 VisualStudio 创建 WPF 项目。...存在问题 吃掉了 Touch 事件、MouseDown事件,也就是吃掉了所有用户输入 第一次加载无法覆盖控件大小,在修改窗口大小之后才可以 设置 IsEnable 无作用 设置 IsHitTestVisible...大概就是如果同时有多个渲染,WPF 、 WinForms 如果两个绘制矩形有重叠,那么重叠部分就不能正常使用。 ?...我尝试使用 Panel.ZIndex 但是无法修改顺序 最简单方法是对比一下原来浏览器浏览器 ...参见:Windows Community Toolkit 3.0 新功能 在WinForms WPF 使用 UWP 控件 - CSDN博客 Bringing a modern WebView to

    2.3K10

    【愚公系列】2023年11月 WPF控件专题 WindowFormsHost控件详解

    自定义控件则允许开发人员使用XAMLC#等编程语言来创建个性化用户界面元素。自定义控件可以根据需求提供更多功能自定义化选项,以及更好用户体验。...一、WindowFormsHost控件详解WindowFormsHost控件是WPF中与WinForms集成控件。它允许您将现有的WinForms控件嵌入到WPF应用程序中,以利用它们功能。...WindowFormsHost控件工作原理是将WinForms控件作为其子元素添加到WPF逻辑树中。在运行时,WinForms控件被呈现在WPF窗口中。...3.具体案例WindowFormsHost控件用于在WPF窗口中嵌入WinForms控件,可以方便地在WPF应用程序中使用WinForms控件。...以下是一个简单案例,展示如何在WPF窗口中嵌入WinForms控件,以及在WinForms控件中使用WPF控件。在Visual Studio中创建一个WPF应用程序。

    79441

    关于WinForms跨显示器DPI自适应

    导语 WinForms 是运行在Windows上传统.NET桌面应用技术框架。由于历史原因,它对高DPI以及跨不同DPI屏幕支持有些问题,本文将探索尽可能解决方案。...这个值越高,表示屏幕显示能力越细腻。 但也意味着,要显示物理尺寸低PPI屏幕相同画面,高PPI屏幕需要更多像素来填充。...首先,我在VS2019中使用150% DPI主屏幕,设计器视图不模糊,但按钮尺寸有问题,控件位置如下: ? 留意红色箭头位置。在VS里一切正常。...然而运行起来,在150% DPI主屏幕是会模糊,并且控件错位。 ? 将窗口拖动到100% DPI屏幕上,UI不模糊,但控件依旧错位。 ?...描述,.NET Framework 4.7开始,改善WinFormsDPI支持。

    2.5K20

    pywinauto,一款Win自动化利器!

    适合Windows系统软件(GUI),可以通过Pywinauto遍历窗口(对话框)窗口控件,也可以控制鼠标键盘输入,所以它能做事情比之前介绍pysimplegui更多 一般使用pip安装就行了...Windows软件,每一个软件(进程)都是一个Application对象 实例化Application对象时候可以传入一个backend参数,可选值为win32(默认)uia win32对应框架...:MFC、VB6、VCL、简单 WinForms 控件大多数旧遗留应用程序 uia对应框架:WinForms、WPF、商店应用程序、Qt5、浏览器 如果无法知道要测试软件是属于哪种框架,可以使用...InspectSpy++需要自己安装一下 下面是Application对象主要方法 举例,启动一个微信应用,通过进程号连接,进程号就是在任务管理器里详细信息看到PID 3.WindowSpecification...另外,比较有用click_input()type_keys()这两个方法分别用于操作鼠标键盘(输入),下面我会单独拿出来说一下 鼠标操作 鼠标点击肯定离不开点击位置,桌面就是一个坐标,左上角为坐标原点

    12210

    Pywinauto之Windows UI 自动化1

    5、确定自动化入口 主要是限制自动化控制进程范围。如一个程序有多个实例,自动化控制一个实例,而保证其他实例(进程)不受影响。...Application作用范围是一个进程,如一般桌面应用程序都为此类。 Desktop作用范围可以跨进程。主要用于像win10计算器这样包含多个进程程序。这种目前比较少见。...title为窗口名称,可使用UISpy一类定位元素工具去查找。 如图所示,该对话框中title为Name属性值:“打开” ? b)若使用定位元素工具找不到title怎么办?...)[0].children()[0] .children()[2] #定位用户名输入框控件(序号0开始查) 四、操作实例 这里以展讯平台烧录工具[UpgradeDownload.exe]来记录下自动化实现操作过程...,接下来将说下如何操作应用窗口 ~~~~~~~~~~~~~~~~~~

    8.3K32

    如何在.NET电子表格应用程序中创建流程图

    在企业环境中,高管经理利用流程图来规划业务流程,使他们能够识别瓶颈、优化生产力并增强决策能力……用例列表不胜枚举。然而,一个问题出现了,这些流程图由谁来维护?流程图如何共享或协作?...为了解决上述问题,今天小编就为大家介绍如何在.NET WinForms 应用程序中使用电子表格设计器组件在运行时创建形状操作流程图。...光标发生变化后,单击连接器端点并将其拖动到要连接第一个形状边框。然后看到连接点出现在您将连接器拖动到形状上,显示可以锚定它位置。...选择位置后,您将看到连接点变为绿色,表明线条已连接到形状。 连接完之后样式: 6.将样式应用到形状 此步骤介绍如何应用样式主题以及如何将自定义样式应用于形状。...操作步骤如下方动图所示: 8.在 .NET WinForms 应用程序中保存并显示流程图 设计完流程图之后,就可以将设计器中电子表格应用WinForms 应用程序了。

    24820

    使用.NET Core 构建现代化桌面应用

    .NET Framework 4.8 已经发布,.NET 4.8 已经帮助我们解决了很多问题, WPFWindows Forms高DPI更好至此,Windows 10 中最新浏览器媒体播放器控件...你将能够在 .NET Core 3 上运行现有的 Windows 桌面应用并体验 .NET Core 具有的所有优势。...开始,可以将 UWP XAML 控件直接添加到与窗口句柄 (HWND) 关联 WPF、Windows 窗体或 C++ Win32 应用任何 UI 元素。...关于Windows开发,其中一个最大抱怨是微软在Winformswpf投入少;Windows10提供大部分特性都只是针对UWP构建。...为了解决这个问题,微软创建了两个控件:WinForms XAML HostWPF XAML Host,使开发人员可以把UWP编写UI嵌入到现有WinForms/WPF应用程序。

    2.2K10

    攻击本地主机漏洞(中)

    Process Monitor应用程序(procmon)用于监视本地系统上运行进程。...当进程重新启动时,应加载DLL,恶意进程应以运行进程权限执行负载。如果该DLL确实存在于磁盘上某个搜索路径中其他位置,请查看是否可以写入具有更高优先级位置(即安装目录)。...堆是特定于应用程序(例如基于Java应用程序),访问内存速度比堆栈慢一些,因为变量是在运行时分配,它可以容纳比堆栈更多数据,这取决于对象在程序中声明时大小。...现在,我们在RBP地址0x7FFFFFE0F0最终位置看到十六进制值0x6f41316f0x336f4132(这应该是您步骤7中记下RBP地址)。...您应该在运行netcat侦听器终端窗口中看到一个连接。然后,执行几个命令与shell交互。 17、我们展示了gdb内部获得执行能力,但在调试器外部则是另一回事。

    1.4K20

    一条SQL语句提交后,db2都做了什么?

    DB2 将动态地分配所需资源,以支持应用程序。因此,包缓存编目的大小可以随着 maxappls值而变化。 除了上述参数以外,还有一个参数也会影响数据库共享内存数量。...这个参数不是一个应用程序组内用于每个应用程序应用程序控制大小。它只是在计算这个应用程序组内可容纳多少应用程序时用到一个值。...因此,groupheap_ratio 越高,应用程序组共享堆就越大,从而用于每个应用程序应用程序控制堆就越小。 4、代理私有内存 每个 DB2 代理进程都需要获得内存,以执行其任务。...代理进程将代表应用程序使用内存来优化、构建和执行访问计划,执行排序,记录游标信息(例如位置状态),收集统计信息,等等。...上述介绍了db2 实例共享内存、数据库共享内存应用程序组共享内存以及代理私有内存,与其他非 db2 进程相比,他们在内存中位置如下图所示: ?

    1K20

    .NET混合开发解决方案16 管理WebView2用户数据

    每个应用 WebView2 会话至少有一个 UDF。 主机应用可以通过指定自定义 UDF 位置来重叠它们。 或者,每台计算机可以有一个 UDF。 这取决于主机应用如何配置 UDF。...如何移动 UDF 若要将用户数据文件夹移 (UDF) : (1)关闭所有 WebView2 会话。 (2)启动 WebView2 主机应用会话,指定自定义 UDF 位置。...其他重要问题 一、是否在各种方案中保留用户数据文件夹 主机应用程序控制用户数据文件夹(UDF)生存期。...关闭 WebView2 应用后,UDF 中文件可能仍在使用中。 在这种情况下,请等待浏览器进程所有子进程退出,然后再删除 UDF。...每个 WebView2 浏览器进程都会占用额外内存磁盘空间。 因此,请避免同时运行具有过多不同 UDF WebView2 控件。

    2.2K30

    Evasor - 自动化查找可执行文件安全评估工具 (蓝队应急响应神器)

    看哪个恶意进程?哪个外联端口吗? ? Evasor、傻瓜、爽就完事了 Evasor是一种自动化安全评估工具,可在Windows操作系统上找到可用于绕过任何应用程序控制规则现有可执行文件。...验证是否引用树中将App.config文件项目中排除。 ? bin文件夹运行Evasor.exe。从下面选择数字选项: ? 找到可用于绕过应用程序控制可执行文件!...检索所有正在运行进程相对路径 通过以下方法检查每个进程(可执行文件)是否容易受到DLL注入攻击: 使用默认参数路径C:\ Windows \ System32 \ mavinject.exe运行...检查MavInject执行退出代码,如果进程正常退出,则意味着该进程易受DLL注入攻击,可用于绕过应用程序控制。 查找容易受到DLL劫持进程!...尝试将文件替换到另一个位置,以验证该文件是否可替换,并且最终很容易受到资源劫持影响。

    1.5K20

    Windows Community Toolkit 3.0 新功能

    修改命名就是最大更新,本文完(不要打我) 版本不重要更新是 支持在 WPF WinForms 使用控件,包括 Edge 浏览器 所有的 UWP 可以在 Xaml 开启 eye...bug 支持 WPF WebView 微软开发了 Microsoft Edge 渲染引擎,可以在 WinForms WPF 使用。...这个控件就是WebViewControl,这个控件有大量 API 原有的 WinForms WPF web控件相同。...下面就是分别运行在 WinForms WPF WebViewControl 。...这个项目会是微软和所有开发者一起开发,如果没有这么多开发者无私贡献,那么也不会写出如此好用库。 如果想入门学一下如何使用这个库,欢迎在应用商店下载演示软件 来使用。

    1.5K10
    领券