コード例 #1
0
        public void hideDeskband()
        {
            ITrayDeskband obj = null;
            Type          trayDeskbandType = System.Type.GetTypeFromCLSID(new Guid("E6442437-6C68-4f52-94DD-2CFED267EFB9"));

            try
            {
                obj = (ITrayDeskband)Activator.CreateInstance(trayDeskbandType);
                obj.DeskBandRegistrationChanged();
                hr = obj.HideDeskBand(ref deskbandGuid);
                if (hr != 0)
                {
                    throw new Exception("Error while trying to show deskband: " + hr);
                }
                obj.DeskBandRegistrationChanged();
            }
            catch (Exception e)
            {
            }
            finally
            {
                if (obj != null && Marshal.IsComObject(obj))
                {
                    Marshal.ReleaseComObject(obj);
                }
            }
        }
コード例 #2
0
        public static void HideBand(Type t)
        {
            ITrayDeskband csdeskband = null;

            try {
                Type trayDeskbandType = Type.GetTypeFromCLSID(new Guid("E6442437-6C68-4f52-94DD-2CFED267EFB9"));
                Guid deskbandGuid     = t.GUID;
                csdeskband = (ITrayDeskband)Activator.CreateInstance(trayDeskbandType);
                if (csdeskband != null)
                {
                    csdeskband.DeskBandRegistrationChanged();
                    if (csdeskband.IsDeskBandShown(ref deskbandGuid) == HRESULT.S_OK)
                    {
                        csdeskband.HideDeskBand(ref deskbandGuid);
                    }
                }
            }
            catch (Exception e) {
                Console.WriteLine($"Error while trying to show deskband: {e.ToString()}");
            }
            finally {
                if (csdeskband != null && Marshal.IsComObject(csdeskband))
                {
                    Marshal.ReleaseComObject(csdeskband);
                }
            }
        }
コード例 #3
0
        public static void HideDeskband()
        {
            Log.Debug("Starting hide Deskband");

            ITrayDeskband obj = null;
            Type          trayDeskbandType = Type.GetTypeFromCLSID(new Guid(GuidShell));

            try
            {
                obj = (ITrayDeskband)Activator.CreateInstance(trayDeskbandType);
                obj.DeskBandRegistrationChanged();
                var hr = obj.HideDeskBand(ref deskbandGuid);
                if (hr != 0)
                {
                    Log.Error("Error while trying to hide deskband: {0}", hr);
                    // throw new Exception("Error while trying to show deskband: " + hr);
                }

                obj.DeskBandRegistrationChanged();
            }
            catch (Exception ex)
            {
                Log.Error(ex, "Error when Hide Deskband!");
            }
            finally
            {
                if (obj != null && Marshal.IsComObject(obj))
                {
                    Marshal.ReleaseComObject(obj);
                }

                Log.Debug("Hide shell successfully..");
            }
        }
コード例 #4
0
        public int IsShellShown()
        {
            ITrayDeskband obj = null;
            Type          trayDeskbandType = System.Type.GetTypeFromCLSID(new Guid("E6442437-6C68-4f52-94DD-2CFED267EFB9"));

            obj = (ITrayDeskband)Activator.CreateInstance(trayDeskbandType);
            obj.DeskBandRegistrationChanged();
            return(obj.IsDeskBandShown(ref deskbandGuid));
        }
コード例 #5
0
ファイル: Program.cs プロジェクト: meteorsnows/PlexFlux
        private static bool Install()
        {
            var regAsm = new RegistrationServices();

            try
            {
                var assembly = LoadAssembly();

                if (regAsm.RegisterAssembly(assembly, AssemblyRegistrationFlags.SetCodeBase))
                {
                    RestartExplorer();

                    // add the deskband to taskbar
                    ITrayDeskband obj = null;
                    Type          trayDeskbandType = Type.GetTypeFromCLSID(new Guid("E6442437-6C68-4f52-94DD-2CFED267EFB9"));
                    try
                    {
                        obj = (ITrayDeskband)Activator.CreateInstance(trayDeskbandType);
                        Guid deskbandGuid = new Guid("ADAE1E11-F046-4726-9B7B-F1B78B183877");
                        obj.DeskBandRegistrationChanged();
                        var hr = obj.ShowDeskBand(ref deskbandGuid);
                        if (hr != 0)
                        {
                            throw new Exception("Error while trying to show deskband: " + hr);
                        }
                        obj.DeskBandRegistrationChanged();
                    }
                    catch
                    {
                    }
                    finally
                    {
                        if (obj != null && Marshal.IsComObject(obj))
                        {
                            Marshal.ReleaseComObject(obj);
                        }
                    }

                    Console.WriteLine("SUCCESS: DeskBand installed successfully.");
                    return(true);
                }
            }
            catch (UnauthorizedAccessException)
            {
                Console.WriteLine("ERROR: You must run this as an administrator.");
            }

            return(false);
        }
コード例 #6
0
        public static void Register(Type t)
        {
            var guid = t.GUID.ToString("B");

            try
            {
                var registryKey = Registry.ClassesRoot.CreateSubKey($@"CLSID\{guid}");
                registryKey.SetValue(null, GetToolbarName(t));

                var subKey = registryKey.CreateSubKey("Implemented Categories");
                subKey.CreateSubKey(ComponentCategoryManager.CATID_DESKBAND.ToString("B"));

                Console.WriteLine($"Succesfully registered deskband `{GetToolbarName(t)}` - GUID: {guid}");

                if (GetToolbarRequestToShow(t))
                {
                    Console.WriteLine($"Request to show deskband.");

                    // https://www.pinvoke.net/default.aspx/Interfaces.ITrayDeskband
                    ITrayDeskband csdeskband = null;
                    try
                    {
                        Type trayDeskbandType = Type.GetTypeFromCLSID(new Guid("E6442437-6C68-4f52-94DD-2CFED267EFB9"));
                        Guid deskbandGuid     = t.GUID;
                        csdeskband = (ITrayDeskband)Activator.CreateInstance(trayDeskbandType);
                        if (csdeskband != null)
                        {
                            csdeskband.DeskBandRegistrationChanged();

                            if (csdeskband.IsDeskBandShown(ref deskbandGuid) == HRESULT.S_FALSE)
                            {
                                if (csdeskband.ShowDeskBand(ref deskbandGuid) != HRESULT.S_OK)
                                {
                                    Console.WriteLine($"Error while trying to show deskband.");
                                }

                                if (csdeskband.DeskBandRegistrationChanged() == HRESULT.S_OK)
                                {
                                    Console.WriteLine($"The deskband was Succesfully shown with taskbar.{Environment.NewLine}You may see the alert notice box from explorer call.");
                                }
                            }
                        }
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine($"Error while trying to show deskband: {e.ToString()}");
                    }
                    finally
                    {
                        if (csdeskband != null && Marshal.IsComObject(csdeskband))
                        {
                            Marshal.ReleaseComObject(csdeskband);
                        }
                    }
                }
            }
            catch (Exception)
            {
                Console.Error.WriteLine($"Failed to register deskband `{GetToolbarName(t)}` - GUID: {guid}");
                throw;
            }
        }
コード例 #7
0
 public TrayDeskband()
 {
     TrayDeskbandType = Type.GetTypeFromCLSID(new Guid("E6442437-6C68-4f52-94DD-2CFED267EFB9"));
     Instance         = Activator.CreateInstance(TrayDeskbandType) as ITrayDeskband;
 }