首页 > 系统相关 >C#控制windows的“拖动时显示窗体内容”系统设置

C#控制windows的“拖动时显示窗体内容”系统设置

时间:2024-04-16 10:13:29浏览次数:26  
标签:MsHelper SPI C# uint windows SPIF 窗体 bool public

公司的云桌面,影响到了原生系统的“拖动时显示窗体内容”,做了个处理程序。
感谢AI,现在查资料快速了许多。虽然的确有乱说的成分,但是庆幸的是大体思路没问题。

using System.Runtime.InteropServices;

// 检查当前设置
bool dragFullWindows = MsHelper.GetDragFullWindows();
Console.WriteLine("当前设置: " + (dragFullWindows ? "enable" : "disable"));

// 禁用拖动时显示窗口内容
MsHelper.ChangeDragFullWindows(false);

await Task.Delay(500);

MsHelper.ChangeDragFullWindows(true);

// 再次检查设置
dragFullWindows = MsHelper.GetDragFullWindows();
Console.WriteLine("更改后的设置: " + (dragFullWindows ? "enable" : "disable"));

// 启用拖动时显示窗口内容
//MsHelper.ChangeDragFullWindows(true);

//Console.ReadKey();

public static class MsHelper
{
    [DllImport("user32.dll", SetLastError = true)]
    public static extern bool SystemParametersInfo(uint uiAction, uint uiParam, ref bool pvParam, SPIF fWinIni);

    //public const uint SPI_GETDRAGFULLWINDOWS = 0x0037;
    //public const uint SPI_SETDRAGFULLWINDOWS = 0x0038;
    public const uint SPI_GETDRAGFULLWINDOWS = 0x0026;
    public const uint SPI_SETDRAGFULLWINDOWS = 0x0025;

    public static bool GetDragFullWindows()
    {
        bool enabled = false;
        SystemParametersInfo(SPI_GETDRAGFULLWINDOWS, 0, ref enabled, 0);
        return enabled;
    }

    public static void ChangeDragFullWindows(bool enable)
    {
        SystemParametersInfo(SPI_SETDRAGFULLWINDOWS, enable ? 1u : 0, ref enable, SPIF.SPIF_SENDCHANGE);
    }
}

[Flags]
public enum SPIF
{
    SPIF_NONE = 0,
    SPIF_SENDCHANGE = 0x2,
    SPIF_UPDATEINIFILE = 0x1
}

标签:MsHelper,SPI,C#,uint,windows,SPIF,窗体,bool,public
From: https://www.cnblogs.com/3Tai/p/18137518

相关文章

  • 小红书浏览点赞评论引流机器人(PC版)
    一、功能介绍小红书浏览点赞评论引流机器人(PC版),是一款小红书PC端养号引流营销机器人,机器人自动在小红书网站上随机浏览,并随机执行点击发现,搜索关键词,切换栏目等操作。可以自动播放视频、翻看笔记图片、查看评论,随机点赞评论笔记或视频,做到真人操作既视感,让养号引流更加省事、安全......
  • Figma传图标至iconfont库,细节缺失
    Figma中做好图标,导出svg,上传iconfont,经常出现以下问题原因是:一大佬文章中有提到figma的填充模式为“even-odd”,iconfont识别不了这种格式解决方案:运用Figma插件FillRuleEditor 以下是具体操作步骤1、运用布尔运算绘制图标;2、右键Outlinestroke转曲,防止图标放大缩小变......
  • can总线学习;
    问:传输协议?   CAN总线是一种多主控(Multi-Master)的总线系统,它不同于USB或以太网等传统总线系统是在总线控制器的协调下,实现A节点到B节点大量数据的传输,CAN网络的消息是广播式的,亦即在同一时刻网络上所有节点侦测的数据是一致的,因此比较适合传输诸如控制、温度、转速等短消息......
  • day11_我的Java学习笔记 (static_静态成员变量+静态成员方法_工具类、代码块_静态代码
    0.面向对象进阶1.static静态关键字1.1static是什么,static修饰成员变量的用法Java成员变量成员方法Python类(对象)属性类(对象)方法static修饰成员变量的应用:在线人数统计1.2static修饰成员变量的内存原理1.3static修饰成员方法的基本......
  • antd 的ProTable 的列加上ellipsis属性后,react-resizable会无法拖动列
    1、我尝试在列中加入ellipsis为true后,让内容超出后,用省略号表示。{title:displayName,dataIndex:propName,key:newPropName,width:widthIndex//,ellipsis:true}但是这引发了另外的问题。react-resizable配置的列可拖动无效了。额外的情况:obj.fixed='......
  • 一个.NET开源的功能丰富、灵活易用的 Windows 窗口增强神器
    思维导航前言工具介绍支持系统工具源代码工具下载并安装部分功能截图项目源码地址优秀项目和框架精选DotNetGuide技术社区交流群前言通常情况下Windows中的软件窗口界面一般只包含还原、移动、大小、最大化、最小化、关闭等几个基本的操作: 今天大姚给大家推......
  • docker启动报setclasspath.sh文件找不到处理方式
    运动tomcat容器报错​从dockerhub官方拉的镜像,按理说应该不会是没有这个文件,/bin/bash启动了一下,将/usr/local/tomcat路径下的文件cp到本机,发现setclasspath.sh存在​dockercp容器TD:/usr/local/tomcat/data/tomcat1但是为什么找不到呢看到了这个文章,就试了一下,问题解决了......
  • ASP.NET Core 8 EntityFrameworkCore 初体验
    介绍EntityFramework(EF)Core是轻量化、可扩展、开源和跨平台版的常用EntityFramework数据访问技术。EFCore可用作对象关系映射程序(O/RM),这可以实现以下两点:使.NET开发人员能够使用.NET对象处理数据库。无需再像通常那样编写大部分数据访问代码。先决条件V......
  • 深度学习算法中的稀疏编码(Sparse Coding)
    【摘要】引言稀疏编码(SparseCoding)是深度学习算法中的一种重要技术,它在神经网络模型中发挥着重要的作用。本文将介绍稀疏编码的基本概念、原理以及在深度学习中的应用。稀疏编码的概念稀疏编码是一种通过寻找数据的稀疏表示来描述数据的方法。在深度学习中,稀疏编码可以将输入数......
  • ASP.NET Core 8 Swagger UI 入门使用
    介绍Swashbuckle有三个主要组成部分:Swashbuckle.AspNetCore.Swagger:将SwaggerDocument对象公开为JSON终结点的Swagger对象模型和中间件。Swashbuckle.AspNetCore.SwaggerGen:从路由、控制器和模型直接生成SwaggerDocument对象的Swagger生成器。它通常与Swagger终......