windows分屏 拔掉显示器之后软件不在主显示器上显示问题

公司回来发现打开软件后不显示在笔记本上 发现是外接设备的问题 会导致之前打开的软件再打开时会到外接显示器上 搜索实践后解决方案:

1.让软件保持打开状态 任务栏显示是使用状态的
2.使用alt+空格
3.使用M键 此时发现移动鼠标没有
4.使用键盘方向键 等出现软件界面的时候就可以使用鼠标了

在C#中,直接修改Windows系统的显示模式通常不是通过编写应用程序来完成的,因为这涉及到底层的图形设置和操作系统级别的控制,这些都是由操作系统本身或者特定的系统管理工具负责的。但是,你可以创建一个C#程序来模拟操作或者提供用户界面引导他们手动更改显示模式。 如果你想要让用户通过你的C#程序来切换屏幕显示模式,一种方法是利用`SystemParametersInfo` API,这是一个可以用来调整系统参数的函数,例如改变显示器设置。然而,这个API并不直接支持设置显示模式,而是提供了一些间接的方式来影响它,如调节布局(比如是否扩展到所有显示器)。 下面是一个简单的示例代码片段,演示如何使用`SystemParametersInfo`来尝试设置桌面布局,但这并不能保证能立即更改到“扩展”或“仅在显示器1上”的模式: ```csharp using System.Runtime.InteropServices; [DllImport("user32.dll", SetLastError = true)] private static extern bool SystemParametersInfo(uint uiAction, uint uiParam, ref IntPtr pvParam, uint fWinIni); [Flags] public enum SPI : uint { DISPLAY_CHANGE = 0x0047, } // 调整屏幕布局 private const int SPI_SETWORKAREA = (SPI.DISPLAY_CHANGE + 6); // 可能需要根据实际参数调整 public void SetDisplayMode(int width, int height) { var workArea = new Point(0, 0, width, height); var result = SystemParametersInfo(SPI.SETWORKAREA, 0, ref workArea, 0); if (!result) { Console.WriteLine($"Failed to set display mode, error code: {Marshal.GetLastWin32Error()}"); } else { Console.WriteLine($"Work area set to {width}x{height}"); } } ``` 请注意,上述代码仅作为一个概念展示,并非真正实现屏幕模式更改的功能。实际上,你需要处理更多的边界情况并可能需要管理员权限才能更改某些设置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@十面埋伏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值