diff --git a/main.js b/main.js index f8601ea..957567a 100644 --- a/main.js +++ b/main.js @@ -26,6 +26,7 @@ const createWindow = () => { var windowsProductKey = ""; var kmsServer = ""; +var officeProductKey = ""; function getCertDetails(){ @@ -59,6 +60,10 @@ function activateOffice19(){ } +function activateOfficeOHOOK(){ + exec("powershell start-process powershell -verb runas { mkdir C:\\Users\\Public\\ohook ; cd C:\\Users\\Public\\ohook ; wget -UseBasicParsing -Uri https://github.com/asdcorp/ohook/releases/download/0.3/ohook_0.3.zip -OutFile ohook.zip ; Expand-Archive ohook.zip ; cd ohook ; cmd /c mklink '%ProgramFiles%\\Microsoft Office\\root\\vfs\\System\\sppcs.dll' '%windir%\\System32\\sppc.dll' ; cmd /c copy /y sppc64.dll '%ProgramFiles%\\Microsoft Office\\root\\vfs\\System\\sppc.dll' ; reg add HKCU\\Software\\Microsoft\\Office\\16.0\\Common\\Licensing\\Resiliency /v 'TimeOfLastHeartbeatFailure' /t REG_SZ /d '2040-01-01T00:00:00Z' /f ; slmgr /ipk " + officeProductKey + "}") +} + function downloadOffice21(){ shell.openExternal("https://officecdn.microsoft.com/db/492350f6-3a01-4f97-b9c0-c7c6ddf67d60/media/en-us/ProPlus2021Retail.img") } @@ -75,6 +80,14 @@ function downloadOffice19_o(){ shell.openExternal("https://c2rsetup.officeapps.live.com/c2r/download.aspx?ProductreleaseID=ProPlus2019Retail&platform=x64&language=en-us&version=O16GA") } +function downloadOffice365(){ + shell.openExternal("https://officecdn.microsoft.com/db/492350f6-3a01-4f97-b9c0-c7c6ddf67d60/media/en-us/O365ProPlusRetail.img") +} + +function downloadOffice365_o(){ + shell.openExternal("https://c2rsetup.officeapps.live.com/c2r/download.aspx?ProductreleaseID=O365ProPlusRetail&platform=x64&language=en-us&version=O16GA") +} + function openServerPage(){ shell.openExternal("https://github.com/Wind4/vlmcsd") } @@ -197,6 +210,11 @@ ipcMain.on("setIPK", (event, response) => { windowsProductKey = response }) +ipcMain.on("activateOfficeOHOOK", (event, response) => { + officeProductKey = response + activateOfficeOHOOK() +}) + ipcMain.on("activateWindows", activateWindows) ipcMain.on("activateOffice16", activateOffice16) @@ -213,6 +231,10 @@ ipcMain.on("downloadOffice19", downloadOffice19) ipcMain.on("downloadOffice19-o", downloadOffice19_o) +ipcMain.on("downloadOffice365", downloadOffice365) + +ipcMain.on("downloadOffice365-o", downloadOffice365_o) + ipcMain.on("uninstallCert", uninstallCert) ipcMain.on("openServerPage", openServerPage) diff --git a/package.json b/package.json index 1f4cd29..96387a4 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "univator", - "version": "1.3.1", + "version": "1.4.0", "description": "Microsoft Product Activator", "main": "main.js", "scripts": { diff --git a/webPage/css/dist.css b/webPage/css/dist.css index ae6bb9f..ab984bc 100644 --- a/webPage/css/dist.css +++ b/webPage/css/dist.css @@ -1,5 +1,5 @@ /* -! tailwindcss v3.0.18 | MIT License | https://tailwindcss.com +! tailwindcss v3.3.6 | MIT License | https://tailwindcss.com */ /* @@ -30,6 +30,8 @@ 2. Prevent adjustments of font size after orientation changes in iOS. 3. Use a more readable tab size. 4. Use the user's configured `sans` font-family by default. +5. Use the user's configured `sans` font-feature-settings by default. +6. Use the user's configured `sans` font-variation-settings by default. */ html { @@ -44,6 +46,10 @@ html { /* 3 */ font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; /* 4 */ + font-feature-settings: normal; + /* 5 */ + font-variation-settings: normal; + /* 6 */ } /* @@ -115,8 +121,10 @@ strong { } /* -1. Use the user's configured `mono` font family by default. -2. Correct the odd `em` font sizing in all browsers. +1. Use the user's configured `mono` font-family by default. +2. Use the user's configured `mono` font-feature-settings by default. +3. Use the user's configured `mono` font-variation-settings by default. +4. Correct the odd `em` font sizing in all browsers. */ code, @@ -125,8 +133,12 @@ samp, pre { font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; /* 1 */ - font-size: 1em; + font-feature-settings: normal; /* 2 */ + font-variation-settings: normal; + /* 3 */ + font-size: 1em; + /* 4 */ } /* @@ -185,8 +197,14 @@ select, textarea { font-family: inherit; /* 1 */ + font-feature-settings: inherit; + /* 1 */ + font-variation-settings: inherit; + /* 1 */ font-size: 100%; /* 1 */ + font-weight: inherit; + /* 1 */ line-height: inherit; /* 1 */ color: inherit; @@ -333,6 +351,14 @@ menu { padding: 0; } +/* +Reset default styling for dialogs. +*/ + +dialog { + padding: 0; +} + /* Prevent resizing textareas horizontally by default. */ @@ -353,13 +379,6 @@ input::-moz-placeholder, textarea::-moz-placeholder { /* 2 */ } -input:-ms-input-placeholder, textarea:-ms-input-placeholder { - opacity: 1; - /* 1 */ - color: #9ca3af; - /* 2 */ -} - input::placeholder, textarea::placeholder { opacity: 1; @@ -415,15 +434,15 @@ video { height: auto; } -/* -Ensure the default browser behavior of the `hidden` attribute. -*/ +/* Make elements with the HTML hidden attribute stay hidden by default */ [hidden] { display: none; } *, ::before, ::after { + --tw-border-spacing-x: 0; + --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; @@ -435,6 +454,59 @@ Ensure the default browser behavior of the `hidden` attribute. --tw-pan-y: ; --tw-pinch-zoom: ; --tw-scroll-snap-strictness: proximity; + --tw-gradient-from-position: ; + --tw-gradient-via-position: ; + --tw-gradient-to-position: ; + --tw-ordinal: ; + --tw-slashed-zero: ; + --tw-numeric-figure: ; + --tw-numeric-spacing: ; + --tw-numeric-fraction: ; + --tw-ring-inset: ; + --tw-ring-offset-width: 0px; + --tw-ring-offset-color: #fff; + --tw-ring-color: rgb(59 130 246 / 0.5); + --tw-ring-offset-shadow: 0 0 #0000; + --tw-ring-shadow: 0 0 #0000; + --tw-shadow: 0 0 #0000; + --tw-shadow-colored: 0 0 #0000; + --tw-blur: ; + --tw-brightness: ; + --tw-contrast: ; + --tw-grayscale: ; + --tw-hue-rotate: ; + --tw-invert: ; + --tw-saturate: ; + --tw-sepia: ; + --tw-drop-shadow: ; + --tw-backdrop-blur: ; + --tw-backdrop-brightness: ; + --tw-backdrop-contrast: ; + --tw-backdrop-grayscale: ; + --tw-backdrop-hue-rotate: ; + --tw-backdrop-invert: ; + --tw-backdrop-opacity: ; + --tw-backdrop-saturate: ; + --tw-backdrop-sepia: ; +} + +::backdrop { + --tw-border-spacing-x: 0; + --tw-border-spacing-y: 0; + --tw-translate-x: 0; + --tw-translate-y: 0; + --tw-rotate: 0; + --tw-skew-x: 0; + --tw-skew-y: 0; + --tw-scale-x: 1; + --tw-scale-y: 1; + --tw-pan-x: ; + --tw-pan-y: ; + --tw-pinch-zoom: ; + --tw-scroll-snap-strictness: proximity; + --tw-gradient-from-position: ; + --tw-gradient-via-position: ; + --tw-gradient-to-position: ; --tw-ordinal: ; --tw-slashed-zero: ; --tw-numeric-figure: ; @@ -526,9 +598,9 @@ Ensure the default browser behavior of the `hidden` attribute. bottom: 1rem; } -.my-5 { - margin-top: 1.25rem; - margin-bottom: 1.25rem; +.mx-2 { + margin-left: 0.5rem; + margin-right: 0.5rem; } .my-2 { @@ -536,9 +608,9 @@ Ensure the default browser behavior of the `hidden` attribute. margin-bottom: 0.5rem; } -.mx-2 { - margin-left: 0.5rem; - margin-right: 0.5rem; +.my-5 { + margin-top: 1.25rem; + margin-bottom: 1.25rem; } .ml-auto { @@ -577,8 +649,8 @@ Ensure the default browser behavior of the `hidden` attribute. min-height: 100vh; } -.w-full { - width: 100%; +.w-3\/4 { + width: 75%; } .w-4\/5 { @@ -589,8 +661,8 @@ Ensure the default browser behavior of the `hidden` attribute. width: 83.333333%; } -.w-3\/4 { - width: 75%; +.w-full { + width: 100%; } .min-w-\[60vw\] { @@ -617,81 +689,76 @@ Ensure the default browser behavior of the `hidden` attribute. justify-content: center; } -.rounded-xl { - border-radius: 0.75rem; -} - -.rounded-md { - border-radius: 0.375rem; +.rounded-2xl { + border-radius: 1rem; } .rounded-3xl { border-radius: 1.5rem; } -.rounded-2xl { - border-radius: 1rem; +.rounded-md { + border-radius: 0.375rem; } -.bg-transparent { - background-color: transparent; +.rounded-xl { + border-radius: 0.75rem; } -.bg-mycol2 { +.bg-\[\#000000\] { --tw-bg-opacity: 1; - background-color: rgb(22 21 36 / var(--tw-bg-opacity)); + background-color: rgb(0 0 0 / var(--tw-bg-opacity)); } -.bg-indigo-900 { +.bg-\[\#283F3B\] { --tw-bg-opacity: 1; - background-color: rgb(49 46 129 / var(--tw-bg-opacity)); + background-color: rgb(40 63 59 / var(--tw-bg-opacity)); } -.bg-white { +.bg-\[\#D0E7A6\] { --tw-bg-opacity: 1; - background-color: rgb(255 255 255 / var(--tw-bg-opacity)); + background-color: rgb(208 231 166 / var(--tw-bg-opacity)); } -.bg-\[\#D0E7A6\] { +.bg-\[\#E94F37\] { --tw-bg-opacity: 1; - background-color: rgb(208 231 166 / var(--tw-bg-opacity)); + background-color: rgb(233 79 55 / var(--tw-bg-opacity)); } -.bg-\[\#283F3B\] { +.bg-indigo-900 { --tw-bg-opacity: 1; - background-color: rgb(40 63 59 / var(--tw-bg-opacity)); + background-color: rgb(49 46 129 / var(--tw-bg-opacity)); } -.bg-\[\#E94F37\] { +.bg-mycol2 { --tw-bg-opacity: 1; - background-color: rgb(233 79 55 / var(--tw-bg-opacity)); + background-color: rgb(22 21 36 / var(--tw-bg-opacity)); } -.bg-\[url\(\'\.\.\/img\/bground1\.jpg\'\)\] { - background-image: url('../img/bground1.jpg'); +.bg-transparent { + background-color: transparent; } -.bg-\[url\(\'\.\.\/\.\.\/img\/bground1\.jpg\'\)\] { - background-image: url('../../img/bground1.jpg'); +.bg-white { + --tw-bg-opacity: 1; + background-color: rgb(255 255 255 / var(--tw-bg-opacity)); } -.bg-cover { - background-size: cover; +.bg-\[url\(\'\.\.\/\.\.\/img\/bground1\.jpg\'\)\] { + background-image: url('../../img/bground1.jpg'); } -.py-10 { - padding-top: 2.5rem; - padding-bottom: 2.5rem; +.bg-\[url\(\'\.\.\/img\/bground2\.png\'\)\] { + background-image: url('../img/bground2.png'); } -.px-8 { - padding-left: 2rem; - padding-right: 2rem; +.bg-cover { + background-size: cover; } -.py-5 { - padding-top: 1.25rem; - padding-bottom: 1.25rem; +.px-10 { + padding-left: 2.5rem; + padding-right: 2.5rem; } .px-2 { @@ -699,11 +766,6 @@ Ensure the default browser behavior of the `hidden` attribute. padding-right: 0.5rem; } -.py-1 { - padding-top: 0.25rem; - padding-bottom: 0.25rem; -} - .px-3 { padding-left: 0.75rem; padding-right: 0.75rem; @@ -714,9 +776,19 @@ Ensure the default browser behavior of the `hidden` attribute. padding-right: 1.25rem; } -.px-10 { - padding-left: 2.5rem; - padding-right: 2.5rem; +.px-8 { + padding-left: 2rem; + padding-right: 2rem; +} + +.py-1 { + padding-top: 0.25rem; + padding-bottom: 0.25rem; +} + +.py-10 { + padding-top: 2.5rem; + padding-bottom: 2.5rem; } .py-3 { @@ -724,28 +796,41 @@ Ensure the default browser behavior of the `hidden` attribute. padding-bottom: 0.75rem; } +.py-5 { + padding-top: 1.25rem; + padding-bottom: 1.25rem; +} + .pb-10 { padding-bottom: 2.5rem; } -.pr-5 { - padding-right: 1.25rem; +.pb-2 { + padding-bottom: 0.5rem; } -.pb-7 { - padding-bottom: 1.75rem; +.pb-3 { + padding-bottom: 0.75rem; } -.pl-5 { - padding-left: 1.25rem; +.pb-5 { + padding-bottom: 1.25rem; } .pb-6 { padding-bottom: 1.5rem; } -.pb-3 { - padding-bottom: 0.75rem; +.pb-7 { + padding-bottom: 1.75rem; +} + +.pl-5 { + padding-left: 1.25rem; +} + +.pr-5 { + padding-right: 1.25rem; } .text-left { @@ -760,15 +845,6 @@ Ensure the default browser behavior of the `hidden` attribute. font-family: manrope; } -.text-\[3em\] { - font-size: 3em; -} - -.text-sm { - font-size: 0.875rem; - line-height: 1.25rem; -} - .text-3xl { font-size: 1.875rem; line-height: 2.25rem; @@ -782,11 +858,20 @@ Ensure the default browser behavior of the `hidden` attribute. font-size: 2em; } +.text-\[3em\] { + font-size: 3em; +} + .text-lg { font-size: 1.125rem; line-height: 1.75rem; } +.text-sm { + font-size: 0.875rem; + line-height: 1.25rem; +} + .text-xl { font-size: 1.25rem; line-height: 1.75rem; @@ -796,10 +881,6 @@ Ensure the default browser behavior of the `hidden` attribute. font-weight: 900; } -.font-normal { - font-weight: 400; -} - .font-bold { font-weight: 700; } @@ -808,13 +889,17 @@ Ensure the default browser behavior of the `hidden` attribute. font-weight: 800; } +.font-normal { + font-weight: 400; +} + .tracking-wide { letter-spacing: 0.025em; } -.text-white { +.text-black { --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity)); + color: rgb(0 0 0 / var(--tw-text-opacity)); } .text-red-300 { @@ -822,14 +907,13 @@ Ensure the default browser behavior of the `hidden` attribute. color: rgb(252 165 165 / var(--tw-text-opacity)); } -.text-black { +.text-white { --tw-text-opacity: 1; - color: rgb(0 0 0 / var(--tw-text-opacity)); + color: rgb(255 255 255 / var(--tw-text-opacity)); } .underline { - -webkit-text-decoration-line: underline; - text-decoration-line: underline; + text-decoration-line: underline; } .shadow { @@ -846,14 +930,14 @@ Ensure the default browser behavior of the `hidden` attribute. outline-width: 0px; } -.outline-8 { - outline-width: 8px; -} - .outline-2 { outline-width: 2px; } +.outline-8 { + outline-width: 8px; +} + .outline-white { outline-color: #fff; } @@ -870,9 +954,9 @@ Ensure the default browser behavior of the `hidden` attribute. } .transition { - transition-property: color, background-color, border-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-text-decoration-color, -webkit-backdrop-filter; + transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter; transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-text-decoration-color, -webkit-backdrop-filter; + transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; } @@ -880,7 +964,7 @@ Ensure the default browser behavior of the `hidden` attribute. @font-face { font-family: 'manrope'; - src: url('./manrope.ttf'); + src: url('./jetbrains.ttf'); } body { @@ -969,61 +1053,21 @@ p{ } .wave { - -webkit-animation-name: wave-animation; - animation-name: wave-animation; - -webkit-animation-duration: 2.5s; - animation-duration: 2.5s; - -webkit-animation-iteration-count: infinite; - animation-iteration-count: infinite; + animation-name: wave-animation; + animation-duration: 2.5s; + animation-iteration-count: infinite; transform-origin: 70% 70%; display: inline-block; } .emohi:hover { - -webkit-animation-name: wave-animation; - animation-name: wave-animation; - -webkit-animation-duration: 2.5s; - animation-duration: 2.5s; - -webkit-animation-iteration-count: 1; - animation-iteration-count: 1; + animation-name: wave-animation; + animation-duration: 2.5s; + animation-iteration-count: 1; transform-origin: 70% 70%; display: inline-block; } -@-webkit-keyframes wave-animation { - 0% { - transform: rotate( 0.0deg) - } - - 10% { - transform: rotate(14.0deg) - } - - 20% { - transform: rotate(-8.0deg) - } - - 30% { - transform: rotate(14.0deg) - } - - 40% { - transform: rotate(-4.0deg) - } - - 50% { - transform: rotate(10.0deg) - } - - 60% { - transform: rotate( 0.0deg) - } - - 100% { - transform: rotate( 0.0deg) - } -} - @keyframes wave-animation { 0% { transform: rotate( 0.0deg) @@ -1110,14 +1154,14 @@ button:hover{ font-size: large; } -.hover\:bg-indigo-900:hover { +.hover\:bg-\[\#283F3B\]:hover { --tw-bg-opacity: 1; - background-color: rgb(49 46 129 / var(--tw-bg-opacity)); + background-color: rgb(40 63 59 / var(--tw-bg-opacity)); } -.hover\:bg-\[\#283F3B\]:hover { +.hover\:bg-indigo-900:hover { --tw-bg-opacity: 1; - background-color: rgb(40 63 59 / var(--tw-bg-opacity)); + background-color: rgb(49 46 129 / var(--tw-bg-opacity)); } @media (min-width: 640px) { @@ -1147,16 +1191,16 @@ button:hover{ background-color: transparent; } - .md\:py-3 { - padding-top: 0.75rem; - padding-bottom: 0.75rem; - } - .md\:px-7 { padding-left: 1.75rem; padding-right: 1.75rem; } + .md\:py-3 { + padding-top: 0.75rem; + padding-bottom: 0.75rem; + } + .md\:text-xl { font-size: 1.25rem; line-height: 1.75rem; diff --git a/webPage/css/jetbrains.ttf b/webPage/css/jetbrains.ttf new file mode 100644 index 0000000..ad31fbd Binary files /dev/null and b/webPage/css/jetbrains.ttf differ diff --git a/webPage/css/source.css b/webPage/css/source.css index 17a0892..6efedfa 100644 --- a/webPage/css/source.css +++ b/webPage/css/source.css @@ -6,7 +6,7 @@ @font-face { font-family: 'manrope'; - src: url('./manrope.ttf'); + src: url('./jetbrains.ttf'); } diff --git a/webPage/img/bground1.jpg b/webPage/img/bground1.jpg deleted file mode 100644 index fbe70a7..0000000 Binary files a/webPage/img/bground1.jpg and /dev/null differ diff --git a/webPage/img/bground2.jpg b/webPage/img/bground2.jpg deleted file mode 100644 index 4af533b..0000000 Binary files a/webPage/img/bground2.jpg and /dev/null differ diff --git a/webPage/img/bground2.png b/webPage/img/bground2.png new file mode 100644 index 0000000..76dfe3c Binary files /dev/null and b/webPage/img/bground2.png differ diff --git a/webPage/img/bground3.jpg b/webPage/img/bground3.jpg deleted file mode 100644 index e7f1f98..0000000 Binary files a/webPage/img/bground3.jpg and /dev/null differ diff --git a/webPage/img/office365.svg b/webPage/img/office365.svg new file mode 100644 index 0000000..aa6e0f0 --- /dev/null +++ b/webPage/img/office365.svg @@ -0,0 +1,46 @@ + + \ No newline at end of file diff --git a/webPage/index.html b/webPage/index.html index 67b8a02..9d49e34 100644 --- a/webPage/index.html +++ b/webPage/index.html @@ -8,13 +8,14 @@
-Univator app
-Microsoft Product Activator
+Univator app
++
Microsoft Product Activator
Install Office 2019.
+Install Microsoft 365.
After downloading the .img file, open it and run 'Setup', after installation is done you can activate it using the tool below
Office 2021 →
Office 2019 →