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(); } }
/// <summary> /// 本地浏览器右键菜单“属性”条目事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void LocalPopupMenuProperty_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { const string discVerb = "属性(&R)"; Point p = this.ListViewLocal.PointToClient(new Point(menutrippoint.X, menutrippoint.Y)); string sourceFile = LocalPath + ListViewLocal.GetItemAt(p.X, p.Y).Text; FileInfo file = new FileInfo(sourceFile); Shell32.Shell shell = new Shell32.Shell(); Shell32.Folder folder = shell.NameSpace(file.DirectoryName); Shell32.FolderItem folderItem = folder.ParseName(file.Name); foreach (Shell32.FolderItemVerb Fib in folderItem.Verbs()) { if (Fib.Name == discVerb) { Fib.DoIt(); break; } } }
public override void QueryContextMenuItems(TreeViewFolderBrowserHelper helper, TreeNodePath node) { if (!EnableContextMenu) { return; } // Shell32.FolderItem fi = node.Tag as Shell32.FolderItem; if (fi == null) { return; } // foreach (Shell32.FolderItemVerb verb in fi.Verbs()) { if (verb.Name.Length == 0) { continue; } // MenuItemShellVerb item = new MenuItemShellVerb(verb); helper.TreeView.ContextMenu.MenuItems.Add(item); } }