private void OpenOfflineLogs(RibbonPage ribbonPage, string[] filenames, IAnalogyOfflineDataSource dataSource, string title = null) { offline++; UserControl offlineUC = new OfflineUCLogs(dataSource, filenames); XtraTabPage page = new XtraTabPage(); page.ShowCloseButton = DevExpress.Utils.DefaultBoolean.True; page.Tag = ribbonPage; page.Controls.Add(offlineUC); offlineUC.Dock = DockStyle.Fill; page.Text = $"{offlineTitle} #{offline}{(title == null ? "" : $" ({title})")}";
private void CreateEventLogsMenu(RibbonPage ribbonPage) { EventLogDataSource elds = new EventLogDataSource(); BarButtonItem evtxRealTime = new BarButtonItem(); evtxRealTime.Caption = "Real Time Windows Event Logs"; evtxRealTime.ItemClick += (s, be) => { UserControl windowsEventlog = new WindowsEventLog(); XtraTabPage page = new XtraTabPage(); page.ShowCloseButton = DevExpress.Utils.DefaultBoolean.True; page.Tag = ribbonPage; page.Controls.Add(windowsEventlog); windowsEventlog.Dock = DockStyle.Fill; page.Text = $"Windows Log"; xtcLogs.TabPages.Add(page); xtcLogs.SelectedTabPage = page; }; bsiWindowsEventLogs.AddItem(evtxRealTime); BarButtonItem evtxFile = new BarButtonItem(); evtxFile.Caption = "Open Event log file (*.Evtx)"; evtxFile.ItemClick += (s, be) => { OpenFileDialog openFileDialog1 = new OpenFileDialog(); openFileDialog1.Filter = "Windows Event log files (*.evtx)|*.evtx"; openFileDialog1.Title = @"Open Files"; openFileDialog1.Multiselect = true; if (openFileDialog1.ShowDialog() == DialogResult.OK) { OpenOfflineLogs(ribbonPage, openFileDialog1.FileNames, elds, "Windows Event log"); AddRecentFiles(openFileDialog1.FileNames.ToList()); } }; bsiWindowsEventLogs.AddItem(evtxFile); BarButtonItem systemLog = new BarButtonItem(); systemLog.Caption = $"Open {Environment.MachineName} System Log file"; systemLog.ItemClick += (s, be) => { string file = Path.Combine(Environment.ExpandEnvironmentVariables("%SystemRoot%"), "System32", "Winevt", "Logs", "System.evtx"); if (File.Exists(file)) { OpenOfflineLogs(ribbonPage, new[] { file }, elds, "Windows Event log"); AddRecentFiles(new List <string>() { file }); } }; bsiWindowsEventLogs.AddItem(systemLog); BarButtonItem appLog = new BarButtonItem(); appLog.Caption = $"Open {Environment.MachineName} Application Log file"; appLog.ItemClick += (s, be) => { string file = Path.Combine(Environment.ExpandEnvironmentVariables("%SystemRoot%"), "System32", "Winevt", "Logs", "Application.evtx"); if (File.Exists(file)) { OpenOfflineLogs(ribbonPage, new[] { file }, elds, "Windows Event log"); AddRecentFiles(new List <string>() { file }); } }; bsiWindowsEventLogs.AddItem(appLog); BarButtonItem secLog = new BarButtonItem(); secLog.Caption = $"Open {Environment.MachineName} Security Log file"; secLog.ItemClick += (s, be) => { string file = Path.Combine(Environment.ExpandEnvironmentVariables("%SystemRoot%"), "System32", "Winevt", "Logs", "Security.evtx"); if (File.Exists(file)) { OpenOfflineLogs(ribbonPage, new[] { file }, elds, "Windows Event log"); AddRecentFiles(new List <string>() { file }); } }; bsiWindowsEventLogs.AddItem(secLog); BarButtonItem btnFolder = new BarButtonItem(); btnFolder.Caption = $"Local Machine logs - {Environment.MachineName}"; btnFolder.ItemClick += (s, be) => { OfflineUCLogs offlineUC = new OfflineUCLogs(new EventLogDataSource()); offlineUC.SelectedPath = Path.Combine(Environment.ExpandEnvironmentVariables("%SystemRoot%"), "System32", "Winevt", "Logs"); XtraTabPage page = new XtraTabPage(); page.ShowCloseButton = DevExpress.Utils.DefaultBoolean.True; page.Controls.Add(offlineUC); offlineUC.Dock = DockStyle.Fill; page.Text = $"Local Machine logs"; xtcLogs.TabPages.Add(page); xtcLogs.SelectedTabPage = page; }; bsiWindowsEventLogs.AddItem(btnFolder); }