Пример #1
0
        public static void IndexPrograms()
        {
            Win32[]           w = { };
            UWP.Application[] u = { };
            var t1 = Task.Run(() =>
            {
                w = Win32.All(_settings);
            });
            var t2 = Task.Run(() =>
            {
                u = UWP.All();
            });

            Task.WaitAll(t1, t2);

            var characters = w.Select(p => p.Name)
                             .Concat(w.Select(p => p.Description))
                             .Concat(u.Select(p => p.DisplayName))
                             .Concat(u.Select(p => p.Description));

            Parallel.ForEach(characters, c =>
            {
                if (!string.IsNullOrWhiteSpace(c) && Alphabet.ContainsChinese(c))
                {
                    Alphabet.PinyinComination(c);
                }
            });

            lock (IndexLock)
            {
                _win32s = w;
                _uwps   = u;
            }
        }
Пример #2
0
        public void Init(PluginInitContext context)
        {
            this.context      = context;
            controlPanelItems = ControlPanelList.Create(48);
            iconFolder        = Path.Combine(context.CurrentPluginMetadata.PluginDirectory, @"Images\ControlPanelIcons\");
            fileType          = ".bmp";

            if (!Directory.Exists(iconFolder))
            {
                Directory.CreateDirectory(iconFolder);
            }


            foreach (ControlPanelItem item in controlPanelItems)
            {
                if (!File.Exists(iconFolder + item.GUID + fileType) && item.Icon != null)
                {
                    item.Icon.ToBitmap().Save(iconFolder + item.GUID + fileType);
                }
            }

            Task.Run(() =>
            {
                var characters = controlPanelItems.Select(i => i.LocalizedString)
                                 .Concat(controlPanelItems.Select(i => i.InfoTip));

                Parallel.ForEach(characters, c =>
                {
                    if (!string.IsNullOrWhiteSpace(c) && Alphabet.ContainsChinese(c))
                    {
                        Alphabet.PinyinComination(c);
                    }
                });
            });
        }