// TARGET:excel.exe "%TEMP%\\LoginEnterprise\\loginvsi.xlsx" // START_IN: ///////////// // Excel Start // Workload: Activation-less Office Workloads // Version: 1.0.0 ///////////// using LoginPI.Engine.ScriptBase; using System; using System.IO; public class Excel_Start_Office_Activation_less : ScriptBase { // ===================================================== // Configurable Variables // ===================================================== int globalWaitInSeconds = 3; // Wait time between actions int waitMessageboxInSeconds = 2; // Duration for onscreen wait messages int activationDialogRetryCount = 2; // How many times to attempt dismissing activation dialogs // ===================================================== // Execute Method // ===================================================== private void Execute() { Log("Preparing Excel activation-less workload."); DownloadExcelFile(); Wait(seconds: waitMessageboxInSeconds, showOnScreen: true, onScreenText: "Starting Excel"); Log("Starting Excel."); START( mainWindowTitle: "*loginvsi*Excel*", mainWindowClass: "*XLMAIN*", processName: "EXCEL", timeout: 60, continueOnError: true ); Wait(globalWaitInSeconds); SkipActivationDialogs(); MainWindow.Maximize(); MainWindow.Focus(); Wait(globalWaitInSeconds); Log("Excel is now ready."); } // ===================================================== // Helper: Download Excel file if missing // ===================================================== private void DownloadExcelFile() { Log("Ensuring Excel workbook is present."); string tempDir = Path.Combine(GetEnvironmentVariable("TEMP"), "LoginEnterprise"); if (!Directory.Exists(tempDir)) { Directory.CreateDirectory(tempDir); Log("Created directory: " + tempDir); } string excelFile = Path.Combine(tempDir, "loginvsi.xlsx"); if (!File.Exists(excelFile)) { Wait(seconds: waitMessageboxInSeconds, showOnScreen: true, onScreenText: "Downloading Excel file"); CopyFile(KnownFiles.ExcelSheet, excelFile, continueOnError: true, overwrite: false); Log("Downloaded workbook: " + excelFile); } else { Log("Workbook already exists: " + excelFile); } } // ===================================================== // Helper: Dismiss Activation Dialogs (NUIDialog) // ===================================================== private void SkipActivationDialogs() { for (int i = 0; i < activationDialogRetryCount; i++) { var dialog = FindWindow( className: "Win32 Window:NUIDialog", processName: "EXCEL", continueOnError: true, timeout: 3 ); if (dialog == null) break; Wait(globalWaitInSeconds, showOnScreen: true, onScreenText: "Closing activation dialog"); dialog.Close(); Log("Dismissed an activation dialog."); } } }