我来了排列三17304期预测: 薛飞 用Unity做一个壁纸程序(二)

47
回复
5242
查看
打印 上一主题 下一主题
[ 复制链接 ]
排名
417
昨日变化

排列三2014079期正版藏机图 www.d0po.cn 21

主题

213

帖子

4044

积分

Rank: 9Rank: 9Rank: 9

UID
686
好友
18
蛮牛币
5358
威望
0
注册时间
2013-7-4
在线时间
1701 小时
最后登录
2019-5-18

专栏作家

QQ

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册帐号

x
本帖最后由 AWNUXCVBN 于 2018-12-25 13:24 编辑


[C#] 纯文本查看 复制代码
using System;
using System.Diagnostics;
using System.Runtime.InteropServices;
using UnityEngine;
using UnityEngine.UI;

public class WallPaper : MonoBehaviour
{ 
    [DllImport("user32.dll")]
    static extern IntPtr FindWindow(string lpClassName, string lpWindowName);

    [DllImport("user32.dll")]
    public static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string className, string winName);

    [DllImport("user32.dll")]
    public static extern IntPtr SetParent(IntPtr hwnd, IntPtr parentHwnd);

    [DllImport("user32.dll", CharSet = CharSet.Auto)]
    public static extern int ShowWindow(IntPtr hwnd, int nCmdShow);

    [DllImport("user32.dll")]
    public static extern bool EnumWindows(EnumWindowsProc proc, IntPtr lParam);
    public delegate bool EnumWindowsProc(IntPtr hwnd, IntPtr lParam);

    [DllImport("user32.dll")]
    public static extern IntPtr SendMessageTimeout(IntPtr hwnd, uint msg, IntPtr wParam, IntPtr lParam, uint fuFlage, uint timeout, IntPtr result);

    public delegate bool WNDENUMPROC(IntPtr hwnd, uint lParam);

    [DllImport("user32.dll", SetLastError = true)]
    public static extern bool EnumWindows(WNDENUMPROC lpEnumFunc, uint lParam);

    [DllImport("user32.dll", SetLastError = true)]
    public static extern IntPtr GetParent(IntPtr hWnd);

    [DllImport("user32.dll")]
    public static extern uint GetWindowThreadProcessId(IntPtr hWnd, ref uint lpdwProcessId);

    [DllImport("kernel32.dll")]
    public static extern void SetLastError(uint dwErrCode);

    public Text t;

    public int ResWidth;//窗口宽度
    public int ResHeight;//窗口高度

    IntPtr wallPaper;
    IntPtr progman;
    IntPtr result;

    void Main()
    {
        ResWidth = Screen.width;
        ResHeight = Screen.height;
        //Screen.SetResolution(ResWidth, ResHeight, true, 30);

        if (Application.platform == RuntimePlatform.WindowsPlayer)
        {
            wallPaper = GetProcessWnd();
            progman = FindWindow("Progman", null);

            result = IntPtr.Zero;

            // 向 Program Manager 窗口发送 0x52c 的一个消息,超时设置为0x3e8(1秒)。
            SendMessageTimeout(progman, 0x52c, IntPtr.Zero, IntPtr.Zero, 0, 0x3e8, result);

            EnumWindows((hwnd, lParam) =>
            {
                // 找到包含 SHELLDLL_DefView 这个窗口句柄的 WorkerW
                if (FindWindowEx(hwnd, IntPtr.Zero, "SHELLDLL_DefView", null) != IntPtr.Zero)
                {
                    // 找到当前 WorkerW 窗口的,后一个 WorkerW 窗口。 
                    IntPtr tempHwnd = FindWindowEx(IntPtr.Zero, hwnd, "WorkerW", null);

                    // 隐藏这个窗口
                    ShowWindow(tempHwnd, 0);
                }
                return true;
            }, IntPtr.Zero);

            SetParent(wallPaper, progman);
        }
    }

    // Update is called once per frame
    void Update()
    {

    }

    private void OnApplicationFocus(bool focus)
    {
        if (Application.platform == RuntimePlatform.WindowsPlayer)
        {
            t.text += " focus:" + focus;
            if (focus)
            {

            }
            else
            {

            }
        }

    }

    public static IntPtr GetProcessWnd()
    {
        IntPtr ptrWnd = IntPtr.Zero;
        uint pid = (uint)Process.GetCurrentProcess().Id;
        // 当前进程 ID         
        bool bResult = EnumWindows(new WNDENUMPROC(delegate (IntPtr hwnd, uint lParam)
        {
            uint id = 0;
            if (GetParent(hwnd) == IntPtr.Zero)
            {
                GetWindowThreadProcessId(hwnd, ref id);
                if (id == lParam)
                // 找到进程对应的主窗口句柄  
                {
                    ptrWnd = hwnd;
                    // 把句柄缓存起来     
                    SetLastError(0);
                    // 设置无错误       
                    return false;
                    // 返回 false 以终止枚举窗口       
                }
            }
            return true;
        }), pid);
        return (!bResult && Marshal.GetLastWin32Error() == 0) ? ptrWnd : IntPtr.Zero;
    }
      
}



主要bug解决了……其他bug……有待继续
项目地址https://gitee.com/awnuxcvbn/WallPaper.git
参与人数 1鲜花 +5 收起 理由
lilexy + 5 前排留名

查看全部评分总评分 : 鲜花 +5

7日久生情
2262/5000
排名
1393
昨日变化

0

主题

701

帖子

2262

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
135463
好友
0
蛮牛币
47
威望
0
注册时间
2016-1-23
在线时间
671 小时
最后登录
2019-5-26
沙发
2018-12-23 17:45:09 只看该作者
6666666666666666666666666666
3偶尔光临
293/300
排名
10705
昨日变化

0

主题

122

帖子

293

积分

Rank: 3Rank: 3Rank: 3

UID
301976
好友
0
蛮牛币
518
威望
0
注册时间
2018-10-31
在线时间
73 小时
最后登录
2019-5-25
板凳
2018-12-23 21:46:06 只看该作者
优秀啊楼主

7日久生情
2253/5000
排名
1822
昨日变化

5

主题

819

帖子

2253

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
239879
好友
1
蛮牛币
17140
威望
0
注册时间
2017-8-26
在线时间
699 小时
最后登录
2019-5-24
地板
2018-12-24 08:23:37 只看该作者
66666666666666666
6蛮牛粉丝
1079/1500
排名
2066
昨日变化

0

主题

224

帖子

1079

积分

Rank: 6Rank: 6Rank: 6

UID
26073
好友
1
蛮牛币
4056
威望
0
注册时间
2014-5-21
在线时间
187 小时
最后登录
2019-5-26
5#
2018-12-24 08:41:24 只看该作者
楼主这操作6啊,厉害厉害
7日久生情
2111/5000
排名
2252
昨日变化

0

主题

824

帖子

2111

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
163777
好友
2
蛮牛币
633
威望
0
注册时间
2017-2-27
在线时间
663 小时
最后登录
2019-5-24
6#
2018-12-24 08:50:00 只看该作者
马克一下
7日久生情
1752/5000
排名
4092
昨日变化

0

主题

1085

帖子

1752

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
254705
好友
1
蛮牛币
1625
威望
0
注册时间
2017-11-16
在线时间
305 小时
最后登录
2019-5-25
7#
2018-12-24 09:04:22 只看该作者
66666666666
5熟悉之中
749/1000
排名
4110
昨日变化

1

主题

237

帖子

749

积分

Rank: 5Rank: 5

UID
245227
好友
0
蛮牛币
965
威望
0
注册时间
2017-9-21
在线时间
151 小时
最后登录
2019-5-10
8#
2018-12-24 09:34:10 只看该作者
这不是用了win的API吗, 用DX直接写不更方便吗
排名
48130
昨日变化

0

主题

19

帖子

45

积分

Rank: 1

UID
143580
好友
1
蛮牛币
21
威望
0
注册时间
2016-3-27
在线时间
22 小时
最后登录
2019-5-25
9#
2018-12-24 09:40:29 只看该作者
Unity 调用Window 接口,这个网上资源不多
5熟悉之中
809/1000
排名
3796
昨日变化

4

主题

209

帖子

809

积分

Rank: 5Rank: 5

UID
237362
好友
0
蛮牛币
3955
威望
0
注册时间
2017-8-13
在线时间
210 小时
最后登录
2019-5-25
10#
2018-12-24 10:08:40 只看该作者
必须拿来学习学习
11#
匿名  发表于 2018-12-24 10:36:44
6666666666666666666666666666
5熟悉之中
987/1000
排名
2168
昨日变化

7

主题

114

帖子

987

积分

Rank: 5Rank: 5

UID
53034
好友
1
蛮牛币
3576
威望
0
注册时间
2014-11-4
在线时间
220 小时
最后登录
2019-5-20
12#
2018-12-24 16:26:54 只看该作者
重拾发现惊喜
排名
18790
昨日变化

0

主题

17

帖子

73

积分

Rank: 2Rank: 2

UID
222850
好友
0
蛮牛币
93
威望
0
注册时间
2017-5-19
在线时间
24 小时
最后登录
2019-4-24
13#
2018-12-24 16:43:15 只看该作者
优秀 大佬牛逼
6蛮牛粉丝
1132/1500
排名
3542
昨日变化

0

主题

315

帖子

1132

积分

Rank: 6Rank: 6Rank: 6

UID
180321
好友
8
蛮牛币
858
威望
0
注册时间
2016-11-21
在线时间
395 小时
最后登录
2019-5-24
14#
2018-12-25 10:06:20 只看该作者
大佬早上好
6蛮牛粉丝
1051/1500
排名
5542
昨日变化

0

主题

658

帖子

1051

积分

Rank: 6Rank: 6Rank: 6

UID
300432
好友
1
蛮牛币
1451
威望
0
注册时间
2018-10-18
在线时间
133 小时
最后登录
2019-3-27
15#
2018-12-25 11:12:29 只看该作者
大佬早上好
您需要登录后才可以回帖 登录 | 注册帐号

本版积分规则

  • 【人事】中共临汾市委组织部公示3名拟任职干部 2019-05-18
  • 习近平与人民日报那些事 2019-05-10
  • 很多常用药同属一家族 2019-04-30
  • 小牛犊天生两条腿 走起路来像袋鼠 2019-04-30
  • 就因为“阶级亲”,才应把这些难民送到欧洲。欧洲生活水平高呀,让亲人生活的更好。不能让他们到中国受苦受难呀。 2019-04-27
  • 资管新规来了!打破刚兑  投资者怎么办? 2019-04-27
  • 紫光阁中共中央国家机关工作委员会 2019-04-24
  • 图解:习近平主席这12个金句振奋人心! 2019-04-24
  • 您访问的页面找不回来了 2019-04-07
  • 五莲科技局以“三大”助力动能转换 2019-04-07
  • 匹夫有责之一百一十二—道义大义的博客—强国博客—人民网 2019-03-30
  • 守住青山不放松 护好绿水不辞难——在渝全国人大代表聚焦“共抓大保护、不搞大开发”专题调研记略 2019-03-28
  • 经营者要想“我心换你心”,就要未雨绸缪,让不诚信的诱惑少一点,如此才能在市场中生存下来。反过来说,承担不起亏损就关门歇业,是否也是一种不诚信呢? 2019-03-21
  • 追风上市公司“跌落神坛”-热门标签-华商网数码 2019-03-21
  • 文化艺术交易场所沙龙第一期活动在京顺利举行 2019-03-16
  • 951| 423| 683| 196| 448| 698| 527| 983| 181| 728|