当前位置: 首页 > news >正文

做产品推广哪个网站好哪家公司建站比较好

做产品推广哪个网站好,哪家公司建站比较好,centum wordpress,北京环球影城风险等级目录 前言 一、user32.dll 1.什么是user32.dll 2.如何使用user32.dll 二、句柄Handle 1.句柄 2.句柄的功能 3.拿句柄的方法 三、窗口置顶 1.窗口置顶的方法 2.参数说明 3.使用方法 四、作者的碎碎念 前言 up依旧挑战全网讲解最详细版本~~ 本篇文章讲解的是unity…目录 前言 一、user32.dll 1.什么是user32.dll 2.如何使用user32.dll 二、句柄Handle 1.句柄 2.句柄的功能 3.拿句柄的方法 三、窗口置顶 1.窗口置顶的方法 2.参数说明 3.使用方法  四、作者的碎碎念 前言 up依旧挑战全网讲解最详细版本~~ 本篇文章讲解的是unity打包了window的安装包使用的窗口设置安卓之类的不在此列~ 一、user32.dll 1.什么是user32.dll 想要窗口置顶其实已经不是在控制软件了实际上请求的是windows的帮助告诉系统“系统把我放到最上面~”。 这时候就需要和系统做一些交互让我们去写和系统交互这部分代码那是不可能的。我们就知道怎么用就行。user32.dll是微软写好的文件里面封装了很多方法可以让我们直接和系统交互。 备注 up这里只讲和窗口置顶相关的方法。如果你想知道还有哪些方法呢可以查询下方链接。 Windows API 索引 - Win32 apps | Microsoft Learn windows系统是微软公司研发的所以这个网页是微软公司放出来给大家写的一些说明书还有其他内容可以查到大家可以自己查询。 如果你真的去查阅了你会发现他的方法和我们是不一样的的。 如图2所示方法IntPtr GetForegroundWindow() 链接是 GetForegroundWindow 函数 (winuser.h) - Win32 apps | Microsoft Learn 在原文中是 图1 方法GetForegroundWindow() 你会发现画红圈圈那里是不一样的那怎么办呢 因为在封装的时候使用词汇进行了一点改变在另外一个链接里有说明 用平台调用封送数据 - .NET Framework | Microsoft Learn 图2 部分分装说明 在C#中我们所有的HWND都被Intptr代替。 全部表格如下 2.如何使用user32.dll 因为我们的方法都来自于这个dll所以我们每次要把dll里的方法拿出来我们才能用。所以我们每一个系统方法上面必须要写[DllImport(user32.dll)]如图3所示 图3 引用user32.dll 二、句柄Handle 1.句柄 关于为什么这么翻译up在网上没有找到官方的说明这里up自己的理解是“句子的手柄”。 句子代表我们写的很多代码手柄就是平时玩游戏的手柄我们通过句柄来控制东西。我们需要这个控制的权限。 2.句柄的功能 我们看见的每个窗口都有个专用的手柄你要控制谁就需要拿到这个手柄。如图4单纯皮一下所示 图4 孙悟空吸句柄 3.拿句柄的方法 下方函数的意思是寻找句柄并返回句柄。 官方链接FindWindowExA 函数 (winuser.h) - Win32 apps | Microsoft Learn HWND FindWindowExA([in, optional] HWND hWndParent,[in, optional] HWND hWndChildAfter,[in, optional] LPCSTR lpszClass,[in, optional] LPCSTR lpszWindow ); 上面是官方给的C的代码按照表格我们翻译成C#的代码。 [DllImport(user32.dll)] static extern IntPtr FindWindowExA( IntPtr hWndParent, IntPtr hWndChildAfter, string lpszClass, string lpszWindow); 这里解释一下里面不常见的词汇 extern因为这个方法不是unity自带的而是user32.dll里面的所以如果直接写就会报错因为他会在你所有的代码里面查一遍发现查不到FindWindowExA这个方法就会报错。如图5所示所以在方法中必须标明这是外部方法不要在代码里找了找不到的。 因此这个单词一般和[DllImport(*****)]一起出现。 图5 方法报错 IntPtr声明句柄这里就不多说了 参数解释 IntPtr hWndParent父窗口的句柄        窗口也分父子窗口如图6所示浏览器就是父窗口浏览器中还有好多子窗口。所以查找时候会问你要在哪个父窗口下找吗如果这里填IntPtr.Zero那就是查找所有的父窗口。 图6 浏览器 IntPtr hWndChildAfter从某个子窗口句柄往后开始找 如图6所示如果我想从Unity屏幕置顶往后开始找那我这里就要把这个窗口的句柄传进去同样如果填IntPtr.Zero那就是查找所有的子窗口。 string lpszClass窗口类别        窗口是有很多类别的除了刚看的浏览器这种窗口开始菜单栏也属于窗口。显然这不是一个类别的窗口所以如果你对窗口类别有限制就填在这里。如果没有就填写null 图7 菜单窗口 string lpszWindow 窗口名称        输入你要找的窗口名称对unity打包后的软件来说窗口名称就是软件的名称就是如图8所示。 图8 unity最终打包后的窗口名称 到此为止通过使用这个方法我们就可以拿到软件的句柄了。 [DllImport(user32.dll)]static extern IntPtr FindWindowExA(IntPtr hWndParent, IntPtr hWndChildAfter, string lpszClass, string lpszWindow);public string projectName;IntPtr intPtr;void Start(){intPtr FindWindowExA(IntPtr.Zero, IntPtr.Zero, null, projectName);} 三、窗口置顶 1.窗口置顶的方法 官方链接SetWindowPos 函数 (winuser.h) - Win32 apps | Microsoft Learn BOOL SetWindowPos([in] HWND hWnd,[in, optional] HWND hWndInsertAfter,[in] int X,[in] int Y,[in] int cx,[in] int cy,[in] UINT uFlags ); 改编成C#的方法 [DllImport(user32.dll)]static extern bool SetWindowPos( IntPtr intPtr, int hwndInsertAfter, int X, int Y, int cx, int cy, uint uFlags); 备注 如果注意看的小伙伴会问我为什么 int hwndInsertAfter是int呢不应该是IntPtr吗 这个比较特殊因为在官方文档里备注了。如图9所示 图9 hwndInsertAfter注解 注解的意思是这里要填数字int 1        放在所有窗口最下面 -2       放在置顶窗口以外的第一层 0        单次置顶 -1        永远置顶  2.参数说明 IntPtr intPtr                     填写你想要控制的句柄    int hwndInsertAfter           前面讲过按照需求填一下 int X:                                     你打算把窗口放在哪个屏幕的哪个位置中的x    int Y:                                     你打算把窗口放在哪个屏幕的哪个位置中的y int cx:                                    你的窗口分辨率宽如果全屏显示这个没有意义 int cy:                                    你的窗口分辨率高如果全屏显示这个没有意义 uint uFlags:                           功能很多如图10所示 图10 uFlags 你用哪个就填写下面的数字就行了。 这次我们选择如图11所示意思就是显示窗口并且可以操作。 图11 0x0040 3.使用方法  using System; using System.Runtime.InteropServices; using UnityEngine;public class myWindowMod : MonoBehaviour {[DllImport(user32.dll)]static extern IntPtr FindWindowExA(IntPtr hWndParent, IntPtr hWndChildAfter, string lpszClass, string lpszWindow);//引入设置窗口方法[DllImport(user32.dll)]static extern bool SetWindowPos(IntPtr intPtr, int hwndInsertAfter, int X, int Y, int cx, int cy, uint uFlags);public string projectName;IntPtr intPtr;void Start(){intPtr FindWindowExA(IntPtr.Zero, IntPtr.Zero, null, projectName);//设置窗口 //句柄 //放在位置0,0 //显示窗口并能操作SetWindowPos(intPtr, -1,0,0,1920,1080, 0x0040);//永久置顶 //窗口分辨率1920,1080} } 以上就是置顶窗口的全部代码 四、作者的碎碎念 这一部分涉及到很多内容确实不太好学大家加油啊~ 在程序这么复杂的环境下大家也不想失去一个这么努力的把知识讲详细的up吧多点赞收藏关注就能给我能量哦~谢谢大家。
http://www.hkea.cn/news/14552797/

相关文章:

  • 网站建设进度跨境电商代运营公司十强
  • 泰安网站建设推广做hmtl的基本网站
  • 苏州建设网站找网络公司江苏网站建设推广
  • 网站页面划分十大直播禁止下载的软件
  • 网站推荐电子商务网站开发原则
  • 自做网站的步骤湖南网站设计制作
  • 单位网站开发现在的网络推广怎么做
  • 网站备案一天通过最稳定的免费的资源共享网站
  • 做网站用的什么编程语言河北省网站快速备案
  • 比选三家网站建设公司邯郸网站设计公司排名
  • 如何在文本上做网站链接符号互动广告平台
  • 网站建设需要多少钱?网页制作软件 ad
  • 佛山微网站建设哪家专业重庆妇科医院排行榜
  • 手机网站描述手机网站封装用户体验
  • 中山网站制作专业网站建设公司岳阳
  • 有什么国企是做网站的个人网站 建设
  • 网站建设中要尽量使用图片wordpress卡密网站源码
  • 网站安全代维jsp做的网站答辩问题
  • 怎么注册一个自己的网站查询网站服务器地址
  • 企业网站开发协议wordpress建站收录快
  • 国内专业的网站建设服装效果图网站
  • 网站改版 目的厦门网站建设和空间
  • 深圳网站优化指导哈尔滨站建好了吗
  • 做网站的注意事项如何比较网站
  • 在线制作图片动画效果seo案例分析方案
  • 合肥seo网站多少钱广州抖音seo公司
  • 龙华建设局网站企业网站开发研究现状
  • 一个备案号多个网站德阳响应式网站建设
  • 昆山建设工程招标网站网站已经开发怎样用微信实现手机网站开发
  • 网站项目在哪接dw网页制作教程图片主页子页