Beispiel #1
0
        private void applyWallpaperWin7(string path)
        {
            Shell32.Shell           shell      = new Shell32.ShellClass();
            Shell32.Folder          folder     = shell.NameSpace(Path.GetDirectoryName(path)) as Shell32.Folder;
            Shell32.FolderItem      folderItem = folder.ParseName(System.IO.Path.GetFileName(path));
            Shell32.FolderItemVerbs vs         = folderItem.Verbs();

            bool wallpaperSet = false;

            for (int i = 0; i < vs.Count; i++)
            {
                Shell32.FolderItemVerb ib = vs.Item(i);

                if (ib.Name.Contains("&b") || ib.Name.Contains("&B"))
                {
                    if (ib.Name.ToLower().Contains("background") || ib.Name.ToLower().Contains("背景"))
                    {
                        wallpaperSet = true;
                        ib.DoIt();
                    }
                }
            }

            if (wallpaperSet == false)
            {
                applyWallpaperXP(path);
            }
            else
            {
                downloadAndApplyWallpaperSucceeded();
            }
        }
Beispiel #2
0
        ///<summary>
        /// 得到控制面板中宽带连接对象
        ///</summary>
        public void SetNetworkAdapter(string adslName)
        {
            string discVerb          = "断开(&O)";
            string connVerb          = "连接(&O)";
            string network           = "网络连接";
            string networkConnection = adslName;



            Shell32.Shell  sh     = new Shell32.Shell();
            Shell32.Folder folder = sh.NameSpace(3);//Shell32.ShellSpecialFolderConstants.ssfCONTROLS
            try {
                //进入控制面板的所有选项
                foreach (Shell32.FolderItem myItem in folder.Items())
                {
                    Console.WriteLine(myItem.Name);
                    //进入网络和拔号连接
                    if (myItem.Name == network)
                    {
                        Shell32.Folder fd = (Shell32.Folder)myItem.GetFolder;
                        foreach (Shell32.FolderItem fi in fd.Items())
                        {
                            //找到本地连接
                            if (fi.Name.IndexOf(networkConnection) > -1)
                            {
                                //找本地连接的所有右键功能菜单
                                foreach (Shell32.FolderItemVerb fib in fi.Verbs())//fi.Verbs不能再线程中访问,所以在一开始就要获取连接对象
                                {
                                    if (fib.Name == discVerb)
                                    {
                                        disconnect = fib;
                                        return;
                                    }
                                    else if (fib.Name == connVerb)
                                    {
                                        connection = fib;
                                        return;
                                    }
                                }
                            }
                        }
                    }
                }
            } catch {
            }
        }
 public MenuItemShellVerb(Shell32.FolderItemVerb verb)
 {
     _verb = verb;
     //
     Text = verb.Name;
 }