Exemple #1
0
        /// <summary>
        ///     refresh USBInfo tabpage
        /// </summary>
        private void RefreshUsbInfos()
        {
            usbInfo_TreeView.Invoke(() =>
            {
                try
                {
                    _infos = new List <UsbInfo>(UsbInfo.ReadBasicInfos());
                    usbInfo_TreeView.BeginUpdate();
                    usbInfo_TreeView.Nodes.Clear();

                    for (var i = 0; i < _infos.Count; ++i)
                    {
                        UsbInfo info        = _infos[i];
                        DateTime lastMdTime =
                            DateTimeOffset.FromUnixTimeSeconds(info.LastModified).LocalDateTime;

                        usbInfo_TreeView.Nodes.Add($"{info.Remark} ({info.VolumeLabel}) ({CalculateLastTime(lastMdTime)})");
                        usbInfo_TreeView.Nodes[i].Nodes.Add("最后修改: " + lastMdTime.ToString("yyyy-MM-dd HH:mm"));
                        usbInfo_TreeView.Nodes[i].Nodes.Add("插入次数: " + info.PlugInTimes);
                        usbInfo_TreeView.Nodes[i].Nodes.Add("白名单: " + info.Excluded);
                        usbInfo_TreeView.Nodes[i].Nodes.Add("总文件数: " + info.FileCount);
                        usbInfo_TreeView.Nodes[i].Nodes.Add("已复制文件数: " + info.CopiedFileCount);
                        usbInfo_TreeView.Nodes[i].Nodes.Add("保存路径: " + info.SavePath);
                        usbInfo_TreeView.Nodes[i].Nodes.Add("设备PNP: " + info.PnpDeviceId);
                        usbInfo_TreeView.Nodes[i].Nodes.Add("文件树");
                        foreach (var x in info.FileTreeVersions)
                        {
                            usbInfo_TreeView.Nodes[i].Nodes[7].Nodes.Add(x[..^ 2] + ":" + x[^ 2..]);
Exemple #2
0
        private void Form1_Load(object sender, EventArgs e)
        {
            Location = new Point(Screen.PrimaryScreen.WorkingArea.Width - Width,
                                 Screen.PrimaryScreen.WorkingArea.Height - Height);
            LogTextBox = logTextBox;
            _logger    = new Logger(this);
            _logger.LogC($"版本 {Version}, 由 Nutr1t07 (Nelson Xiao) 制作");

            _cfg            = Config.ParseConfig("WBAData\\config.txt", _logger);
            _infos          = new List <UsbInfo>(UsbInfo.ReadBasicInfos());
            _copier         = new Copier(_logger, ref _cfg, ref _infos);
            _autoPlay       = new AutoPlay(_logger);
            _desktopArrange = new DesktopArrange(_copier, _logger);
            _wallpaper      = new WallpaperMain(_logger, _copier);
            _recentFiles    = new List <FileWatcher.RecentFile>(FileWatcher.RecentFile.ReadRecentFiles());
            _fileWatcher    = new FileWatcher(_copier, _cfg, _logger, _recentFiles);
            _fileWatcher.RecentFileAdded += FileWatcherOnRecentFileAdded;
            _keyboardDetect = new KeyboardDetect(_cfg, _logger);


            if (!Directory.Exists("WBAData"))
            {
                Directory.CreateDirectory("WBAData");
                Directory.CreateDirectory("WBAData\\log");
            }

            if (_cfg.RefreshWallpaper)
            {
                Task.Factory.StartNew(() => _wallpaper.PickWallIfTimePermit());
            }
            if (_cfg.AutoPlayFtp)
            {
                Task.Factory.StartNew(() => new AutoPlay(_logger).CheckFtp(this));
            }
            if (_cfg.AutoPlayEnAudio)
            {
                Task.Factory.StartNew(() =>
                                      AutoPlay.CheckEnglishAudio(_cfg.AutoPlayEnAudioUnit, _cfg.AutoPlayEnAudioFileName));
            }

            Task.Factory.StartNew(() => _copier.StartCopierListen());
            Task.Factory.StartNew(() => _fileWatcher.Listen());
            _keyboardDetect.StartHook();

            InitialConfigPage();
            RefreshUsbInfos();
            InitRecentFileListViewUi();

            _copier.UsbChange += (insert, info) => RefreshUsbInfos();
        }