├── README.RU.md ├── README.md └── Source ├── Apps ├── Apple Notes.bat ├── ChatGPT.bat ├── Debug mode.bat ├── Discord.bat ├── Instagram.bat ├── TV.bat ├── Twitch chat.bat ├── X.bat ├── YouTube.bat ├── YouTube.js └── tv.html ├── Config.ini ├── DevicesList.txt ├── Project1.dpr ├── Project1.dproj ├── Project1.res ├── Unit1.dfm ├── Unit1.pas ├── UserAgentsList.txt ├── clear.bat └── index.html /README.RU.md: -------------------------------------------------------------------------------- 1 | [![EN](https://user-images.githubusercontent.com/9499881/33184537-7be87e86-d096-11e7-89bb-f3286f752bc6.png)](https://github.com/r57zone/ProtonShell/blob/master/README.md) 2 | [![RU](https://user-images.githubusercontent.com/9499881/27683795-5b0fbac6-5cd8-11e7-929c-057833e01fb1.png)](https://github.com/r57zone/ProtonShell/blob/master/README.RU.md) 3 | # ProtonShell 4 | Легковесная оболочка для веб-сайтов, простых веб-приложений, работающая на базе системного браузера Microsoft Edge. На её основе можно сделать отдельное окно для сайтов, например, для: YouTube (TV), Google Docs, ChatGPT, чата Twitch, Инстаграмма, с пользовательским js скриптом или какое-то веб-приложение в своём окне. В папке `Apps` можно найти готовые параметры запуска для YouTube TV, ChatGPT, Discord, Instagram, чата Twitch, клиента X, а также простую оболочку для запуска других приложений. 5 | 6 | ## Скриншоты 7 | ![](https://github.com/user-attachments/assets/902b2e58-664d-460f-abfd-37de3c8c920b) 8 | [![](https://github.com/user-attachments/assets/3fb00a8e-e835-45fe-9fa6-46657f4c1e0b)](https://github.com/user-attachments/assets/08b09024-ff66-4e07-837c-5b4d918862d7) 9 | [![](https://github.com/user-attachments/assets/c5f0d903-e7d4-42f3-91ad-38f7b6f08d4b)](https://github.com/user-attachments/assets/22419527-2937-4bdc-a7b8-95097cf25de7) 10 | [![](https://github-production-user-asset-6210df.s3.amazonaws.com/9499881/258204596-0de84193-e560-4165-b104-69c5a0b63d34.jpg)](https://github.com/r57zone/ProtonShell/assets/9499881/6a2701eb-869e-480a-8548-628daec17fe7) 11 | [![](https://github-production-user-asset-6210df.s3.amazonaws.com/9499881/258204442-90eb9ab6-d54b-4131-a8e8-12735213935f.jpg)](https://github.com/r57zone/ProtonShell/assets/9499881/e1ff8392-ba8b-4373-a20b-0d1a29773c10) 12 | [![](https://github.com/user-attachments/assets/773978d5-e43c-4733-b05c-58fcad6c6a40)](https://github.com/user-attachments/assets/a4e77acb-1bfd-4fff-8e31-7415cd8b853a) 13 | [![](https://github.com/user-attachments/assets/1c1a5637-6383-428a-8331-84656150f294)](https://github.com/user-attachments/assets/325c1c6d-8125-4f0a-beab-696e5fe7f19f) 14 | 15 | ## Настройка 16 | 1. Установите [Edge WebView2 Runtime](https://developer.microsoft.com/en-us/microsoft-edge/webview2/). 17 | 2. Поместите файл `index.html` в папку с приложением или введите URL адрес, в конфигурационный файл. 18 | 3. Измените название, параметры окна, иконку, прокси, UserAgent и другие настройки, в конфигурационном файле `Config.ini`. 19 | 4. При необходимости измените иконку `exe`, с помощью [Resource Hacker](http://www.angusj.com/resourcehacker/) или укажите иконку в конфигурационном файле. 20 | 21 | ## Параметры запуска 22 | При использовании параметров запуска чтение конфигурационного файла не используется, исключение параметр `-c` (кастомный конфигурационный файл). 23 | 24 | `-c anotherapp.ini` - чтение конфигурационного файла, с иным названием. При использовании другие параметры запуска не используются и все параметры читаются из конфигурационного файла. 25 | 26 | `-f index.html` - путь до html файла (относительный или полный). 27 | 28 | `-a "https://youtube.com/tv"` - адрес веб-сайта. 29 | 30 | `-n "My app"` - заголовок приложения. 31 | 32 | `-i MyIcon.ico` - путь до иконки. 33 | 34 | `-u Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:131.0) Gecko/20100101 Firefox/131.0` - пользовательский агент (user agent). 35 | 36 | `-s 1.js` - пользовательский скрипт (userscript). 37 | 38 | `-w` - ширина приложения. 39 | 40 | `-h` - высота приложения. 41 | 42 | `-fullscreen` - полноэкранный режим. 43 | 44 | `-p` - изменение системной прокси на заданную (формат: IP:PORT). 45 | 46 | `-rp` - возврат прошлой системной прокси, для случаев изменения прокси на другую. 47 | 48 | `-b 3` - стиль рамок (None = `0`, Sizeable = `1`, Single = `2`, Dialog = 3, SizeToolWin = `4`, ToolWindow = `5`). 49 | 50 | `-t 50` - отступ сверху. 51 | 52 | `-l 50` - отступ справа. 53 | 54 | `-d` - включение режима отладки. 55 | 56 | ## Команды хоста 57 | `open app.exe` или `open "app.exe" -param1 -param2 "test"` - открытие приложения, можно использовать как полный путь, так и относительный. 58 | 59 | `folder Apps\` - список файлов и папок. 60 | 61 | `del 1.txt` - удаление файла. 62 | 63 | `close` - закрытие приложения. 64 | 65 | Подробнее об использовании можно посмотреть в файле `index.html`. 66 | 67 | ## Режим отладки 68 | Для быстрой отладки можно включить специальный режим, в котором доступно: изменение размеров, изменение User agent, очистка всех данных. Для включения измените параметр `Debug` на `1`. 69 | 70 | [![](https://github.com/user-attachments/assets/cae19d08-4951-44bf-8278-2edcf076eb75)](https://github.com/user-attachments/assets/5d2eafc3-2825-48c3-bc82-718ca471549d) 71 | 72 | ## Загрузка 73 | >Версия для Windows 10, 11.
74 | 75 | **[Загрузить](https://github.com/r57zone/ProtonShell/releases)** 76 | 77 | ## Обратная связь 78 | `r57zone[собака]gmail.com` -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | [![EN](https://user-images.githubusercontent.com/9499881/33184537-7be87e86-d096-11e7-89bb-f3286f752bc6.png)](https://github.com/r57zone/ProtonShell/blob/master/README.md) 2 | [![RU](https://user-images.githubusercontent.com/9499881/27683795-5b0fbac6-5cd8-11e7-929c-057833e01fb1.png)](https://github.com/r57zone/ProtonShell/blob/master/README.RU.md) 3 | ← Choose language | Выберите язык 4 | 5 | # ProtonShell 6 | A lightweight shell for websites, simple web applications, based on the Microsoft Edge system browser. Based on it, you can make a separate window for websites such as: YouTube (TV), Google Docs, ChatGPT, Twitch chat, Instagram, with custom js script or some web application in its own window. In the `Apps` folder you can find ready-made startup options for YouTube TV, ChatGPT, Discord, Instagram, Twitch chat, X client, and a simple shell to run other applications. 7 | 8 | ## Screenshots 9 | ![](https://github.com/user-attachments/assets/902b2e58-664d-460f-abfd-37de3c8c920b) 10 | [![](https://github.com/user-attachments/assets/3fb00a8e-e835-45fe-9fa6-46657f4c1e0b)](https://github.com/user-attachments/assets/08b09024-ff66-4e07-837c-5b4d918862d7) 11 | [![](https://github.com/user-attachments/assets/c5f0d903-e7d4-42f3-91ad-38f7b6f08d4b)](https://github.com/user-attachments/assets/22419527-2937-4bdc-a7b8-95097cf25de7) 12 | [![](https://github-production-user-asset-6210df.s3.amazonaws.com/9499881/258204596-0de84193-e560-4165-b104-69c5a0b63d34.jpg)](https://github.com/r57zone/ProtonShell/assets/9499881/6a2701eb-869e-480a-8548-628daec17fe7) 13 | [![](https://github-production-user-asset-6210df.s3.amazonaws.com/9499881/258204442-90eb9ab6-d54b-4131-a8e8-12735213935f.jpg)](https://github.com/r57zone/ProtonShell/assets/9499881/e1ff8392-ba8b-4373-a20b-0d1a29773c10) 14 | [![](https://github.com/user-attachments/assets/773978d5-e43c-4733-b05c-58fcad6c6a40)](https://github.com/user-attachments/assets/a4e77acb-1bfd-4fff-8e31-7415cd8b853a) 15 | [![](https://github.com/user-attachments/assets/1c1a5637-6383-428a-8331-84656150f294)](https://github.com/user-attachments/assets/325c1c6d-8125-4f0a-beab-696e5fe7f19f) 16 | 17 | ## Setup 18 | 1. Install [Edge WebView2 Runtime](https://developer.microsoft.com/en-us/microsoft-edge/webview2/). 19 | 2. Place the `index.html` file in the application folder or enter the URL address, in the configuration file. 20 | 3. Change the name, window parameters, icon, proxy, UserAgent and other settings, in the `Config.ini` configuration file. 21 | 4. If necessary, change the `exe` icon, using [Resource Hacker](http://www.angusj.com/resourcehacker/) or specify the icon in the configuration file. 22 | 23 | ## Launch options 24 | When using startup parameters, reading the configuration file is not used, except for the `-c` parameter (custom configuration file). 25 | 26 | `-c anotherapp.ini` - read configuration file, with a different name. When used, other startup parameters are not used and all parameters are read from the configuration file. 27 | 28 | `-f index.html` - the path to the html file (relative or full). 29 | 30 | `-a “https://youtube.com/tv”` - the web site address. 31 | 32 | `-n “My app”` - the title of the application. 33 | 34 | `-i MyIcon.ico` - path to the icon. 35 | 36 | `-u Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:131.0) Gecko/20100101 Firefox/131.0` - user agent. 37 | 38 | `-s 1.js` - user script (userscript). 39 | 40 | `-w` - width of the application. 41 | 42 | `-h` - height of the application. 43 | 44 | `-fullscreen` - fullscreen mode. 45 | 46 | `-p` - change system proxy to the specified one (format: IP:PORT). 47 | 48 | `-rp` - return past system proxy, for cases of changing proxy to another one. 49 | 50 | `-b 3` - frame style (None = `0`, Sizeable = `1`, Single = `2`, Dialog = 3, SizeToolWin = `4`, ToolWindow = `5`). 51 | 52 | `-t 50` - indent from the top. 53 | 54 | `-l 50` - indent to the right. 55 | 56 | `-d` - enable debugging mode. 57 | 58 | ## Host Commands 59 | 60 | `open app.exe` or `open "app.exe" -param1 -param2 "test"` - open the application, you can use both full path and relative path. 61 | 62 | `folder Apps\` - list of files and folders. 63 | 64 | `del 1.txt` - delete file. 65 | 66 | `close` - close the application. 67 | 68 | Details on usage can be found in the `index.html` file. 69 | 70 | ## Debug mode 71 | For fast debugging you can enable a special mode in which the following is available: resizing, changing User agent, clearing all data. To enable it, change the `Debug` parameter to `1`. 72 | 73 | [![](https://github.com/user-attachments/assets/c71837e8-9097-438f-8e15-93efc42b65d3)](https://github.com/user-attachments/assets/e2e88215-3e52-46dd-b24a-42eb6bfdc3e7) 74 | 75 | ## Download 76 | >Version for Windows 10, 11.
77 | 78 | **[Download](https://github.com/r57zone/ProtonShell/releases)** 79 | 80 | ## Feedback 81 | `r57zone[at]gmail.com` -------------------------------------------------------------------------------- /Source/Apps/Apple Notes.bat: -------------------------------------------------------------------------------- 1 | cmd /d /c start "" /B "..\ProtonShell.exe" -a "https://www.icloud.com/notes/" -n "Notes" -w 720 -h 480 -b 2" 2 | -------------------------------------------------------------------------------- /Source/Apps/ChatGPT.bat: -------------------------------------------------------------------------------- 1 | cmd /d /c start "" /B "..\ProtonShell.exe" -a "https://chatgpt.com" -n "ChatGPT"" 2 | -------------------------------------------------------------------------------- /Source/Apps/Debug mode.bat: -------------------------------------------------------------------------------- 1 | cmd /d /c start "" /B "..\ProtonShell.exe" -a "https://google.com" -n "Google" -d" 2 | -------------------------------------------------------------------------------- /Source/Apps/Discord.bat: -------------------------------------------------------------------------------- 1 | cmd /d /c start "" /B "..\ProtonShell.exe" -a "https://discord.com" -n "Discord" -iw" 2 | -------------------------------------------------------------------------------- /Source/Apps/Instagram.bat: -------------------------------------------------------------------------------- 1 | cmd /d /c start "" /B "..\ProtonShell.exe" -a "https://instagram.com" -n "Instagram" -w 360 -h 640 -u "Instagram 343.0.0.33.101 Android (34/14; 383dpi; 1080x2145; samsung; SM-A156M; a15x; mt6835; pt_BR; 629710169)"" 2 | -------------------------------------------------------------------------------- /Source/Apps/TV.bat: -------------------------------------------------------------------------------- 1 | cmd /d /c start "" /B "..\ProtonShell.exe" -f "Apps\tv.html" -n "TV UI" -fullscreen" 2 | -------------------------------------------------------------------------------- /Source/Apps/Twitch chat.bat: -------------------------------------------------------------------------------- 1 | cmd /d /c start "" /B "..\ProtonShell.exe" -a "https://www.twitch.tv/popout/residentevil/chat" -n "Twitch chat" -w 360 -h 640 -iw" 2 | -------------------------------------------------------------------------------- /Source/Apps/X.bat: -------------------------------------------------------------------------------- 1 | cmd /d /c start "" /B "..\ProtonShell.exe" -a "https://x.com" -n "X" -w 480 -h 640" 2 | -------------------------------------------------------------------------------- /Source/Apps/YouTube.bat: -------------------------------------------------------------------------------- 1 | cmd /d /c start "" /B "..\ProtonShell.exe" -a "https://youtube.com/tv" -u "Roku/DVP-14.0 (14.0.4.12221-CG)" -n "YouTube on TV" -fullscreen -s "YouTube.js"" 2 | -------------------------------------------------------------------------------- /Source/Apps/YouTube.js: -------------------------------------------------------------------------------- 1 | // Функция для поиска кнопки и добавления слушателя событий 2 | function trackButton() { 3 | // Получаем все кнопки с указанным классом 4 | const buttons = document.querySelectorAll('.ytlr-button--large-shape'); 5 | 6 | if (buttons.length > 1) { // Проверяем, есть ли хотя бы две кнопки 7 | const button = buttons[1]; // Выбираем вторую кнопку (индекс 1) 8 | 9 | //console.log('Вторая кнопка найдена, создаем дубликат.'); 10 | 11 | // Создаем дубликат кнопки 12 | const newButton = button.cloneNode(true); // Клонируем кнопку, включая ее содержимое и атрибуты 13 | 14 | // Удаляем оригинальную кнопку 15 | const parent = button.parentNode; // Получаем родительский элемент 16 | if (parent) { 17 | parent.removeChild(button); // Удаляем оригинальную кнопку 18 | 19 | // Убираем aria-hidden у новой кнопки, чтобы она была доступна 20 | newButton.removeAttribute('aria-hidden'); // Удаляем атрибут aria-hidden 21 | newButton.setAttribute('tabindex', '0'); // Добавляем tabindex, чтобы кнопка могла получать фокус 22 | 23 | // Добавляем новый элемент на место оригинала 24 | newButton.addEventListener('click', function(event) { 25 | window.chrome.webview.postMessage('close'); 26 | //alert('Кнопка нажата!'); // Показываем алерт 27 | //console.log('Кнопка нажата:', event); 28 | //console.dir(event.target); 29 | }); 30 | 31 | // Вставляем дубликат в то же место 32 | parent.insertBefore(newButton, button.nextSibling); // Вставляем новый элемент после оригинала 33 | //console.log('Дубликат второй кнопки добавлен с обработчиком клика.'); 34 | 35 | // Устанавливаем флаг, чтобы избежать повторной обработки 36 | // buttonProcessed = true; // Убираем этот флаг, чтобы кнопка могла заменяться повторно 37 | 38 | // Проверяем доступность новой кнопки 39 | //console.log('Новая кнопка:', newButton); 40 | } else { 41 | //console.error('Родительский элемент не найден.'); // Если родителя нет, выводим сообщение об ошибке 42 | } 43 | } else { 44 | //console.log('Недостаточно кнопок. Попробуем снова через 1 секунду.'); 45 | } 46 | } 47 | 48 | // Дожидаемся полной загрузки документа 49 | //console.log('Документ загружен, ищем кнопки...'); 50 | 51 | // Пробуем сразу найти кнопки 52 | trackButton(); 53 | 54 | // Если кнопки не найдены сразу, ищем их периодически 55 | const interval = setInterval(() => { 56 | trackButton(); // Теперь просто вызываем функцию 57 | }, 1000); // Проверяем каждые 1000 миллисекунд (1 секунда) 58 | -------------------------------------------------------------------------------- /Source/Apps/tv.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | TV UI 7 | 52 | 141 | 142 | 143 |
144 | 145 | 146 | -------------------------------------------------------------------------------- /Source/Config.ini: -------------------------------------------------------------------------------- 1 | # https://github.com/r57zone/ProtonShell 2 | 3 | [Main] 4 | # Clear the value of "File" if you want to load the website. 5 | File=index.html 6 | UserAgent= 7 | URL=https://google.ru 8 | # Opening links with "_blank" attribute in external browsers 9 | OpenExternalLinks=1 10 | UserScript= 11 | # Change system proxy while using the app 12 | SystemProxy= 13 | # Return to previous system proxy after closing the app (if you use proxy), 1 - on, 0 - off 14 | ReturnPreviousProxy=0 15 | # Debug menu, 1 - on, 0 - off 16 | Debug=0 17 | 18 | [Window] 19 | Title=Test App 20 | IconPath= 21 | Width=640 22 | Height=480 23 | SaveSize=0 24 | 25 | # None = 0, Sizeable = 1, Single = 2, Dialog = 3, SizeToolWin = 4, ToolWindow = 5 26 | BorderStyle=1 27 | # 1 - on, 0 - off 28 | HideMaximize=0 29 | 30 | # Normal = 0, Maximized = 1, FullScreen = 2 31 | WindowState=0 32 | SaveState=0 33 | StayOnTop=0 34 | 35 | # Position 36 | Top= 37 | Left= 38 | SavePos=0 -------------------------------------------------------------------------------- /Source/DevicesList.txt: -------------------------------------------------------------------------------- 1 | Default (640x480) 2 | Galaxy S4 (1080x1920) 3 | Galaxy S20/S21 (1440x3200) 4 | Galaxy Note 10/20 (1440x3040) 5 | Pixel 4/5 (1080x2280) 6 | Pixel 6/7 (1080x2400) 7 | OnePlus 8/9 (1080x2400) 8 | iPhone 5/5S/SE (320x568) 9 | iPhone 6/6S/7/8 (750x1334) 10 | iPhone X/XS/11 Pro (1125x2436) 11 | iPhone 11/11 Pro Max/12/12 Pro (1284x2778) 12 | iPad 1/2 (768x1024) 13 | iPad Mini (768x1024) 14 | iPad Pro 11 (834x1194) 15 | iPad Pro 12.9 (1648x2368) -------------------------------------------------------------------------------- /Source/Project1.dpr: -------------------------------------------------------------------------------- 1 | program Project1; 2 | 3 | uses 4 | Vcl.Forms, 5 | Unit1 in 'Unit1.pas' {Main}; 6 | 7 | {$R *.res} 8 | 9 | begin 10 | Application.Initialize; 11 | Application.MainFormOnTaskbar := True; 12 | Application.CreateForm(TMain, Main); 13 | Application.Run; 14 | end. 15 | -------------------------------------------------------------------------------- /Source/Project1.dproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | {7DB7F34E-9163-46C2-AF23-011252D9DF0C} 4 | 19.5 5 | VCL 6 | True 7 | Release 8 | Win32 9 | 1 10 | Application 11 | Project1.dpr 12 | 13 | 14 | true 15 | 16 | 17 | true 18 | Base 19 | true 20 | 21 | 22 | true 23 | Base 24 | true 25 | 26 | 27 | true 28 | Base 29 | true 30 | 31 | 32 | true 33 | Cfg_1 34 | true 35 | true 36 | 37 | 38 | true 39 | Base 40 | true 41 | 42 | 43 | true 44 | Cfg_2 45 | true 46 | true 47 | 48 | 49 | .\$(Platform)\$(Config) 50 | .\$(Platform)\$(Config) 51 | false 52 | false 53 | false 54 | false 55 | false 56 | System;Xml;Data;Datasnap;Web;Soap;Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;$(DCC_Namespace) 57 | $(BDS)\bin\delphi_PROJECTICON.ico 58 | $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_44.png 59 | $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_150.png 60 | Project1 61 | 62 | 63 | DBXSqliteDriver;IndyIPCommon;RESTComponents;bindcompdbx;DBXInterBaseDriver;vcl;IndyIPServer;vclactnband;vclFireDAC;IndySystem;bindcompvclsmp;tethering;svnui;bindcompvclwinx;dsnapcon;FireDACADSDriver;FireDACMSAccDriver;fmxFireDAC;vclimg;FireDAC;vcltouch;vcldb;bindcompfmx;svn;FireDACSqliteDriver;FireDACPgDriver;inetdb;soaprtl;DbxCommonDriver;fmx;FireDACIBDriver;fmxdae;xmlrtl;soapmidas;vcledge;fmxobj;vclwinx;rtl;DbxClientDriver;CustomIPTransport;vcldsnap;dbexpress;IndyCore;vclx;bindcomp;appanalytics;dsnap;FireDACCommon;IndyIPClient;bindcompvcl;RESTBackendComponents;VCLRESTComponents;soapserver;dbxcds;VclSmp;adortl;vclie;bindengine;DBXMySQLDriver;CloudService;dsnapxml;FireDACMySQLDriver;dbrtl;IndyProtocols;inetdbxpress;FireDACCommonODBC;FireDACCommonDriver;inet;fmxase;$(DCC_UsePackage) 64 | Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace) 65 | Debug 66 | true 67 | CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments= 68 | 1033 69 | $(BDS)\bin\default_app.manifest 70 | 71 | 72 | DBXSqliteDriver;IndyIPCommon;RESTComponents;bindcompdbx;DBXInterBaseDriver;vcl;IndyIPServer;vclactnband;vclFireDAC;IndySystem;bindcompvclsmp;tethering;bindcompvclwinx;dsnapcon;FireDACADSDriver;FireDACMSAccDriver;fmxFireDAC;vclimg;FireDAC;vcltouch;vcldb;bindcompfmx;FireDACSqliteDriver;FireDACPgDriver;inetdb;soaprtl;DbxCommonDriver;fmx;FireDACIBDriver;fmxdae;xmlrtl;soapmidas;vcledge;fmxobj;vclwinx;rtl;DbxClientDriver;CustomIPTransport;vcldsnap;dbexpress;IndyCore;vclx;bindcomp;appanalytics;dsnap;FireDACCommon;IndyIPClient;bindcompvcl;RESTBackendComponents;VCLRESTComponents;soapserver;dbxcds;VclSmp;adortl;vclie;bindengine;DBXMySQLDriver;CloudService;dsnapxml;FireDACMySQLDriver;dbrtl;IndyProtocols;inetdbxpress;FireDACCommonODBC;FireDACCommonDriver;inet;fmxase;$(DCC_UsePackage) 73 | 74 | 75 | DEBUG;$(DCC_Define) 76 | true 77 | false 78 | true 79 | true 80 | true 81 | 82 | 83 | false 84 | true 85 | PerMonitorV2 86 | 87 | 88 | false 89 | RELEASE;$(DCC_Define) 90 | 0 91 | 0 92 | 93 | 94 | PerMonitorV2 95 | true 96 | 1033 97 | CompanyName=r57zone;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments= 98 | 99 | 100 | 101 | MainSource 102 | 103 | 104 |
Main
105 | dfm 106 |
107 | 108 | Base 109 | 110 | 111 | Cfg_1 112 | Base 113 | 114 | 115 | Cfg_2 116 | Base 117 | 118 |
119 | 120 | Delphi.Personality.12 121 | Application 122 | 123 | 124 | 125 | Project1.dpr 126 | 127 | 128 | Microsoft Office 2000 Sample Automation Server Wrapper Components 129 | Microsoft Office XP Sample Automation Server Wrapper Components 130 | 131 | 132 | 133 | 134 | 135 | 136 | 1 137 | 138 | 139 | Contents\MacOS 140 | 1 141 | 142 | 143 | 0 144 | 145 | 146 | 147 | 148 | classes 149 | 64 150 | 151 | 152 | classes 153 | 64 154 | 155 | 156 | 157 | 158 | res\xml 159 | 1 160 | 161 | 162 | res\xml 163 | 1 164 | 165 | 166 | 167 | 168 | library\lib\armeabi-v7a 169 | 1 170 | 171 | 172 | 173 | 174 | library\lib\armeabi 175 | 1 176 | 177 | 178 | library\lib\armeabi 179 | 1 180 | 181 | 182 | 183 | 184 | library\lib\armeabi-v7a 185 | 1 186 | 187 | 188 | 189 | 190 | library\lib\mips 191 | 1 192 | 193 | 194 | library\lib\mips 195 | 1 196 | 197 | 198 | 199 | 200 | library\lib\armeabi-v7a 201 | 1 202 | 203 | 204 | library\lib\arm64-v8a 205 | 1 206 | 207 | 208 | 209 | 210 | library\lib\armeabi-v7a 211 | 1 212 | 213 | 214 | 215 | 216 | res\drawable 217 | 1 218 | 219 | 220 | res\drawable 221 | 1 222 | 223 | 224 | 225 | 226 | res\values 227 | 1 228 | 229 | 230 | res\values 231 | 1 232 | 233 | 234 | 235 | 236 | res\values-v21 237 | 1 238 | 239 | 240 | res\values-v21 241 | 1 242 | 243 | 244 | 245 | 246 | res\values 247 | 1 248 | 249 | 250 | res\values 251 | 1 252 | 253 | 254 | 255 | 256 | res\drawable 257 | 1 258 | 259 | 260 | res\drawable 261 | 1 262 | 263 | 264 | 265 | 266 | res\drawable-xxhdpi 267 | 1 268 | 269 | 270 | res\drawable-xxhdpi 271 | 1 272 | 273 | 274 | 275 | 276 | res\drawable-xxxhdpi 277 | 1 278 | 279 | 280 | res\drawable-xxxhdpi 281 | 1 282 | 283 | 284 | 285 | 286 | res\drawable-ldpi 287 | 1 288 | 289 | 290 | res\drawable-ldpi 291 | 1 292 | 293 | 294 | 295 | 296 | res\drawable-mdpi 297 | 1 298 | 299 | 300 | res\drawable-mdpi 301 | 1 302 | 303 | 304 | 305 | 306 | res\drawable-hdpi 307 | 1 308 | 309 | 310 | res\drawable-hdpi 311 | 1 312 | 313 | 314 | 315 | 316 | res\drawable-xhdpi 317 | 1 318 | 319 | 320 | res\drawable-xhdpi 321 | 1 322 | 323 | 324 | 325 | 326 | res\drawable-mdpi 327 | 1 328 | 329 | 330 | res\drawable-mdpi 331 | 1 332 | 333 | 334 | 335 | 336 | res\drawable-hdpi 337 | 1 338 | 339 | 340 | res\drawable-hdpi 341 | 1 342 | 343 | 344 | 345 | 346 | res\drawable-xhdpi 347 | 1 348 | 349 | 350 | res\drawable-xhdpi 351 | 1 352 | 353 | 354 | 355 | 356 | res\drawable-xxhdpi 357 | 1 358 | 359 | 360 | res\drawable-xxhdpi 361 | 1 362 | 363 | 364 | 365 | 366 | res\drawable-xxxhdpi 367 | 1 368 | 369 | 370 | res\drawable-xxxhdpi 371 | 1 372 | 373 | 374 | 375 | 376 | res\drawable-small 377 | 1 378 | 379 | 380 | res\drawable-small 381 | 1 382 | 383 | 384 | 385 | 386 | res\drawable-normal 387 | 1 388 | 389 | 390 | res\drawable-normal 391 | 1 392 | 393 | 394 | 395 | 396 | res\drawable-large 397 | 1 398 | 399 | 400 | res\drawable-large 401 | 1 402 | 403 | 404 | 405 | 406 | res\drawable-xlarge 407 | 1 408 | 409 | 410 | res\drawable-xlarge 411 | 1 412 | 413 | 414 | 415 | 416 | res\values 417 | 1 418 | 419 | 420 | res\values 421 | 1 422 | 423 | 424 | 425 | 426 | 1 427 | 428 | 429 | Contents\MacOS 430 | 1 431 | 432 | 433 | 0 434 | 435 | 436 | 437 | 438 | Contents\MacOS 439 | 1 440 | .framework 441 | 442 | 443 | Contents\MacOS 444 | 1 445 | .framework 446 | 447 | 448 | Contents\MacOS 449 | 1 450 | .framework 451 | 452 | 453 | 0 454 | 455 | 456 | 457 | 458 | 1 459 | .dylib 460 | 461 | 462 | 1 463 | .dylib 464 | 465 | 466 | 1 467 | .dylib 468 | 469 | 470 | Contents\MacOS 471 | 1 472 | .dylib 473 | 474 | 475 | Contents\MacOS 476 | 1 477 | .dylib 478 | 479 | 480 | Contents\MacOS 481 | 1 482 | .dylib 483 | 484 | 485 | 0 486 | .dll;.bpl 487 | 488 | 489 | 490 | 491 | 1 492 | .dylib 493 | 494 | 495 | 1 496 | .dylib 497 | 498 | 499 | 1 500 | .dylib 501 | 502 | 503 | Contents\MacOS 504 | 1 505 | .dylib 506 | 507 | 508 | Contents\MacOS 509 | 1 510 | .dylib 511 | 512 | 513 | Contents\MacOS 514 | 1 515 | .dylib 516 | 517 | 518 | 0 519 | .bpl 520 | 521 | 522 | 523 | 524 | 0 525 | 526 | 527 | 0 528 | 529 | 530 | 0 531 | 532 | 533 | 0 534 | 535 | 536 | 0 537 | 538 | 539 | Contents\Resources\StartUp\ 540 | 0 541 | 542 | 543 | Contents\Resources\StartUp\ 544 | 0 545 | 546 | 547 | Contents\Resources\StartUp\ 548 | 0 549 | 550 | 551 | 0 552 | 553 | 554 | 555 | 556 | 1 557 | 558 | 559 | 1 560 | 561 | 562 | 563 | 564 | ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 565 | 1 566 | 567 | 568 | ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 569 | 1 570 | 571 | 572 | 573 | 574 | ..\ 575 | 1 576 | 577 | 578 | ..\ 579 | 1 580 | 581 | 582 | ..\ 583 | 1 584 | 585 | 586 | 587 | 588 | Contents 589 | 1 590 | 591 | 592 | Contents 593 | 1 594 | 595 | 596 | Contents 597 | 1 598 | 599 | 600 | 601 | 602 | Contents\Resources 603 | 1 604 | 605 | 606 | Contents\Resources 607 | 1 608 | 609 | 610 | Contents\Resources 611 | 1 612 | 613 | 614 | 615 | 616 | library\lib\armeabi-v7a 617 | 1 618 | 619 | 620 | library\lib\arm64-v8a 621 | 1 622 | 623 | 624 | 1 625 | 626 | 627 | 1 628 | 629 | 630 | 1 631 | 632 | 633 | 1 634 | 635 | 636 | Contents\MacOS 637 | 1 638 | 639 | 640 | Contents\MacOS 641 | 1 642 | 643 | 644 | Contents\MacOS 645 | 1 646 | 647 | 648 | 0 649 | 650 | 651 | 652 | 653 | library\lib\armeabi-v7a 654 | 1 655 | 656 | 657 | 658 | 659 | 1 660 | 661 | 662 | 1 663 | 664 | 665 | 666 | 667 | ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 668 | 1 669 | 670 | 671 | ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 672 | 1 673 | 674 | 675 | ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 676 | 1 677 | 678 | 679 | 680 | 681 | ..\ 682 | 1 683 | 684 | 685 | ..\ 686 | 1 687 | 688 | 689 | ..\ 690 | 1 691 | 692 | 693 | 694 | 695 | 1 696 | 697 | 698 | 1 699 | 700 | 701 | 1 702 | 703 | 704 | 705 | 706 | ..\$(PROJECTNAME).launchscreen 707 | 64 708 | 709 | 710 | ..\$(PROJECTNAME).launchscreen 711 | 64 712 | 713 | 714 | 715 | 716 | 1 717 | 718 | 719 | 1 720 | 721 | 722 | 1 723 | 724 | 725 | 726 | 727 | Assets 728 | 1 729 | 730 | 731 | Assets 732 | 1 733 | 734 | 735 | 736 | 737 | Assets 738 | 1 739 | 740 | 741 | Assets 742 | 1 743 | 744 | 745 | 746 | 747 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 748 | 1 749 | 750 | 751 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 752 | 1 753 | 754 | 755 | 756 | 757 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 758 | 1 759 | 760 | 761 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 762 | 1 763 | 764 | 765 | 766 | 767 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 768 | 1 769 | 770 | 771 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 772 | 1 773 | 774 | 775 | 776 | 777 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 778 | 1 779 | 780 | 781 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 782 | 1 783 | 784 | 785 | 786 | 787 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 788 | 1 789 | 790 | 791 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 792 | 1 793 | 794 | 795 | 796 | 797 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 798 | 1 799 | 800 | 801 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 802 | 1 803 | 804 | 805 | 806 | 807 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 808 | 1 809 | 810 | 811 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 812 | 1 813 | 814 | 815 | 816 | 817 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 818 | 1 819 | 820 | 821 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 822 | 1 823 | 824 | 825 | 826 | 827 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 828 | 1 829 | 830 | 831 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 832 | 1 833 | 834 | 835 | 836 | 837 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 838 | 1 839 | 840 | 841 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 842 | 1 843 | 844 | 845 | 846 | 847 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 848 | 1 849 | 850 | 851 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 852 | 1 853 | 854 | 855 | 856 | 857 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 858 | 1 859 | 860 | 861 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 862 | 1 863 | 864 | 865 | 866 | 867 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 868 | 1 869 | 870 | 871 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 872 | 1 873 | 874 | 875 | 876 | 877 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 878 | 1 879 | 880 | 881 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 882 | 1 883 | 884 | 885 | 886 | 887 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 888 | 1 889 | 890 | 891 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 892 | 1 893 | 894 | 895 | 896 | 897 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 898 | 1 899 | 900 | 901 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 902 | 1 903 | 904 | 905 | 906 | 907 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 908 | 1 909 | 910 | 911 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 912 | 1 913 | 914 | 915 | 916 | 917 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 918 | 1 919 | 920 | 921 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 922 | 1 923 | 924 | 925 | 926 | 927 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 928 | 1 929 | 930 | 931 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 932 | 1 933 | 934 | 935 | 936 | 937 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 938 | 1 939 | 940 | 941 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 942 | 1 943 | 944 | 945 | 946 | 947 | 948 | 949 | 950 | 951 | 952 | 953 | 954 | 955 | 956 | 957 | 958 | 959 | True 960 | False 961 | 962 | 963 | 12 964 | 965 | 966 | 967 | 968 |
969 | -------------------------------------------------------------------------------- /Source/Project1.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r57zone/ProtonShell/0944118c27a0aae7be0fd0746f111e25d902070e/Source/Project1.res -------------------------------------------------------------------------------- /Source/Unit1.dfm: -------------------------------------------------------------------------------- 1 | object Main: TMain 2 | Left = 0 3 | Top = 0 4 | Caption = 'Main' 5 | ClientHeight = 480 6 | ClientWidth = 640 7 | Color = clBtnFace 8 | Font.Charset = DEFAULT_CHARSET 9 | Font.Color = clWindowText 10 | Font.Height = -11 11 | Font.Name = 'Tahoma' 12 | Font.Style = [] 13 | Position = poDefault 14 | OnClose = FormClose 15 | OnCreate = FormCreate 16 | OnDestroy = FormDestroy 17 | OnResize = FormResize 18 | TextHeight = 13 19 | object EdgeBrowser: TEdgeBrowser 20 | Left = 0 21 | Top = 113 22 | Width = 640 23 | Height = 367 24 | Align = alClient 25 | TabOrder = 0 26 | UserDataFolder = '%LOCALAPPDATA%\bds.exe.WebView2' 27 | OnCreateWebViewCompleted = EdgeBrowserCreateWebViewCompleted 28 | OnNavigationCompleted = EdgeBrowserNavigationCompleted 29 | OnNewWindowRequested = EdgeBrowserNewWindowRequested 30 | OnWebMessageReceived = EdgeBrowserWebMessageReceived 31 | ExplicitWidth = 636 32 | ExplicitHeight = 366 33 | end 34 | object DebugPanel: TPanel 35 | Left = 0 36 | Top = 0 37 | Width = 640 38 | Height = 113 39 | Align = alTop 40 | TabOrder = 1 41 | Visible = False 42 | ExplicitWidth = 636 43 | object PanelTools: TPanel 44 | Left = 183 45 | Top = 0 46 | Width = 288 47 | Height = 113 48 | BevelOuter = bvNone 49 | TabOrder = 0 50 | object ResolutionLbl: TLabel 51 | Left = 9 52 | Top = 93 53 | Width = 75 54 | Height = 13 55 | Caption = 'Resolution: 0x0' 56 | end 57 | object LeftBtn: TButton 58 | Left = 7 59 | Top = 7 60 | Width = 25 61 | Height = 25 62 | Caption = #8592 63 | Font.Charset = DEFAULT_CHARSET 64 | Font.Color = clWindowText 65 | Font.Height = -11 66 | Font.Name = 'Tahoma' 67 | Font.Style = [] 68 | ParentFont = False 69 | TabOrder = 0 70 | OnClick = LeftBtnClick 71 | end 72 | object RightBtn: TButton 73 | Left = 37 74 | Top = 7 75 | Width = 25 76 | Height = 25 77 | Caption = #8594 78 | Font.Charset = DEFAULT_CHARSET 79 | Font.Color = clWindowText 80 | Font.Height = -11 81 | Font.Name = 'Tahoma' 82 | Font.Style = [] 83 | ParentFont = False 84 | TabOrder = 1 85 | OnClick = RightBtnClick 86 | end 87 | object RefreshBtn: TButton 88 | Left = 67 89 | Top = 7 90 | Width = 25 91 | Height = 25 92 | Caption = #8635 93 | Font.Charset = DEFAULT_CHARSET 94 | Font.Color = clWindowText 95 | Font.Height = -11 96 | Font.Name = 'Tahoma' 97 | Font.Style = [] 98 | ParentFont = False 99 | TabOrder = 2 100 | OnClick = RefreshBtnClick 101 | end 102 | object HomeBtn: TButton 103 | Left = 97 104 | Top = 7 105 | Width = 25 106 | Height = 25 107 | Caption = #55356#57312 108 | Font.Charset = DEFAULT_CHARSET 109 | Font.Color = clWindowText 110 | Font.Height = -11 111 | Font.Name = 'Tahoma' 112 | Font.Style = [] 113 | ParentFont = False 114 | ParentShowHint = False 115 | ShowHint = False 116 | TabOrder = 3 117 | OnClick = HomeBtnClick 118 | end 119 | object ClearBtn: TButton 120 | Left = 127 121 | Top = 7 122 | Width = 25 123 | Height = 25 124 | Caption = #55357#56785#65039 125 | Font.Charset = DEFAULT_CHARSET 126 | Font.Color = clWindowText 127 | Font.Height = -11 128 | Font.Name = 'Tahoma' 129 | Font.Style = [] 130 | ParentFont = False 131 | ParentShowHint = False 132 | ShowHint = True 133 | TabOrder = 4 134 | OnClick = ClearBtnClick 135 | end 136 | object SetDeviceBtn: TButton 137 | Left = 226 138 | Top = 7 139 | Width = 25 140 | Height = 25 141 | Caption = #55357#56561 142 | Font.Charset = DEFAULT_CHARSET 143 | Font.Color = clWindowText 144 | Font.Height = -11 145 | Font.Name = 'Tahoma' 146 | Font.Style = [] 147 | ParentFont = False 148 | ParentShowHint = False 149 | ShowHint = True 150 | TabOrder = 5 151 | OnClick = SetDeviceBtnClick 152 | end 153 | object RotateDeviceBtn: TButton 154 | Left = 256 155 | Top = 7 156 | Width = 25 157 | Height = 25 158 | Caption = #8634 159 | ParentShowHint = False 160 | ShowHint = True 161 | TabOrder = 6 162 | OnClick = RotateDeviceBtnClick 163 | end 164 | object DevicesCB: TComboBox 165 | Left = 8 166 | Top = 38 167 | Width = 212 168 | Height = 21 169 | Style = csDropDownList 170 | ParentShowHint = False 171 | ShowHint = True 172 | TabOrder = 7 173 | OnChange = DevicesCBChange 174 | end 175 | object ZoomCB: TComboBox 176 | Left = 227 177 | Top = 38 178 | Width = 53 179 | Height = 21 180 | Style = csDropDownList 181 | ItemIndex = 7 182 | TabOrder = 8 183 | Text = '100%' 184 | Items.Strings = ( 185 | '30%' 186 | '40%' 187 | '50%' 188 | '60%' 189 | '70%' 190 | '80%' 191 | '90%' 192 | '100%' 193 | '125%' 194 | '150%' 195 | '175%' 196 | '200%') 197 | end 198 | object UserAgentsCB: TComboBox 199 | Left = 8 200 | Top = 66 201 | Width = 272 202 | Height = 21 203 | Style = csDropDownList 204 | ItemIndex = 0 205 | ParentShowHint = False 206 | ShowHint = True 207 | TabOrder = 9 208 | Text = 'Default User Agent' 209 | OnChange = UserAgentsCBChange 210 | Items.Strings = ( 211 | 'Default User Agent') 212 | end 213 | end 214 | end 215 | end 216 | -------------------------------------------------------------------------------- /Source/Unit1.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r57zone/ProtonShell/0944118c27a0aae7be0fd0746f111e25d902070e/Source/Unit1.pas -------------------------------------------------------------------------------- /Source/UserAgentsList.txt: -------------------------------------------------------------------------------- 1 | Default User Agent 2 | Android (Chrome): Mozilla/5.0 (Linux; Android 13; Pixel 6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.6422.113 Mobile Safari/537.36 3 | iPhone (Safari): Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/605.1.15 4 | iPad (Firefox): Mozilla/5.0 (iPad; CPU OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) FxiOS/128.0 Mobile/15E148 Safari/605.1.15 5 | Windows (Chrome): Mozilla/5.0 (Windows NT 11.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36 6 | -------------------------------------------------------------------------------- /Source/clear.bat: -------------------------------------------------------------------------------- 1 | del *.obj 2 | del *.dcu 3 | del Win32\Release\*.dcu 4 | del Win32\Debug\*.dcu 5 | rd /s /q __recovery 6 | rd /s /q __history 7 | del *.~* 8 | del *.hpp 9 | del *.dcp 10 | del *.dpl 11 | del *.cesettings 12 | del *.bak 13 | del *.dproj.local 14 | del *.identcache 15 | --del *.exe 16 | --del Win32\Release\*.exe 17 | --del Win32\Debug\*.exe -------------------------------------------------------------------------------- /Source/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Title 7 | 8 | 34 | 35 | 36 |

ProtonShell Test App

37 | r57zone github | 38 | r57zone site (target blank) 39 |

40 |

41 |

42 |

43 |

44 | 45 | 46 | --------------------------------------------------------------------------------