// TARGET:powerpnt.exe "%TEMP%\\LoginEnterprise\\loginvsi.pptx" // START_IN: ///////////// // PowerPoint Start // Workload: Activation-less Office Workloads // Version: 1.0.0 ///////////// using LoginPI.Engine.ScriptBase; using System; using System.IO; public class PowerPoint_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 PowerPoint activation-less workload."); DownloadPresentation(); Wait(waitMessageboxInSeconds, showOnScreen: true, onScreenText: "Starting PowerPoint"); Log("Starting PowerPoint."); START( mainWindowTitle: "*loginvsi*PowerPoint*", mainWindowClass: "*PPTFrameClass*", processName: "POWERPNT", timeout: 60, continueOnError: true ); Wait(globalWaitInSeconds); SkipActivationDialogs(); MainWindow.Maximize(); MainWindow.Focus(); Wait(globalWaitInSeconds); Log("PowerPoint is now ready."); } // ===================================================== // Helper: Download PPTX if missing // ===================================================== private void DownloadPresentation() { Log("Ensuring PowerPoint presentation is present."); string tempDir = Path.Combine(GetEnvironmentVariable("TEMP"), "LoginEnterprise"); if (!Directory.Exists(tempDir)) { Directory.CreateDirectory(tempDir); Log("Created directory: " + tempDir); } string pptxFile = Path.Combine(tempDir, "loginvsi.pptx"); if (!File.Exists(pptxFile)) { Wait(waitMessageboxInSeconds, showOnScreen: true, onScreenText: "Downloading presentation"); CopyFile(KnownFiles.PowerPointPresentation, pptxFile, continueOnError: true, overwrite: false); Log("Downloaded presentation: " + pptxFile); } else { Log("Presentation already exists: " + pptxFile); } } // ===================================================== // Helper: Dismiss Activation Dialogs (NUIDialog) // ===================================================== private void SkipActivationDialogs() { for (int i = 0; i < activationDialogRetryCount; i++) { var dialog = FindWindow( className: "Win32 Window:NUIDialog", processName: "POWERPNT", continueOnError: true, timeout: 3 ); if (dialog == null) break; Wait(globalWaitInSeconds, showOnScreen: true, onScreenText: "Closing activation dialog"); dialog.Close(); Log("Dismissed an activation dialog."); } } }