コード例 #1
0
 static Taskbar()
 {
     if (Environment.OSVersion.Version >= new Version(6, 1))
     {
         Interface = new TaskbarList3() as ITaskbarList3;
     }
 }
コード例 #2
0
        public static ulong GetProgressValue(IntPtr hwnd)
        {
            ITaskbarList3 taskbarInstance = (ITaskbarList3) new TaskbarInstance();
            var           foo             = taskbarInstance.GetProgressValue(hwnd);

            return(foo);
        }
コード例 #3
0
ファイル: AdvancedTaskbar.cs プロジェクト: pokke123/vss2git
            /// <summary>Static constructor.</summary>
            static TaskbarProgress()
            {
                object instance = new TaskbarInstance();

                taskbar = (instance as ITaskbarList3);
                active  = Environment.OSVersion.Version >= new Version(6, 1);
            }
コード例 #4
0
		static Taskbar()
		{
			if(Environment.OSVersion.Version >= new Version(6, 1))
			{
				Interface = new TaskbarList3() as ITaskbarList3;
			}
		}
コード例 #5
0
        public TaskbarItemInfo()
        {
            if (!DesignerProperties.GetIsInDesignMode(this))
            {
                ITaskbarList taskbarList = null;
                try
                {
                    taskbarList = CLSID.CoCreateInstance <ITaskbarList>(CLSID.TaskbarList);
                    taskbarList.HrInit();

                    // This QI will only work on Win7.
                    _taskbarList = taskbarList as ITaskbarList3;

                    taskbarList = null;
                }
                finally
                {
                    Utility.SafeRelease(ref taskbarList);
                }

                _overlaySize = new Size(
                    NativeMethods.GetSystemMetrics(SM.CXSMICON),
                    NativeMethods.GetSystemMetrics(SM.CYSMICON));
            }

            // Set ThumbButtons to an empty list so callers can just use the property.
            ThumbButtonInfos = new ThumbButtonInfoCollection();
        }
コード例 #6
0
ファイル: gTaskBarProgress.cs プロジェクト: Gpower2/gFTP
 private static ITaskbarList3 Instance()
 {
     if (_TaskbarInstance == null)
     {
         _TaskbarInstance = (ITaskbarList3) new TaskbarInstance();
     }
     return(_TaskbarInstance);
 }
コード例 #7
0
 public static void SetValue(IntPtr windowHandle, double progressValue, double progressMax)
 {
     if (taskbarSupported)
     {
         if (taskbarInstance == null) taskbarInstance = (ITaskbarList3)new TaskbarInstance();
         taskbarInstance.SetProgressValue(windowHandle, (ulong)progressValue, (ulong)progressMax);
     }
 }
コード例 #8
0
 public static void SetState(IntPtr windowHandle, TaskbarStates taskbarState)
 {
     taskbarInstance = (ITaskbarList3) new TaskbarInstance();
     if (taskbarSupported)
     {
         taskbarInstance.SetProgressState(windowHandle, taskbarState);
     }
 }
コード例 #9
0
 public static void SetValue(IntPtr windowHandle, double progressValue, double progressMax)
 {
     taskbarInstance = (ITaskbarList3) new TaskbarInstance();
     if (taskbarSupported)
     {
         taskbarInstance.SetProgressValue(windowHandle, (ulong)progressValue, (ulong)progressMax);
     }
 }
コード例 #10
0
 public void Dispose()
 {
     if (instance != null)
     {
         Marshal.ReleaseComObject(instance);
         instance = null;
     }
 }
コード例 #11
0
 public static void SetState(IntPtr windowHandle, TaskbarStates taskbarState)
 {
     if (taskbarSupported)
     {
         if (taskbarInstance == null) taskbarInstance = (ITaskbarList3)new TaskbarInstance();
         taskbarInstance.SetProgressState(windowHandle, taskbarState);
     }
 }
コード例 #12
0
ファイル: TaskbarHandler.cs プロジェクト: philstopford/Eto
        static TaskbarHandler()
        {
            supported = Environment.OSVersion.Version >= new Version(6, 1);

            if (supported)
            {
                instance = (ITaskbarList3) new TaskbarInstance();
            }
        }
コード例 #13
0
 private static void SetStateUnsafe(IntPtr handle, TaskbarState state)
 {
     // ReSharper disable once SuspiciousTypeConversion.Global
     if (_instance == null)
     {
         _instance = new TaskbarInstance() as ITaskbarList3;
     }
     _instance?.SetProgressState(handle, state);
 }
コード例 #14
0
 private static void SetValueUnsafe(IntPtr handle, ulong value, ulong max)
 {
     // ReSharper disable once SuspiciousTypeConversion.Global
     if (_instance == null)
     {
         _instance = new TaskbarInstance() as ITaskbarList3;
     }
     _instance?.SetProgressValue(handle, value, max);
 }
コード例 #15
0
        //mxd
        private static bool TaskBarSupported()
        {
            if (!checkperformed)
            {
                checkperformed   = true;
                taskbarsupported = true;
                try { taskbarinstance = (ITaskbarList3) new TaskbarInstance(); }
                catch { taskbarsupported = false; }
            }

            return(taskbarsupported);
        }
コード例 #16
0
 public void Dispose()
 {
     if (this.TaskBar != null)
     {
         Marshal.ReleaseComObject(this.TaskBar);
     }
     this.TaskBar = null;
     if (this.FForm != null)
     {
         this.FForm.HandleCreated -= new EventHandler(this.Form_HandleCreated);
     }
     this.FForm = null;
 }
コード例 #17
0
 /// <summary>
 /// default constructor, initializes the GUI components
 /// </summary>
 public ProgressWindow(JobTypes type)
 {
     //
     // Required for Windows Form Designer support
     //
     InitializeComponent();
     isUserClosing = true;
     if ((Environment.OSVersion.Version.Major == 6 && Environment.OSVersion.Version.Minor >= 1) ||
         Environment.OSVersion.Version.Major > 6)
     {
         taskbarProgress = (ITaskbarList3) new ProgressTaskbar();
     }
 }
コード例 #18
0
ファイル: TaskbarList.cs プロジェクト: dbremner/keepass2
		private static bool EnsureInitialized()
		{
			if(m_bInitialized) return (m_tbList != null);

			try
			{
				m_tbList = (ITaskbarList3)(new CTaskbarList());
				m_tbList.HrInit();
			}
			catch(Exception) { m_tbList = null; }

			m_bInitialized = true;
			return (m_tbList != null);
		}
コード例 #19
0
        private static bool EnsureInitialized()
        {
            if (m_bInitialized)
            {
                return(m_tbList != null);
            }

            try
            {
                m_tbList = (ITaskbarList3)(new CTaskbarList());
                m_tbList.HrInit();
            }
            catch (Exception) { m_tbList = null; }

            m_bInitialized = true;
            return(m_tbList != null);
        }
コード例 #20
0
ファイル: TaskbarUtils.cs プロジェクト: Stibenet/Inload-files
 public static void Init()
 {
     try
     {
         lock (typeof(TaskbarUtils))
         {
             if (_taskbarList == null)
             {
                 _taskbarList = (ITaskbarList3) new CTaskbarList();
                 _taskbarList.HrInit();
             }
         }
     }
     catch (InvalidCastException)
     {
         Win7TaskBarNotSupported = true;
     }
 }
コード例 #21
0
 private void InitTaskbarList()
 {
     if (Environment.OSVersion.Version.Major >= 6 && Environment.OSVersion.Version.Minor >= 1)
     {
         try
         {
             _taskbarList = (ITaskbarList3) new TaskbarList();
             _taskbarList.HrInit();
             _taskbarParent = this.Handle;
             _isWin7TaskBar = true;
         }
         catch
         {
             _taskbarList   = null;
             _taskbarParent = IntPtr.Zero;
             _isWin7TaskBar = false;
         }
     }
 }
コード例 #22
0
        static TaskbarUtils()
        {
            // Window 7 identifies itself as 6.1
            var os          = System.Environment.OSVersion;
            var isSupported = os.Version.Major > 6 || (os.Version.Major == 6 && os.Version.Minor >= 1);

            if (isSupported)
            {
                try
                {
                    TaskbarList = (ITaskbarList3) new CTaskbarList();
                    TaskbarList.HrInit(); // This method must be called before any other methods
                }
                catch
                {
                    TaskbarList = null;
                }
            }
        }
コード例 #23
0
 public TaskbarItemInfo()
 {
     if (!DesignerProperties.GetIsInDesignMode(this))
     {
         ITaskbarList taskbarList = null;
         try
         {
             taskbarList = CLSID.CoCreateInstance <ITaskbarList>("56FDF344-FD6D-11d0-958A-006097C9A090");
             taskbarList.HrInit();
             this._taskbarList = (taskbarList as ITaskbarList3);
             taskbarList       = null;
         }
         finally
         {
             Utility.SafeRelease <ITaskbarList>(ref taskbarList);
         }
         this._overlaySize = new Size((double)NativeMethods.GetSystemMetrics(SM.CXSMICON), (double)NativeMethods.GetSystemMetrics(SM.CYSMICON));
     }
     this.ThumbButtonInfos = new ThumbButtonInfoCollection();
 }
コード例 #24
0
ファイル: Win7Taskbar.cs プロジェクト: DaVinciUA/xvid4psp
        public static bool InitializeWin7Taskbar()
        {
            if (TaskbarList == null)
            {
                try
                {
                    TaskbarList = (ITaskbarList3) new CTaskbarList();
                    TaskbarList.HrInit();
                }
                catch
                {
                    if (TaskbarList != null)
                    {
                        try { Marshal.ReleaseComObject(TaskbarList); }
                        catch { }
                        finally { TaskbarList = null; }
                    }
                }
            }

            return(_IsInitialized = (TaskbarList != null));
        }
コード例 #25
0
        public TaskbarItemInfo()
        {
            if (!DesignerProperties.GetIsInDesignMode(this))
            {
                ITaskbarList taskbarList = null;
                try
                {
                    taskbarList = CLSID.CoCreateInstance <ITaskbarList>(CLSID.TaskbarList);
                    taskbarList.HrInit();

                    _taskbarList = taskbarList as ITaskbarList3;
                    taskbarList  = null;
                }
                finally
                {
                    Utility.SafeRelease(ref taskbarList);
                }
                _overlaySize = new Size(NativeMethods.GetSystemMetrics(SM.CXSMICON), NativeMethods.GetSystemMetrics(SM.CYSMICON));
            }

            ThumbButtonInfos = new ThumbButtonInfoCollection();
        }
コード例 #26
0
ファイル: Win7Taskbar.cs プロジェクト: DaVinciUA/xvid4psp
        public static void UninitializeWin7Taskbar()
        {
            //Отключаем вывод прогресса
            _IsInitialized = false;

            if (TaskbarList != null)
            {
                try
                {
                    //Сбрасываем прогресс везде где он мог быть (т.е. во всех активных окнах)
                    foreach (System.Windows.Window wnd in System.Windows.Application.Current.Windows)
                    {
                        TaskbarList.SetProgressState(new System.Windows.Interop.WindowInteropHelper(wnd).Handle, TBPF.NOPROGRESS);
                    }
                }
                catch { }

                try { Marshal.ReleaseComObject(TaskbarList); }
                catch { }
                finally { TaskbarList = null; }
            }
        }
コード例 #27
0
        public TaskbarManager()
        {
            if (!IsTaskbarSupported)
            {
                return;
            }

            ITaskbarList _taskbarList = null;

            try
            {
                _taskbarList = (ITaskbarList)Activator.CreateInstance(Type.GetTypeFromCLSID(new Guid(CLSID.TaskbarList)));
                _taskbarList.HrInit();

                // This QI will only work on Win7.
                taskbarList  = (ITaskbarList3)_taskbarList;
                _taskbarList = null;
            }
            finally
            {
                Utilities.SafeRelease(ref _taskbarList);
            }
        }
コード例 #28
0
 internal void Initialize(IntPtr windowHandle, ITaskbarList3 taskbarList)
 {
     this.windowHandle = windowHandle;
     this.taskbarList  = taskbarList;
 }
コード例 #29
0
ファイル: Win7Taskbar.cs プロジェクト: MaksHDR/xvid4psp
        public static void UninitializeWin7Taskbar()
        {
            //Отключаем вывод прогресса
            _IsInitialized = false;

            if (TaskbarList != null)
            {
                try
                {
                    //Сбрасываем прогресс везде где он мог быть (т.е. во всех активных окнах)
                    foreach (System.Windows.Window wnd in System.Windows.Application.Current.Windows)
                        TaskbarList.SetProgressState(new System.Windows.Interop.WindowInteropHelper(wnd).Handle, TBPF.NOPROGRESS);
                }
                catch { }

                try { Marshal.ReleaseComObject(TaskbarList); }
                catch { }
                finally { TaskbarList = null; }
            }
        }
コード例 #30
0
ファイル: Win7Taskbar.cs プロジェクト: MaksHDR/xvid4psp
        public static bool InitializeWin7Taskbar()
        {
            if (TaskbarList == null)
            {
                try
                {
                    TaskbarList = (ITaskbarList3)new CTaskbarList();
                    TaskbarList.HrInit();
                }
                catch
                {
                    if (TaskbarList != null)
                    {
                        try { Marshal.ReleaseComObject(TaskbarList); }
                        catch { }
                        finally { TaskbarList = null; }
                    }
                }
            }

            return (_IsInitialized = (TaskbarList != null));
        }
コード例 #31
0
ファイル: FormMain.cs プロジェクト: kwedr/acdown
		//窗体加载
		private void FormMain_Load(object sender, EventArgs e)
		{
			//禁用非Windows项(不考虑Windows版Mono)
			if (Tools.IsRunningOnMono)
			{
				tabMain.TabPages.Remove(tabFlvCombine);
				tabMain.TabPages.Remove(tabAcPlay);
				chkAutoCombine.Visible = false;
			}

			//设置窗口大小
			this.Size = CoreManager.ConfigManager.Settings.WindowSize;
			//设置窗体标题和文字
			if (!Tools.IsRunningOnMono)
			{
				this.Icon = Resources.Ac;
			}
			this.Text = Application.ProductName +
								 " v" + new Version(Application.ProductVersion).Major + "." +
								 new Version(Application.ProductVersion).Minor;
			//设置托盘文字
			notifyIcon.Text = this.Text;
			//显示托盘图标
			notifyIcon.Icon = this.Icon;
			if (Tools.IsRunningOnMono)
			{
				foreach (ToolStripItem item in notifyIcon.ContextMenuStrip.Items)
				{
					item.Font = FormBase.MonoFont;
				}
			}
			//设置刷新频率
			timer.Interval = CoreManager.ConfigManager.Settings.RefreshInfoInterval;
			
			//显示网址示例
			StringBuilder sb = new StringBuilder();
			sb.AppendLine("AcDown当前支持下载的网站:(网址举例)");
			foreach (var item in CoreManager.PluginManager.Plugins)
			{
				if (item.Feature == null)
					continue;
				if (item.Feature.ContainsKey("ExampleUrl"))
				{
					string[] tmp = (string[])item.Feature["ExampleUrl"];
					sb.AppendLine();
					foreach (var i in tmp)
					{
						sb.AppendLine(i);
					}
					sb.AppendLine();
				}
			}
			txtExample.Text = sb.ToString();
			//初始化AERO特效
			if (DwmApi.IsWindowsVistaOrHigher())
			{
				if (DwmApi.IsWindows7OrHigher())
				{
					//初始化Win7任务栏管理器
					taskbarList = (ITaskbarList3)new CTaskbarList();
					taskbarList.HrInit();
				}
				//设置提示文字
				DwmApi.SetTextBoxTipText(txtSearch.TextBox.Handle, "即时搜索");
				//设置listview效果
				DwmApi.SetListViewVisualEffect(this.lsv);
			}
			else  //如果是XP系统
			{
				txtSearch.Text = "即时搜索";
			}
			//选中下拉列表框(下载完成后)
			cboAfterComplete.SelectedIndex = 0;
			//加载留言板
			LoadFeedbackPanel();
			//检查更新
			if (CoreManager.ConfigManager.Settings.CheckUpdate)
				CheckUpdate();
			//启动自动保存线程
			CoreManager.TaskManager.StartSaveBackgroundWorker();
			//加载任务UI
			foreach (TaskInfo task in CoreManager.TaskManager.TaskInfos)
			{
				RefreshTask(new ParaRefresh(task));
			}

			//设置是否监视剪贴板
			watchClipboard = CoreManager.ConfigManager.Settings.WatchClipboard;
			//启动监视剪贴板线程
			StartWatchClipboard();
			//程序文件名中有acplay
			if (Path.GetFileNameWithoutExtension(Application.ExecutablePath)
				 .IndexOf("acplay", StringComparison.CurrentCultureIgnoreCase) >= 0)
			{
				tabMain.SelectedTab = tabAcPlay;
			}
		}
コード例 #32
0
ファイル: ASBuildNotifier.cs プロジェクト: gramcha/XFeatures
        private void InitializeTaskbarList()
        {
            ITaskbarList tempTaskbarList = null;
            try
            {
                tempTaskbarList = CLSID.CoCreateInstance<ITaskbarList>(CLSID.TaskbarList);
                tempTaskbarList.HrInit();

                // This QI will only work on Win7.
                taskbarList = tempTaskbarList as ITaskbarList3;

                tempTaskbarList = null;
            }
            finally
            {
                Utility.SafeRelease(ref tempTaskbarList);
            }
        }
コード例 #33
0
ファイル: TaskbarProgress.cs プロジェクト: yycmmc/Swiddler
 public TaskbarProgress(IntPtr hwnd)
 {
     _handle = hwnd;
     try { _taskbarList = (ITaskbarList3) new TaskbarInstance(); } catch { }
 }
コード例 #34
0
 private TaskbarProgress(Form form, ITaskbarList3 taskBar)
 {
     this.FForm = form;
     this.FForm.HandleCreated += new EventHandler(this.Form_HandleCreated);
     this.TaskBar = taskBar;
 }
コード例 #35
0
        /// <summary>
        /// Filters application's window message loop.
        /// </summary>
        /// <param name="m">Current message.</param>
        /// <returns>This implementation always returns false which allows the message pass.</returns>
        public bool PreFilterMessage(ref Message m)
        {
            // Register for the message here...
            if (this.messageIdentifier == Win32.WindowMessageNull)
            {
                this.messageIdentifier = Win32.RegisterWindowMessage(Win32.TaskbarButtonCreatedMessage);

                Win32.ChangeWindowMessageFilter(this.messageIdentifier, Win32.MessageFilterAdd);
            }

            // ...and receive the message here.
            if (m.Msg == this.messageIdentifier)
            {
                if (this.TaskbarList == null)
                {
                    this.MainWindowHandle = m.HWnd;

                    this.TaskbarList = (ITaskbarList3)Activator.CreateInstance(Type.GetTypeFromCLSID(Win32.ClassIdTaskbarList));
                }

                // When explorer.exe gets closed and re-opened all Taskbar Extensions are lost,
                // so we should restore them.
                if (!this.currentOverlayIcon.IsInvalid ||
                    !string.IsNullOrEmpty(this.currentOverlayIconAccessibilityText) ||
                    this.currentProgressState != ProgressState.NoProgress ||
                    thumbnailBarButtons.Count > 0)
                {
                    // HACK: Immediately setting Taskbar Extensions won't work. The reason is that
                    // we get the "TaskbarButtonCreatedMessage" a little earlier and the Taskbar
                    // is not ready yet.
                    // 2000 milliseconds is just an arbitrarily selected number which *worked on my machine*.
                    // Use BackgroundWorker to wait 2 seconds and tunnel the real work to UI thread.
                    var worker = new BackgroundWorker();

                    worker.WorkerReportsProgress = true;

                    worker.DoWork += delegate(object sender, DoWorkEventArgs e)
                    {
                        Thread.Sleep(2000);
                        ((BackgroundWorker)sender).ReportProgress(0);
                    };

                    worker.ProgressChanged += this.ExplorerRestarted;

                    worker.RunWorkerAsync();
                }
            }
            else if (m.Msg == Win32.WindowMessageCommand && Win32.HiWord(m.WParam) == Win32.ThumbnailBarButtonClicked)
            {
                var buttonId = Win32.LoWord(m.WParam);

                IList <ThumbnailBarButton> buttons;
                if (thumbnailBarButtons.TryGetValue(m.HWnd, out buttons))
                {
                    foreach (var b in buttons)
                    {
                        if (b.Id == buttonId)
                        {
                            b.FireClickEvent();
                            break;
                        }
                    }
                }
            }

            return(false);
        }
コード例 #36
0
 internal ThumbnailToolbar(IntPtr hwnd)
 {
     this.hwnd = hwnd;
     taskbar = (ITaskbarList3)Activator.CreateInstance (Type.GetTypeFromCLSID (CLSID.TaskbarList));
     taskbar.HrInit ();
 }
コード例 #37
0
 internal ThumbnailToolbar(IntPtr hwnd)
 {
     this.hwnd = hwnd;
     taskbar   = (ITaskbarList3)Activator.CreateInstance(Type.GetTypeFromCLSID(CLSID.TaskbarList));
     taskbar.HrInit();
 }
コード例 #38
0
        private static IntPtr WndProc(IntPtr hwnd, int msg, IntPtr wParam, IntPtr lParam, ref bool handled)
        {
            if (messageIdentifier == Win32.WindowMessageNull)
            {
                messageIdentifier = Win32.RegisterWindowMessage(Win32.TaskbarButtonCreatedMessage);

                Win32.ChangeWindowMessageFilter(messageIdentifier, Win32.MessageFilterAdd);
            }

            if (msg == messageIdentifier)
            {
                if (taskbarList == null)
                {
                    taskbarList = (ITaskbarList3)Activator.CreateInstance(Type.GetTypeFromCLSID(Win32.ClassIdTaskbarList));
                }

                Window window;

                if (windows.TryGetValue(hwnd, out window))
                {
                    var taskbarButton = window.GetValue(TaskbarExtensions.TaskbarButtonProperty) as TaskbarButton;

                    if (taskbarButton != null)
                    {
                        taskbarButton.Initialize(hwnd, taskbarList);

                        taskbarButton.AddThumbnailBarButtons();

                        // HACK: Immediately setting Taskbar Extensions won't work. The reason is that
                        // we get the "TaskbarButtonCreatedMessage" a little earlier and the Taskbar
                        // is not ready yet.
                        // 2000 milliseconds is just an arbitrarily selected number which *worked on my machine*.
                        // Use BackgroundWorker to wait 2 seconds and tunnel the real work to UI thread.
                        var worker = new BackgroundWorker();

                        worker.WorkerReportsProgress = true;

                        worker.DoWork += delegate(object sender, DoWorkEventArgs e)
                        {
                            Thread.Sleep(2000);
                            ((BackgroundWorker)sender).ReportProgress(0, taskbarButton);
                        };

                        worker.ProgressChanged += ExplorerRestarted;

                        worker.RunWorkerAsync();
                    }
                }
            }
            else if (msg == Win32.WindowMessageCommand && Win32.HiWord(wParam) == Win32.ThumbnailBarButtonClicked)
            {
                var buttonId = Win32.LoWord(wParam);

                IList <ThumbnailBarButton> buttons;
                if (TaskbarButton.ThumbnailBarButtonsCache.TryGetValue(hwnd, out buttons))
                {
                    foreach (var b in buttons)
                    {
                        if (b.Id == buttonId)
                        {
                            b.FireClickEvent();
                            break;
                        }
                    }
                }
            }

            return(IntPtr.Zero);
        }
コード例 #39
0
ファイル: FormMain.cs プロジェクト: renning22/SnifferPlayer
 //窗体加载
 private void FormMain_Load(object sender, EventArgs e)
 {
     //设置窗口大小
     this.Size = Config.setting.WindowSize;
     //设置窗体标题和文字
     this.Icon = Resources.Ac;
     this.Text = Application.ProductName +
                     " v" + new Version(Application.ProductVersion).Major + "." +
                     new Version(Application.ProductVersion).Minor;
     //设置托盘文字
     notifyIcon.Text = this.Text;
     //显示托盘图标
     notifyIcon.Icon = Resources.Ac;
     //设置刷新频率
     timer.Interval = Config.setting.RefreshInfoInterval;
     //设置是否监视剪贴板
     watchClipboard = Config.setting.WatchClipboardEnabled;
     //显示网址示例
     StringBuilder sb = new StringBuilder();
     sb.AppendLine("AcDown当前支持下载的网站:(网址举例)");
     foreach (var item in pluginMgr.Plugins)
     {
         if (item.Feature.ContainsKey("ExampleUrl"))
         {
             string[] tmp = (string[])item.Feature["ExampleUrl"];
             sb.AppendLine();
             foreach (var i in tmp)
             {
                 sb.AppendLine(i);
             }
             sb.AppendLine();
         }
     }
     txtExample.Text = sb.ToString();
     //初始化AERO特效
     if (Config.IsWindowsVistaOrHigher())
     {
         if (Config.IsWindows7OrHigher())
         {
             //初始化Win7任务栏管理器
             taskbarList = (ITaskbarList3)new CTaskbarList();
             taskbarList.HrInit();
         }
         //设置提示文字
         SendMessage(txtSearch.TextBox.Handle, 0x1501, IntPtr.Zero, System.Text.Encoding.Unicode.GetBytes(@"即时搜索"));
         //设置listview效果
         SetWindowTheme(this.lsv.Handle, "explorer", null); //Explorer style
         SendMessage(this.lsv.Handle, LVM_SETEXTENDEDLISTVIEWSTYLE, 0, LVS_EX_FULLROWSELECT + LVS_EX_DOUBLEBUFFER);  //Blue selection
     }
     else  //如果是XP系统
     {
         txtSearch.Text = "即时搜索";
     }
     //选中下拉列表框
     cboAfterComplete.SelectedIndex = 0;
     //检查更新
     if (Config.setting.EnableCheckUpdate)
         CheckUpdate();
     //启动自动保存线程
     taskMgr.StartSaveBackgroundWorker();
     //加载任务UI
     foreach (TaskInfo task in taskMgr.TaskInfos)
     {
         RefreshTask(new ParaRefresh(task));
     }
     //程序文件名中有acplay
     if (Path.GetFileNameWithoutExtension(Application.ExecutablePath)
         .IndexOf("acplay", StringComparison.CurrentCultureIgnoreCase) >= 0)
     {
         tabMain.SelectedTab = tabAcPlay;
     }
     //如果命令行中指定播放acplay
     ShowFormToFront();
 }
コード例 #40
0
 public Taskbar()
 {
     instance = (ITaskbarList3) new TaskbarInstance();
 }
コード例 #41
0
        public TaskbarItemInfo()
        {
            if (!DesignerProperties.GetIsInDesignMode(this))
            {
                ITaskbarList taskbarList = null;
                try
                {
                    taskbarList = CLSID.CoCreateInstance<ITaskbarList>(CLSID.TaskbarList);
                    taskbarList.HrInit();

                    // This QI will only work on Win7.
                    _taskbarList = taskbarList as ITaskbarList3;

                    taskbarList = null;
                }
                finally
                {
                    Utility.SafeRelease(ref taskbarList);
                }

                _overlaySize = new Size(
                    NativeMethods.GetSystemMetrics(SM.CXSMICON),
                    NativeMethods.GetSystemMetrics(SM.CYSMICON));
            }

            // Set ThumbButtons to an empty list so callers can just use the property.
            ThumbButtonInfos = new ThumbButtonInfoCollection();
        }