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

做产品推广哪个网站好图片网站 代码

做产品推广哪个网站好,图片网站 代码,成都小程序定制开发,大兴网站定制开发目录 前言 一、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/14291907/

相关文章:

  • 网站建设的ppt模板下载网站备案查询 怎么弄
  • 杭州网站建设长春公司免费ppt下载网站有哪些
  • 做悬赏的网站路由器统一登录网站
  • 公司做网站需要给百度交钱吗竹妃怎么在公众号里做网站
  • 平面设计鉴赏网站逆袭做富豪官方网站
  • 做网站要审批吗seo优化工具
  • 企业网站建设合同(一)北京服饰电商网站建设
  • 西安网站建设聂卫西安住房和城乡建设部网站
  • 临沂制作网站软件海南哪家公司做网站
  • 绿盒子网站建设案例数据网站建设多少钱
  • 网站注册页面模板下载wordpress响应式网站模板
  • 建设网站必备的开发工具局域网聊天工具排行
  • mvc网站入口asp如何制作个人网站
  • 科技公司网站模板门户类网站建设
  • 石家庄手机网站建站南昌网站建设q479185700棒
  • 白城百度网站建设个人域名备案的要求
  • 网站别人帮做的要注意什么房屋设计网站推荐
  • 郑州企业做网站安卓版wordpress
  • 做网站实训心得体会谷歌怎么投放广告
  • 网页优化seo广州百度seo优化培训
  • 成都双流兴城建设投资有限公司网站岳阳网站建设哪里便宜
  • 网站集成微信登陆电子商务网站设计策划书
  • 东莞网站建设服务公司创建公司网站需要准备哪些素材
  • 北京建网站报价怎样建设微网站
  • 江苏网站建设系统方案莱芜金点子最新招工信息
  • 北京所有公司名单成都seo招聘信息
  • 北京app网站建设wordpress百度地图
  • 东莞专业网站建设公司衡阳百度网站建设
  • 指定关键字 网站有更新就提醒wordpress post class
  • 三亚网站建设绿色大气网站