注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

分享,态度 ·~~

—— 十年太长,五年;如果可以回到五年前,你最想对那时候的自己说什么?

 
 
 

日志

 
 

桌面窗体,相关操作  

2010-04-07 13:07:34|  分类: DotNet |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

class Program
    {
        static void Main(string[] args)
        {
            IntPtr ptrTaskbar = FindWindow("Shell_TrayWnd", null);
            Console.WriteLine("0x" + ptrTaskbar.ToString("x8"));

            IntPtr ptrIcons = GetParent((IntPtr)0x00010076);
            Console.WriteLine("0x" + ptrIcons.ToString("x8"));

            IntPtr ptrDesktop = GetDesktopWindow();
            Console.WriteLine("0x" + ptrDesktop.ToString("x8"));

            StringBuilder sbb = new StringBuilder(512);
            GetWindowText((IntPtr)0x00010076, sbb, sbb.Capacity);
            if (sbb!=null)
            {
                Console.WriteLine(sbb.Length);
            }
            else
            {
                Console.WriteLine("Null");
            }

            IntPtr p = IntPtr.Zero;
            do
            {
                p = FindWindowEx(ptrDesktop, p, "Button", null);
                if (!p.Equals(IntPtr.Zero))
                {
                    Console.Write("0x" + p.ToString("x8")+":");

                    StringBuilder sb = new StringBuilder(512);
                    GetWindowText(p, sb, sb.Capacity);
                    Console.WriteLine(sb);
                    Console.WriteLine("sb.Length:"+sb.Length);
                    GetClassName(p, sb, sb.Capacity);
                    Console.WriteLine(sb);
                    Console.WriteLine("sb.Length:"+sb.Length);
                }
            } while (!p.Equals(IntPtr.Zero));

            Console.WriteLine();
        }

        [DllImport("user32.dll")]
        public static extern IntPtr FindWindow(string classname, string title);

        [DllImport("user32.dll", EntryPoint = "FindWindowEx")]
        private static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string lpszClass, string lpszWindow);

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

        [DllImport("user32")]
        public static extern int GetWindowText(IntPtr hwnd, StringBuilder lptrString, int nMaxCount);

        [DllImport("user32.dll")]
        private static extern IntPtr GetDesktopWindow();

        [DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)]
        static extern int GetClassName(IntPtr hWnd, StringBuilder lpClassName, int nMaxCount);

    }

  评论这张
 
阅读(757)| 评论(2)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017