// ==UserScript== // @name VM Warning Dialog Script with Specific Fullscreen Button // @namespace http://tampermonkey.net/ // @version 0.6 // @description Show a warning dialog and click specific fullscreen button for VM // @match https://client.wvd.microsoft.com/arm/webclient/index.html // @grant none // ==/UserScript== (function() { 'use strict'; function debug(message) { console.log('VM Warning Script Debug: ' + message); } function clickFullscreenButton() { debug('Attempting to click fullscreen button'); // Target the specific fullscreen button based on its structure var fullscreenButton = document.querySelector('span.ms-Button-flexContainer[data-automationid="splitbuttonprimary"] i[data-icon-name="FullScreenRegular"]'); if (fullscreenButton) { // Click the parent button element, not just the icon var parentButton = fullscreenButton.closest('button'); if (parentButton) { parentButton.click(); debug('Fullscreen button clicked'); } else { debug('Parent button not found'); } } else { debug('Fullscreen button not found'); } } function showWarningDialog() { debug('Showing warning dialog'); var dialog = document.createElement('div'); dialog.id = 'vm-warning-dialog'; dialog.style.cssText = ` position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); background-color: white; padding: 20px; border: 2px solid black; z-index: 10000; text-align: center; `; dialog.innerHTML = ` <h2>Warning</h2> <p>Data is not saved after this session. Please use OneDrive to save your files.</p> <button id="okButton">OK</button> `; document.body.appendChild(dialog); document.getElementById('okButton').addEventListener('click', function() { dialog.remove(); debug('Dialog closed'); // Attempt to click the fullscreen button setTimeout(clickFullscreenButton, 1000); // Delay to ensure page is ready }); } window.addEventListener('load', showWarningDialog); // Fallback setTimeout(function() { if (!document.getElementById('vm-warning-dialog')) { debug('Dialog not shown after load event, attempting to show now'); showWarningDialog(); } }, 2000); })();