Compare commits

...
13 Commits
Author SHA1 Message Date
Belim 30778a3533 Update README.md 2025-07-27 13:17:47 +02:00
Belim 5dedf5183f Merge pull request #224 from Githubguy132010/main
Add Dutch language support + fix any other language references.
2025-07-26 09:07:08 +02:00
Belim 8deda19617 Merge pull request #218 from VenusGirl/main
Add Korean
2025-07-26 09:06:02 +02:00
Belim d0e739e2cf Merge pull request #220 from igorruckert/patch-1
Create Strings.pt-BR.resx
2025-07-26 09:05:37 +02:00
Belim b65392fbc7 Merge branch 'main' of https://github.com/builtbybel/Flyby11 2025-07-22 18:29:25 +02:00
Belim bc6049fc39 Push FlybyScript-3.0 2025-07-22 18:29:00 +02:00
Thomas Brugman 3059c290c4 Fix Dutch localization typos and improve message clarity 2025-07-20 14:47:09 +00:00
Thomas Brugman 43f3299e03 Merge pull request #1 from Githubguy132010/copilot/fix-18a205fd-9ee4-44c6-94e5-403e3ec2cdd9
Add Dutch language support to Flyby11 + fix any other language references.
2025-07-20 16:37:23 +02:00
copilot-swe-agent[bot]andGithubguy132010 415c009e8a Complete Dutch localization support and fix missing language references
Co-authored-by: Githubguy132010 <145768128+Githubguy132010@users.noreply.github.com>
2025-07-20 14:34:32 +00:00
copilot-swe-agent[bot]andGithubguy132010 bf026d3d81 Add Dutch translation support (Strings.nl.resx)
Co-authored-by: Githubguy132010 <145768128+Githubguy132010@users.noreply.github.com>
2025-07-20 14:29:35 +00:00
copilot-swe-agent[bot] acc7c036e9 Initial plan 2025-07-20 14:23:51 +00:00
Igor Rückert 4dca01dc99 Create Strings.pt-BR.resx
Portuguese (Brazil) translation for Flyby11 ;)
2025-07-17 17:39:45 -03:00
VenusGirl❤ 8f55e160ba Add Korean
Add Korean...
2025-07-17 20:00:11 +09:00
16 changed files with 1399 additions and 362 deletions

No files matched your search

+1 -1
View File
@@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17 # Visual Studio Version 17
VisualStudioVersion = 17.12.35527.113 VisualStudioVersion = 17.12.35527.113
MinimumVisualStudioVersion = 10.0.40219.1 MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Flyby11", "Flyby11\Flyby11.csproj", "{503AF34B-7544-4C43-A099-2B948C3FF49A}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Flyby11", "FlybyScript\Flyby11.csproj", "{503AF34B-7544-4C43-A099-2B948C3FF49A}"
EndProject EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CpuCheckNative", "CpuCheckNative\CpuCheckNative.vcxproj", "{A2038E07-E21F-4B05-B811-3052A2B014BC}" Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CpuCheckNative", "CpuCheckNative\CpuCheckNative.vcxproj", "{A2038E07-E21F-4B05-B811-3052A2B014BC}"
EndProject EndProject
+2 -1
View File
@@ -124,7 +124,8 @@ namespace Flyby11
this.Controls.Add(upgradeButton); this.Controls.Add(upgradeButton);
this.Controls.Add(countdownLabel); this.Controls.Add(countdownLabel);
// this.Controls.Add(additionalInfoLabel); // this.Controls.Add(additionalInfoLabel);
} }
+85 -53
View File
@@ -18,7 +18,7 @@ namespace Flyby11
private FlowLayoutPanel _faqContentPanel; private FlowLayoutPanel _faqContentPanel;
// List of individual FAQ entry steps (to add one by one) // List of individual FAQ entry steps
private readonly List<Action<FlowLayoutPanel>> _faqSteps = new List<Action<FlowLayoutPanel>>(); private readonly List<Action<FlowLayoutPanel>> _faqSteps = new List<Action<FlowLayoutPanel>>();
private int _currentFaqStep = 0; private int _currentFaqStep = 0;
@@ -103,68 +103,57 @@ namespace Flyby11
AddLabel(parent, Locales.Strings.faq_q1, new Font("Segoe UI Variable Display", 10.5f, FontStyle.Bold), ContentAlignment.TopLeft, 11); AddLabel(parent, Locales.Strings.faq_q1, new Font("Segoe UI Variable Display", 10.5f, FontStyle.Bold), ContentAlignment.TopLeft, 11);
AddLabel(parent, Locales.Strings.faq_a1, new Font("Segoe UI Variable Display", 11), ContentAlignment.TopLeft, 11); AddLabel(parent, Locales.Strings.faq_a1, new Font("Segoe UI Variable Display", 11), ContentAlignment.TopLeft, 11);
// Links below the answer
var linkPanel = new FlowLayoutPanel var downloadOptions = new ComboBox
{ {
AutoSize = true, DropDownStyle = ComboBoxStyle.DropDownList,
FlowDirection = FlowDirection.LeftToRight, Font = new Font("Segoe UI Variable Display", 10.5f),
WrapContents = true Width = 300,
Padding = new Padding(5)
}; };
AddFAQItem(linkPanel, Locales.Strings.faq_downloadMS, "https://www.microsoft.com/software-download/windows11"); downloadOptions.Items.Add("Select Download Source"); // Add default placeholder item
AddFAQItemWithScript(linkPanel, Locales.Strings.faq_downloadFido, "or", "https://raw.githubusercontent.com/pbatard/Fido/refs/heads/master/Fido.ps1"); downloadOptions.Items.Add(Locales.Strings.faq_downloadMS); // Index 1
downloadOptions.Items.Add(Locales.Strings.faq_downloadFido); // Index 2
downloadOptions.Items.Add("Media Creation Tool (Beginner-Friendly)"); // Index 3
parent.Controls.Add(linkPanel); downloadOptions.SelectedIndex = 0; // Set default selection
}
downloadOptions.SelectedIndexChanged += (s, e) =>
// Simple link-only FAQ entry
private void AddFAQItem(FlowLayoutPanel parent, string linkText, string linkUrl)
{
var linkLabel = new LinkLabel
{ {
Text = linkText, switch (downloadOptions.SelectedIndex)
Font = new Font("Segoe UI Variable Display", 10.5f, FontStyle.Underline), {
LinkColor = Color.Blue, case 1:
AutoSize = true, // Open Microsoft ISO download page
Padding = new Padding(10), Process.Start("https://www.microsoft.com/software-download/windows11");
TextAlign = ContentAlignment.TopLeft, break;
UseCompatibleTextRendering = true case 2:
// Download and run Fido script
DownloadAndRunFidoScript("https://raw.githubusercontent.com/pbatard/Fido/refs/heads/master/Fido.ps1");
break;
case 3:
// Handle Media Creation Tool download process
HandleMediaCreationToolDownload();
break;
}
}; };
linkLabel.LinkClicked += (sender, e) => Process.Start(linkUrl); parent.Controls.Add(downloadOptions);
parent.Controls.Add(linkLabel);
}
// Adds a downloadable script link (e.g., Fido.ps1) /// <summary>
private void AddFAQItemWithScript(FlowLayoutPanel parent, string linkText, string description, string scriptUrl) /// Downloads and executes the Fido PowerShell script.
{ /// </summary>
AddLabel(parent, description, new Font("Segoe UI Variable Display", 9), ContentAlignment.TopLeft, 11); void DownloadAndRunFidoScript(string scriptUrl)
var linkLabel = new LinkLabel
{
Text = linkText,
Font = new Font("Segoe UI Variable Display", 10.5f, FontStyle.Underline),
LinkColor = Color.Blue,
AutoSize = true,
Padding = new Padding(10),
TextAlign = ContentAlignment.TopLeft,
UseCompatibleTextRendering = true
};
linkLabel.Click += (sender, e) =>
{ {
string tempScriptPath = Path.Combine(Path.GetTempPath(), "Fido.ps1"); string tempScriptPath = Path.Combine(Path.GetTempPath(), "Fido.ps1");
try using (var client = new WebClient())
{ {
using (var client = new WebClient()) try
{ {
// Download script to temp folder client.DownloadFile(scriptUrl, tempScriptPath);
client.DownloadFile(new Uri(scriptUrl), tempScriptPath); _updateStatus("Fido script downloaded successfully. Running it now...");
_updateStatus("Fido downloaded successfully! Now running the script...");
// Run script using elevated PowerShell
Process.Start(new ProcessStartInfo Process.Start(new ProcessStartInfo
{ {
FileName = "powershell.exe", FileName = "powershell.exe",
@@ -174,16 +163,59 @@ namespace Flyby11
UseShellExecute = true UseShellExecute = true
}); });
} }
catch (Exception ex)
{
_updateStatus("Error downloading or running Fido: " + ex.Message);
}
} }
catch (Exception ex) }
/// <summary>
/// Handles download, optional tutorial, and execution of the Media Creation Tool.
/// </summary>
void HandleMediaCreationToolDownload()
{
var infoResult = MessageBox.Show(
"With the Media Creation Tool, you can either upgrade your PC or create an ISO file.\n\nImportant: In the step 'Choose which media to use', make sure to select 'ISO file'.\n\nIf you're unsure, would you like to watch a recommended YouTube tutorial on how to do this?",
"Media Creation Tool Information",
MessageBoxButtons.YesNo,
MessageBoxIcon.Information);
if (infoResult == DialogResult.Yes)
{ {
_updateStatus("Error downloading or running the script: " + ex.Message); Process.Start("https://www.youtube.com/watch?v=dNl1FHajW9w");
} }
};
parent.Controls.Add(linkLabel); using (var saveDialog = new SaveFileDialog())
{
saveDialog.Title = "Save Media Creation Tool";
saveDialog.Filter = "Executable|*.exe";
saveDialog.FileName = "MediaCreationTool.exe";
if (saveDialog.ShowDialog() == DialogResult.OK)
{
using (var client = new WebClient())
{
try
{
client.DownloadFile("https://go.microsoft.com/fwlink/?linkid=2156295", saveDialog.FileName);
MessageBox.Show("Media Creation Tool downloaded successfully!", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information);
var runResult = MessageBox.Show("Do you want to run the Media Creation Tool now?", "Run Tool", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
if (runResult == DialogResult.Yes)
{
Process.Start(saveDialog.FileName);
}
}
catch (Exception ex)
{
MessageBox.Show("Error downloading the Media Creation Tool: " + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
}
}
} }
// Adds any generic label to the flow panel // Adds any generic label to the flow panel
private void AddLabel(FlowLayoutPanel parent, string text, Font font, ContentAlignment alignment, int padding = 0) private void AddLabel(FlowLayoutPanel parent, string text, Font font, ContentAlignment alignment, int padding = 0)
{ {
+39 -1
View File
@@ -12,6 +12,21 @@
<FileAlignment>512</FileAlignment> <FileAlignment>512</FileAlignment>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects> <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<Deterministic>true</Deterministic> <Deterministic>true</Deterministic>
<PublishUrl>publish\</PublishUrl>
<Install>true</Install>
<InstallFrom>Disk</InstallFrom>
<UpdateEnabled>false</UpdateEnabled>
<UpdateMode>Foreground</UpdateMode>
<UpdateInterval>7</UpdateInterval>
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
<UpdatePeriodically>false</UpdatePeriodically>
<UpdateRequired>false</UpdateRequired>
<MapFileExtensions>true</MapFileExtensions>
<ApplicationRevision>0</ApplicationRevision>
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
<IsWebBootstrapper>false</IsWebBootstrapper>
<UseApplicationTrust>false</UseApplicationTrust>
<BootstrapperEnabled>true</BootstrapperEnabled>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>x64</PlatformTarget> <PlatformTarget>x64</PlatformTarget>
@@ -84,6 +99,12 @@
<Compile Include="MainForm.Designer.cs"> <Compile Include="MainForm.Designer.cs">
<DependentUpon>MainForm.cs</DependentUpon> <DependentUpon>MainForm.cs</DependentUpon>
</Compile> </Compile>
<Compile Include="ProblemsForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="ProblemsForm.Designer.cs">
<DependentUpon>ProblemsForm.cs</DependentUpon>
</Compile>
<Compile Include="Program.cs" /> <Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" /> <Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Properties\Resources.Designer.cs"> <Compile Include="Properties\Resources.Designer.cs">
@@ -106,9 +127,12 @@
<EmbeddedResource Include="Locales\Strings.de.resx" /> <EmbeddedResource Include="Locales\Strings.de.resx" />
<EmbeddedResource Include="Locales\Strings.fr.resx" /> <EmbeddedResource Include="Locales\Strings.fr.resx" />
<EmbeddedResource Include="Locales\Strings.he.resx" /> <EmbeddedResource Include="Locales\Strings.he.resx" />
<EmbeddedResource Include="Locales\Strings.hu.resx" />
<EmbeddedResource Include="Locales\Strings.it.resx" /> <EmbeddedResource Include="Locales\Strings.it.resx" />
<EmbeddedResource Include="Locales\Strings.ja.resx" /> <EmbeddedResource Include="Locales\Strings.ja.resx" />
<EmbeddedResource Include="Locales\Strings.nl.resx" />
<EmbeddedResource Include="Locales\Strings.pl.resx" /> <EmbeddedResource Include="Locales\Strings.pl.resx" />
<EmbeddedResource Include="Locales\Strings.ru.resx" />
<EmbeddedResource Include="Locales\Strings.sv-SE.resx" /> <EmbeddedResource Include="Locales\Strings.sv-SE.resx" />
<EmbeddedResource Include="Locales\Strings.tr.resx" /> <EmbeddedResource Include="Locales\Strings.tr.resx" />
<EmbeddedResource Include="Locales\Strings.zh-CN.resx" /> <EmbeddedResource Include="Locales\Strings.zh-CN.resx" />
@@ -120,6 +144,9 @@
<SubType>Designer</SubType> <SubType>Designer</SubType>
<LastGenOutput>Strings.Designer.cs</LastGenOutput> <LastGenOutput>Strings.Designer.cs</LastGenOutput>
</EmbeddedResource> </EmbeddedResource>
<EmbeddedResource Include="ProblemsForm.resx">
<DependentUpon>ProblemsForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Properties\Resources.resx"> <EmbeddedResource Include="Properties\Resources.resx">
<SubType>Designer</SubType> <SubType>Designer</SubType>
<Generator>PublicResXFileCodeGenerator</Generator> <Generator>PublicResXFileCodeGenerator</Generator>
@@ -142,6 +169,17 @@
<ItemGroup> <ItemGroup>
<Content Include="AppIcon.ico" /> <Content Include="AppIcon.ico" />
</ItemGroup> </ItemGroup>
<ItemGroup /> <ItemGroup>
<BootstrapperPackage Include=".NETFramework,Version=v4.8">
<Visible>False</Visible>
<ProductName>Microsoft .NET Framework 4.8 %28x86 und x64%29</ProductName>
<Install>true</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1</ProductName>
<Install>false</Install>
</BootstrapperPackage>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project> </Project>
+69 -65
View File
@@ -1,14 +1,10 @@
using System; using System;
using System.Diagnostics; using System.Diagnostics;
using System.Drawing;
using System.IO; using System.IO;
using System.Net.Http; using System.Net.Http;
using System.Runtime.Remoting.Lifetime;
using System.Text;
using System.Text.RegularExpressions; using System.Text.RegularExpressions;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Windows.Forms; using System.Windows.Forms;
using static System.Windows.Forms.VisualStyles.VisualStyleElement;
namespace Flyby11 namespace Flyby11
{ {
@@ -22,7 +18,7 @@ namespace Flyby11
_updateStatus = updateStatus; _updateStatus = updateStatus;
} }
public async Task HandleIso(string isoPath) public async Task HandleIso(string isoPath, bool experimentalEnabled)
{ {
try try
{ {
@@ -41,8 +37,7 @@ namespace Flyby11
string quotedIsoPath = $"\"{isoPath}\""; string quotedIsoPath = $"\"{isoPath}\"";
// Pass the quoted path to ExecutePowerShellCommand // Pass the quoted path to ExecutePowerShellCommand
await ExecutePowerShellCommand($"Mount-DiskImage -ImagePath {quotedIsoPath}"); string driveLetter = await MountIsoAndGetDriveLetter(isoPath);
string driveLetter = await GetMountedDriveLetter();
if (string.IsNullOrEmpty(driveLetter)) if (string.IsNullOrEmpty(driveLetter))
{ {
@@ -56,7 +51,7 @@ namespace Flyby11
string setupPath = Path.Combine(driveLetter, "sources", "setupprep.exe"); string setupPath = Path.Combine(driveLetter, "sources", "setupprep.exe");
if (File.Exists(setupPath)) if (File.Exists(setupPath))
{ {
await RunSetupWithAdminRights(setupPath); await RunSetupWithAdminRights(setupPath, experimentalEnabled);
} }
else else
{ {
@@ -65,7 +60,6 @@ namespace Flyby11
"Error", "Error",
MessageBoxButtons.OK, MessageBoxButtons.OK,
MessageBoxIcon.Error); MessageBoxIcon.Error);
} }
} }
catch (Exception ex) catch (Exception ex)
@@ -75,74 +69,80 @@ namespace Flyby11
} }
} }
private async Task<string> GetMountedDriveLetter() private async Task<string> MountIsoAndGetDriveLetter(string isoPath)
{ {
var drives = DriveInfo.GetDrives(); try
foreach (var drive in drives)
{ {
if (drive.DriveType == DriveType.CDRom && drive.IsReady) _updateStatus("Mounting ISO...");
// PowerShell script to mount ISO and get the assigned drive letter
string script = $@"
$iso = Mount-DiskImage -ImagePath '{isoPath}' -PassThru
$volumes = Get-Volume -DiskImage $iso
$volumes.DriveLetter
";
using (var process = new Process())
{ {
return drive.Name.Substring(0, 2); process.StartInfo.FileName = "powershell.exe";
process.StartInfo.Arguments = $"-NoProfile -ExecutionPolicy Bypass -Command \"{script}\"";
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.RedirectStandardError = true;
process.StartInfo.UseShellExecute = false;
process.StartInfo.CreateNoWindow = true;
process.Start();
string output = await process.StandardOutput.ReadToEndAsync();
string error = await process.StandardError.ReadToEndAsync();
await process.WaitForExitAsync();
if (!string.IsNullOrWhiteSpace(error))
{
_updateStatus("PowerShell error during mount: " + error);
return null;
}
string driveLetter = output.Trim();
if (!string.IsNullOrWhiteSpace(driveLetter))
{
_updateStatus($"ISO mounted successfully at {driveLetter}:\\");
return $"{driveLetter}:\\";
}
else
{
_updateStatus("Failed to retrieve drive letter after mounting ISO.");
return null;
}
} }
} }
return null; catch (Exception ex)
}
private async Task ExecutePowerShellCommand(string command)
{
using (var process = new Process())
{ {
// Escape the command to ensure spaces in paths are handled _updateStatus("Exception during mounting: " + ex.Message);
string escapedCommand = command.Replace("\"", "\\\""); return null;
process.StartInfo.FileName = "powershell.exe";
process.StartInfo.Arguments = $"-NoProfile -ExecutionPolicy Bypass -Command \"{escapedCommand}\"";
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.RedirectStandardError = true;
process.StartInfo.UseShellExecute = false;
process.StartInfo.CreateNoWindow = true;
// Capture standard output and error output
StringBuilder outputBuilder = new StringBuilder();
StringBuilder errorBuilder = new StringBuilder();
process.OutputDataReceived += (sender, e) => { if (!string.IsNullOrEmpty(e.Data)) outputBuilder.AppendLine(e.Data); };
process.ErrorDataReceived += (sender, e) => { if (!string.IsNullOrEmpty(e.Data)) errorBuilder.AppendLine(e.Data); };
process.Start();
process.BeginOutputReadLine();
process.BeginErrorReadLine();
await process.WaitForExitAsync();
string output = outputBuilder.ToString();
string error = errorBuilder.ToString();
// Debug output for logs
if (!string.IsNullOrEmpty(output))
{
_updateStatus($"PowerShell Output: {output}");
}
if (!string.IsNullOrEmpty(error))
{
_updateStatus($"PowerShell Error: {error}");
MessageBox.Show($"PowerShell Error: {error}", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
} }
} }
private async Task RunSetupWithAdminRights(string setupPath, bool experimentalEnabled)
private async Task RunSetupWithAdminRights(string setupPath)
{ {
try try
{ {
_updateStatus(Locales.Strings._debugInstallRunElevated); //Starting the setup process with elevated privileges... _updateStatus(Locales.Strings._debugInstallRunElevated); //Starting the setup process with elevated privileges...
// Default argument
string arguments = "/Product Server";
// If experimental mode is enabled, append additional setup parameters
if (experimentalEnabled)
{
arguments += " /Compat IgnoreWarning /MigrateDrivers All";
}
var startInfo = new ProcessStartInfo var startInfo = new ProcessStartInfo
{ {
FileName = "powershell.exe", FileName = "powershell.exe",
Arguments = $"-NoProfile -ExecutionPolicy Bypass -Command \"Start-Process '{setupPath}' -ArgumentList '/product server' -Verb runas\"", Arguments = $"-NoProfile -ExecutionPolicy Bypass -Command \"Start-Process '{setupPath}' -ArgumentList '{arguments}' -Verb runas\"",
Verb = "runas", Verb = "runas",
UseShellExecute = true, UseShellExecute = true,
CreateNoWindow = false CreateNoWindow = false
@@ -157,9 +157,16 @@ namespace Flyby11
await process.WaitForExitAsync(); await process.WaitForExitAsync();
} }
} }
// Final status message
string finalStatus = Locales.Strings._debugInstallReady;
if (experimentalEnabled)
{
finalStatus += " (Advanced mode enabled: Compatibility checks bypassed)";
}
_updateStatus(finalStatus);
//You're ready to install Windows 11 on unsupported hardware! Ignore the 'Windows Server' prompt; you're all set!"
_updateStatus(Locales.Strings._debugInstallReady);
//Windows 11 installation can now proceed. Please follow the instructions in the setup window. //Windows 11 installation can now proceed. Please follow the instructions in the setup window.
MessageBox.Show(Locales.Strings.msg_InstallReady, "Success", MessageBoxButtons.OK, MessageBoxIcon.Information); MessageBox.Show(Locales.Strings.msg_InstallReady, "Success", MessageBoxButtons.OK, MessageBoxIcon.Information);
} }
@@ -236,8 +243,6 @@ namespace Flyby11
} }
} }
/// <summary> /// <summary>
/// Downloads a specified tool (Media Creation Tool or Installation Assistant) from a provided URL. /// Downloads a specified tool (Media Creation Tool or Installation Assistant) from a provided URL.
/// </summary> /// </summary>
@@ -290,7 +295,6 @@ namespace Flyby11
} }
} }
} }
} }
public static class ProcessExtensions public static class ProcessExtensions
+285
View File
@@ -0,0 +1,285 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="compPatch_debugCancel" xml:space="preserve">
<value>사용자가 바이패스 패치를 취소했습니다.</value>
</data>
<data name="compPatch_debugNotRemovableDrive" xml:space="preserve">
<value>사용자가 제거할 수 없는 드라이브를 선택하려고 했습니다.</value>
</data>
<data name="compPatch_debugNoUSBDrive" xml:space="preserve">
<value>패치할 USB 드라이브를 선택하지 않았습니다.</value>
</data>
<data name="compPatch_msgFailedEx" xml:space="preserve">
<value>바이패스 패치 적용에 실패했습니다:</value>
</data>
<data name="compPatch_msgNotRemovableDrive" xml:space="preserve">
<value>선택한 경로는 이동식 드라이브가 아닙니다. USB 드라이브를 선택하세요.</value>
</data>
<data name="compPatch_msgSelectDrive" xml:space="preserve">
<value>Windows 11 설치 파일이 들어 있는 USB 드라이브를 선택하세요.\n이 기능은 특정 시스템 요구 사항을 우회하는 호환성 패치를 추가합니다.\nRufus를 포함한 모든 도구로 준비된 드라이브와 호환됩니다. 드라이브가 준비되었는지 확인하세요!</value>
</data>
<data name="compPatch_msgSelectDriveConfirm" xml:space="preserve">
<value>선택한 USB 드라이브에 호환성 우회 설정이 적용됩니다. 계속하시겠습니까?</value>
</data>
<data name="compPatch_msgSuccess" xml:space="preserve">
<value>바이패스 패치가 성공적으로 적용되었습니다!</value>
</data>
<data name="ctl_FormTitle" xml:space="preserve">
<value>Flyby11 업그레이드 도우미</value>
</data>
<data name="ctl_inkCompPatch" xml:space="preserve">
<value>ISO에 호환성 패치 적용 (새로 설치)</value>
</data>
<data name="ctl_linkCiuv" xml:space="preserve">
<value>Windows 11로 업그레이드할 수 있나요?</value>
</data>
<data name="ctl_linkVote" xml:space="preserve">
<value>업그레이드가 제대로 됐나요?</value>
</data>
<data name="ctl_statusLabel" xml:space="preserve">
<value>Windows 11 ISO를 끌어서 놓아 패치하고 지원되지 않는 하드웨어에 설치합니다 (내부 업그레이드).</value>
</data>
<data name="faq_a1" xml:space="preserve">
<value>답변: Microsoft 공식 웹사이트에서 최신 ISO를 다운로드하거나 Fido 다운로더를 사용할 수 있습니다.</value>
</data>
<data name="faq_a2" xml:space="preserve">
<value>답변: Windows 11을 성공적으로 설치하고 비용을 약간 절약했다면 감사의 표시로 여기에 작은 글을 남겨주세요.</value>
</data>
<data name="faq_a2Link" xml:space="preserve">
<value>여기를 클릭하여 기부하고 지지를 표해주세요.</value>
</data>
<data name="faq_a3" xml:space="preserve">
<value>답변: ISO가 마운트되면 설치 프로세스가 백그라운드에서 실행됩니다. Windows 설치 프로그램이 시작되어 컴퓨터에 Windows 11을 설치하는 데 필요한 단계를 안내합니다.</value>
</data>
<data name="faq_a4" xml:space="preserve">
<value>답변: 오류 메시지를 확인하시고 GitHub에 보고해 주세요.</value>
</data>
<data name="faq_a5" xml:space="preserve">
<value>답변: 네, Microsoft는 백도어를 열어 두었습니다. 이 방법은 Windows Server 설치 변형을 사용하는 Windows 11 설치 프로세스의 기능을 활용합니다. 일반 Windows 11 설치와 달리, 이 변형은 대부분의 하드웨어 호환성 검사를 건너뜁니다.</value>
</data>
<data name="faq_a6" xml:space="preserve">
<value>답변: Microsoft에 따르면 PC는 폐기해야 한다고 합니다. 저라면 Windows에서 Linux로 바꾸고 PC를 폐기하는 것을 추천합니다.</value>
</data>
<data name="faq_a7" xml:space="preserve">
<value>답변: 개발자는 Belim이며 Builtbybel로도 알려져 있습니다. 그는 Windows 커뮤니티에 많은 코드를 기여했습니다.</value>
</data>
<data name="faq_a7Link" xml:space="preserve">
<value>개발자의 작업에 대해 자세히 알아보려면 여기를 클릭하세요.</value>
</data>
<data name="faq_downloadFido" xml:space="preserve">
<value>Fido를 통해 다운로드 (권장)</value>
</data>
<data name="faq_downloadMS" xml:space="preserve">
<value>Microsoft 사이트</value>
</data>
<data name="faq_header" xml:space="preserve">
<value>자주 묻는 질문 (FAQ)</value>
</data>
<data name="faq_q1" xml:space="preserve">
<value>질문: 최신 Windows 11 ISO는 어디서 구할 수 있나요?</value>
</data>
<data name="faq_q2" xml:space="preserve">
<value>질문: 개발자를 어떻게 지원할 수 있나요?</value>
</data>
<data name="faq_q3" xml:space="preserve">
<value>질문: ISO를 마운트한 후 설정 과정은 어떻게 진행되나요?</value>
</data>
<data name="faq_q4" xml:space="preserve">
<value>질문: 설치 중에 문제가 발생하면 어떻게 해야 하나요?</value>
</data>
<data name="faq_q5" xml:space="preserve">
<value>질문: 이 방법을 사용하는 것이 합법인가요?</value>
</data>
<data name="faq_q6" xml:space="preserve">
<value>질문: 내 PC가 지원되지 않는 경우 어떤 대안이 있나요?</value>
</data>
<data name="faq_q7" xml:space="preserve">
<value>질문: 개발자는 누구인가요?</value>
</data>
<data name="ciuView_lblPtAns" xml:space="preserve">
<value>1. 해당 기기는 현재 지원되는 Windows 10 버전을 실행 중입니다. 해당 기기가 현재 지원되는 Windows 10 버전을 실행하고 있지 않은 경우, 지원되는 Windows 10 버전으로 업그레이드하세요.</value>
</data>
<data name="ciuView_lblPtAns2" xml:space="preserve">
<value>2. 장치가 만족합니다</value>
</data>
<data name="ciuView_lblPtAns3" xml:space="preserve">
<value>1. 다운로드하고 실행하세요</value>
</data>
<data name="ciuView_lblPtAns4" xml:space="preserve">
<value>2. 다음 Windows 업데이트 바로 가기를 선택한 다음 업데이트 확인 버튼을 선택합니다.</value>
</data>
<data name="ciuView_lblPtAns5" xml:space="preserve">
<value>3. 기기가 Windows 11 공식 요구 사항을 충족하지 못하시나요? Windows 업데이트를 통해 호환성 패치를 적용하여 현재 위치 업그레이드를 활성화할 수 있습니다.</value>
</data>
<data name="ciuView_lblPtHdr" xml:space="preserve">
<value>다음 기준을 충족하는 경우 기존 Windows 10 장치를 Windows 11로 업그레이드할 수 있습니다.</value>
</data>
<data name="ciuView_lblPtHdr2" xml:space="preserve">
<value>Windows 10 장치가 Windows 11로 업그레이드할 수 있는지 확인하려면 다음 옵션 중 하나를 따르세요.</value>
</data>
<data name="ciuView_linkPtAns2" xml:space="preserve">
<value>Windows 11을 실행하기 위한 최소 하드웨어 사양.</value>
</data>
<data name="ciuView_linkPtAns3" xml:space="preserve">
<value>WhyNotWin11 앱을 사용하여 기기가 최소 시스템 요구 사항을 충족하는지 확인하세요.</value>
</data>
<data name="msg_InstallReady" xml:space="preserve">
<value>이제 Windows 11 설치를 진행할 수 있습니다. 설치 창의 지침을 따르세요.</value>
<comment>Install</comment>
</data>
<data name="_debugInstallReady" xml:space="preserve">
<value>지원되지 않는 하드웨어에 Windows 11을 설치할 준비가 되었습니다! 'Windows Server' 메시지는 무시하세요. 설치가 완료되었습니다!</value>
<comment>Install</comment>
</data>
<data name="_debugInstallRunElevated" xml:space="preserve">
<value>상승된 권한으로 설정 프로세스를 시작합니다...</value>
<comment>Install</comment>
</data>
<data name="_debugStatusHandleIsoEx" xml:space="preserve">
<value>어머나! 오류가 발생했습니다.</value>
<comment>Mounting</comment>
</data>
<data name="_debugStatusMounting" xml:space="preserve">
<value>ISO 마운트... 잠깐만요!</value>
<comment>Mounting</comment>
</data>
<data name="_debugStatusMountingFailed" xml:space="preserve">
<value>ISO를 마운트하지 못했습니다. 다시 시도해 주세요.</value>
<comment>Mounting</comment>
</data>
<data name="_debugStatusMountingSuccess" xml:space="preserve">
<value>ISO가 성공적으로 마운트되었습니다! 이제 Windows 11을 준비하세요!</value>
<comment>Mounting</comment>
</data>
<data name="_debugStatusRunning" xml:space="preserve">
<value>거의 다 왔어요! 설치 준비를 하고 있어요...</value>
<comment>Install</comment>
</data>
<data name="_debugStatusSetupFileNotFound" xml:space="preserve">
<value>설치 파일을 찾을 수 없습니다</value>
<comment>Mounting</comment>
</data>
<data name="ctl_linkSelectComputer" xml:space="preserve">
<value>컴퓨터에서 선택</value>
</data>
<data name="msgClosing" xml:space="preserve">
<value>제 앱을 사용해주셔서 감사합니다!\n\n저는 여가 시간에 Windows 10에서 Windows 11로 업그레이드하는 데 도움이 되는 이 애플리케이션을 개발했습니다. Microsoft 하드웨어 요구 사항에 따라 일반적으로 지원되지 않는 PC에서도 사용할 수 있습니다.\n\n제 앱은 새 컴퓨터를 구매하지 않도록 도와주고 불필요한 전자 폐기물을 줄이는 데 적극적으로 기여합니다.\n\n일반적으로 저는 프로젝트에 대해 개발이나 지원 비용을 청구하지 않습니다.\n하지만 이 앱은 훨씬 더 포괄적이고, 더 많은 기능을 제공하며, 더 많은 지원이 필요하므로 가능하시다면 소액의 자발적인 기부를 고려해 주시면 감사하겠습니다.\n\n물론, 기부를 원하고 경제적으로 여유가 있으시다면 가능합니다.\n\n지금 PayPal로 기부하시겠습니까?</value>
</data>
</root>
+285
View File
@@ -0,0 +1,285 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="compPatch_debugCancel" xml:space="preserve">
<value>Omzeilingspatch geannuleerd door gebruiker.</value>
</data>
<data name="compPatch_debugNotRemovableDrive" xml:space="preserve">
<value>Gebruiker probeerde een niet-verwisselbaar station te selecteren.</value>
</data>
<data name="compPatch_debugNoUSBDrive" xml:space="preserve">
<value>Geen USB-station geselecteerd voor patching.</value>
</data>
<data name="compPatch_msgFailedEx" xml:space="preserve">
<value>Fout bij toepassen van omzeilingspatch:</value>
</data>
<data name="compPatch_msgNotRemovableDrive" xml:space="preserve">
<value>Het geselecteerde pad is geen verwisselbaar station. Selecteer een USB-station.</value>
</data>
<data name="compPatch_msgSelectDrive" xml:space="preserve">
<value>Selecteer het USB-station met uw Windows 11 installatiebestanden.\nDeze functie voegt een compatibiliteitspatch toe om bepaalde systeemeisen te omzeilen.\nCompatibel met stations die zijn voorbereid met elke tool, inclusief Rufus. Zorg ervoor dat het station klaar is!</value>
</data>
<data name="compPatch_msgSelectDriveConfirm" xml:space="preserve">
<value>Dit zal compatibiliteits-omzeilingsinstellingen toepassen op het geselecteerde USB-station. Doorgaan?</value>
</data>
<data name="compPatch_msgSuccess" xml:space="preserve">
<value>Omzeilingspatch succesvol toegepast!</value>
</data>
<data name="ctl_FormTitle" xml:space="preserve">
<value>Flyby11 Upgrade-assistent</value>
</data>
<data name="ctl_inkCompPatch" xml:space="preserve">
<value>Compatibiliteitspatch toepassen op ISO (Schone installatie)</value>
</data>
<data name="ctl_linkCiuv" xml:space="preserve">
<value>Kan ik upgraden naar Windows 11?</value>
</data>
<data name="ctl_linkVote" xml:space="preserve">
<value>Werkte de upgrade?</value>
</data>
<data name="ctl_statusLabel" xml:space="preserve">
<value>Sleep de Windows 11 ISO hierheen om het te patchen en te installeren op niet-ondersteunde hardware (In-place upgrade).</value>
</data>
<data name="faq_a1" xml:space="preserve">
<value>A: U kunt de nieuwste ISO downloaden van de officiële Microsoft-website of de Fido Downloader gebruiken.</value>
</data>
<data name="faq_a2" xml:space="preserve">
<value>A: Als u Windows 11 succesvol heeft geïnstalleerd en wat geld heeft bespaard, voel je vrij om hier een kleine donatie als dank achter te laten.</value>
</data>
<data name="faq_a2Link" xml:space="preserve">
<value>Klik hier om te doneren en uw steun te tonen.</value>
</data>
<data name="faq_a3" xml:space="preserve">
<value>A: Zodra de ISO is gekoppeld, wordt het installatieproces op de achtergrond uitgevoerd. Het Windows-installatieprogramma start en begeleidt u door de stappen die nodig zijn om Windows 11 op uw machine te installeren.</value>
</data>
<data name="faq_a4" xml:space="preserve">
<value>A: Controleer de foutmeldingen en rapporteer het op GitHub.</value>
</data>
<data name="faq_a5" xml:space="preserve">
<value>A: Ja, Microsoft heeft een achterdeur open gelaten. Deze methode maakt gebruik van een functie van het Windows 11 installatieproces die de Windows Server-variant van de installatie gebruikt. In tegenstelling tot de gewone Windows 11-installatie slaat deze variant de meeste hardware-compatibiliteitscontroles over.</value>
</data>
<data name="faq_a6" xml:space="preserve">
<value>A: Volgens Microsoft zou je je PC weg moeten gooien. Ik zou voorstellen om Linux erop te installeren en weg te gaan van Windows.</value>
</data>
<data name="faq_a7" xml:space="preserve">
<value>A: De ontwikkelaar is Belim, ook bekend als Builtbybel, die veel code heeft bijgedragen aan de Windows-community.</value>
</data>
<data name="faq_a7Link" xml:space="preserve">
<value>Klik hier om meer te leren over het werk van de ontwikkelaar.</value>
</data>
<data name="faq_downloadFido" xml:space="preserve">
<value>Downloaden via Fido (Aanbevolen)</value>
</data>
<data name="faq_downloadMS" xml:space="preserve">
<value>Microsoft-site</value>
</data>
<data name="faq_header" xml:space="preserve">
<value>Veelgestelde vragen (FAQ)</value>
</data>
<data name="faq_q1" xml:space="preserve">
<value>V: Waar kan ik de nieuwste Windows 11 ISO krijgen?</value>
</data>
<data name="faq_q2" xml:space="preserve">
<value>V: Hoe kan ik de ontwikkelaar ondersteunen?</value>
</data>
<data name="faq_q3" xml:space="preserve">
<value>V: Hoe werkt het installatieproces zodra de ISO is gekoppeld?</value>
</data>
<data name="faq_q4" xml:space="preserve">
<value>V: Wat als ik problemen ondervind tijdens de installatie?</value>
</data>
<data name="faq_q5" xml:space="preserve">
<value>V: Is het legaal om deze methode te gebruiken?</value>
</data>
<data name="faq_q6" xml:space="preserve">
<value>V: Wat zijn mijn alternatieven als mijn PC niet wordt ondersteund?</value>
</data>
<data name="faq_q7" xml:space="preserve">
<value>V: Wie is de ontwikkelaar?</value>
</data>
<data name="ciuView_lblPtAns" xml:space="preserve">
<value>1. Het apparaat draait een momenteel ondersteunde versie van Windows 10. Als het apparaat momenteel geen ondersteunde versie van Windows 10 draait, upgrade dan naar een ondersteunde versie van Windows 10.</value>
</data>
<data name="ciuView_lblPtAns2" xml:space="preserve">
<value>2. Het apparaat voldoet aan</value>
</data>
<data name="ciuView_lblPtAns3" xml:space="preserve">
<value>1. Download en voer de</value>
</data>
<data name="ciuView_lblPtAns4" xml:space="preserve">
<value>2. Selecteer de volgende Windows Update-snelkoppeling en selecteer vervolgens de knop Controleren op updates:</value>
</data>
<data name="ciuView_lblPtAns5" xml:space="preserve">
<value>3. Voldoet uw apparaat niet aan de officiële vereisten voor Windows 11? U kunt een compatibiliteitspatch toepassen om de In-place upgrade via Windows Update in te schakelen.</value>
</data>
<data name="ciuView_lblPtHdr" xml:space="preserve">
<value>Een bestaand Windows 10-apparaat kan worden geüpgraded naar Windows 11 als het voldoet aan de volgende criteria:</value>
</data>
<data name="ciuView_lblPtHdr2" xml:space="preserve">
<value>Om te zien of een Windows 10-apparaat in aanmerking komt voor upgrade naar Windows 11, volg een van deze opties:</value>
</data>
<data name="ciuView_linkPtAns2" xml:space="preserve">
<value>de minimale hardwarespecificaties om Windows 11 uit te voeren.</value>
</data>
<data name="ciuView_linkPtAns3" xml:space="preserve">
<value>WhyNotWin11-app om te bevestigen dat uw apparaat voldoet aan de minimumsysteemvereisten</value>
</data>
<data name="msg_InstallReady" xml:space="preserve">
<value>Windows 11-installatie kan nu doorgaan. Volg de instructies in het installatievenster.</value>
<comment>Install</comment>
</data>
<data name="_debugInstallReady" xml:space="preserve">
<value>U bent klaar om Windows 11 te installeren op niet-ondersteunde hardware! Negeer de 'Windows Server'-prompt; u bent helemaal klaar!</value>
<comment>Install</comment>
</data>
<data name="_debugInstallRunElevated" xml:space="preserve">
<value>Het installatieproces starten met verhoogde bevoegdheden...</value>
<comment>Install</comment>
</data>
<data name="_debugStatusHandleIsoEx" xml:space="preserve">
<value>Oeps! Er ging iets mis:</value>
<comment>Mounting</comment>
</data>
<data name="_debugStatusMounting" xml:space="preserve">
<value>ISO koppelen... Hou vol!</value>
<comment>Mounting</comment>
</data>
<data name="_debugStatusMountingFailed" xml:space="preserve">
<value>ISO koppelen mislukt. Probeer het opnieuw.</value>
<comment>Mounting</comment>
</data>
<data name="_debugStatusMountingSuccess" xml:space="preserve">
<value>ISO succesvol gekoppeld! Laten we deze Windows 11 klaar maken!</value>
<comment>Mounting</comment>
</data>
<data name="_debugStatusRunning" xml:space="preserve">
<value>Bijna klaar! We maken de installatie gereed...</value>
<comment>Install</comment>
</data>
<data name="_debugStatusSetupFileNotFound" xml:space="preserve">
<value>Installatiebestand niet gevonden in</value>
<comment>Mounting</comment>
</data>
<data name="ctl_linkSelectComputer" xml:space="preserve">
<value>Selecteren van computer</value>
</data>
<data name="msgClosing" xml:space="preserve">
<value>Bedankt voor het gebruiken van mijn app! Ik heb deze applicatie in mijn vrije tijd ontwikkeld om u te helpen upgraden van Windows 10 naar Windows 11 – zelfs op PC's die volgens Microsoft's hardwarevereisten normaal gesproken niet zouden worden ondersteund. Mijn app helpt u een nieuwe computer te vermijden en draagt actief bij aan het verminderen van onnodige elektronische afval. Normaal gesproken vraag ik niets voor mijn projecten – noch voor ontwikkeling, noch voor ondersteuning. Omdat deze app echter aanzienlijk uitgebreider is, meer functies biedt en meer ondersteuning vereist, zou ik dankbaar zijn als u een kleine vrijwillige donatie zou willen overwegen, indien u dat kunt. Natuurlijk alleen als u wilt en het zich kunt veroorloven. Wilt u nu doneren op PayPal?</value>
</data>
</root>
+285
View File
@@ -0,0 +1,285 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="compPatch_debugNotRemovableDrive" xml:space="preserve">
<value>O usuário tentou selecionar uma mídia não removível.</value>
</data>
<data name="compPatch_debugNoUSBDrive" xml:space="preserve">
<value>Nenhuma unidade USB selecionada para aplicar o patch.</value>
</data>
<data name="ctl_linkCiuv" xml:space="preserve">
<value>Posso atualizar para o Windows 11?</value>
</data>
<data name="ctl_linkVote" xml:space="preserve">
<value>A atualização funcionou?</value>
</data>
<data name="_debugStatusHandleIsoEx" xml:space="preserve">
<value>Ops! Algo deu errado:</value>
<comment>Mounting</comment>
</data>
<data name="_debugStatusMounting" xml:space="preserve">
<value>Montando o arquivo ISO... Só um momento!</value>
<comment>Mounting</comment>
</data>
<data name="_debugStatusMountingFailed" xml:space="preserve">
<value>Falha ao montar o arquivo ISO. Tente de novo.</value>
<comment>Mounting</comment>
</data>
<data name="_debugStatusMountingSuccess" xml:space="preserve">
<value>ISO montado com sucesso! Vamos preparar o Windows 11!</value>
<comment>Mounting</comment>
</data>
<data name="_debugStatusRunning" xml:space="preserve">
<value>Quase lá! Estamos preparando a instalação...</value>
<comment>Install</comment>
</data>
<data name="_debugStatusSetupFileNotFound" xml:space="preserve">
<value>Arquivo de instalação não encontrado em</value>
<comment>Mounting</comment>
</data>
<data name="ctl_linkSelectComputer" xml:space="preserve">
<value>Selecionar do computador</value>
</data>
<data name="compPatch_debugCancel" xml:space="preserve">
<value>Patch de bypass cancelado pelo usuário.</value>
</data>
<data name="compPatch_msgFailedEx" xml:space="preserve">
<value>Falha ao aplicar patch de bypass:</value>
</data>
<data name="compPatch_msgNotRemovableDrive" xml:space="preserve">
<value>O caminho selecionado não é uma unidade removível. Selecione uma unidade USB.</value>
</data>
<data name="compPatch_msgSelectDrive" xml:space="preserve">
<value>Selecione a unidade USB contendo os arquivos de instalação do Windows 11.\nEste recurso adiciona um patch de compatibilidade para ignorar certos requerimentos de sistema.\nCompatível com unidades preparadas por qualquer ferramenta, incluindo o Rufus. Garanta que a unidade esteja pronta!</value>
</data>
<data name="compPatch_msgSelectDriveConfirm" xml:space="preserve">
<value>Isso aplicará as configurações de bypass de compatibilidade na unidade USB selecionada. Continuar?</value>
</data>
<data name="compPatch_msgSuccess" xml:space="preserve">
<value>Patch de bypass aplicado com sucesso!</value>
</data>
<data name="ctl_FormTitle" xml:space="preserve">
<value>Assistente de Atualização Flyby11</value>
</data>
<data name="ctl_inkCompPatch" xml:space="preserve">
<value>Aplicar patch de compatibilidade na ISO (Instalação limpa)</value>
</data>
<data name="ctl_statusLabel" xml:space="preserve">
<value>Arraste e solte a ISO do Windows 11 para aplicar o patch e instalá-lo em hardware não suportado (Atualização local).</value>
</data>
<data name="faq_a1" xml:space="preserve">
<value>R: Você pode baixar o ISO mais recente do site oficial da Microsoft ou usar o Fido Downloader.</value>
</data>
<data name="faq_a2" xml:space="preserve">
<value>R: Se você instalou o Windows 11 com sucesso e economizou algum dinheiro, sinta-se à vontade para deixar algo como agradecimento aqui.</value>
</data>
<data name="faq_a2Link" xml:space="preserve">
<value>Clique aqui para doar e mostrar seu apoio.</value>
</data>
<data name="faq_a3" xml:space="preserve">
<value>R: Após a montagem da ISO, o processo de instalação é executado em segundo plano. O instalador do Windows é iniciado, guiando você pelas etapas necessárias para instalar o Windows 11 na sua máquina.</value>
</data>
<data name="faq_a4" xml:space="preserve">
<value>R: Verifique as mensagens de erro e informe-as no GitHub.</value>
</data>
<data name="faq_a5" xml:space="preserve">
<value>R: Sim, a Microsoft deixou uma brecha. Este método aproveita um recurso do processo de instalação do Windows 11 que utiliza a variante do Windows Server. Ao contrário da instalação padrão do Windows 11, esta variante ignora a maioria das verificações de compatibilidade de hardware.</value>
</data>
<data name="faq_a6" xml:space="preserve">
<value>R: Segundo a Microsoft, você deve jogar seu PC fora. Eu sugeriria instalar o Linux nele e abandonar o Windows.</value>
</data>
<data name="faq_a7" xml:space="preserve">
<value>R: O desenvolvedor se chama Belim, também conhecido como Builtbybel, que contribuiu com muito código para a comunidade Windows.</value>
</data>
<data name="faq_a7Link" xml:space="preserve">
<value>Clique aqui para saber mais sobre o trabalho do desenvolvedor.</value>
</data>
<data name="faq_downloadFido" xml:space="preserve">
<value>Baixar pelo Fido (Recomendado)</value>
</data>
<data name="faq_downloadMS" xml:space="preserve">
<value>Site da Microsoft</value>
</data>
<data name="faq_header" xml:space="preserve">
<value>Perguntas Frequentes</value>
</data>
<data name="faq_q1" xml:space="preserve">
<value>P: Onde posso obter o ISO mais recente do Windows 11?</value>
</data>
<data name="faq_q2" xml:space="preserve">
<value>P: Como posso apoiar o desenvolvedor?</value>
</data>
<data name="faq_q3" xml:space="preserve">
<value>P: Como funciona o processo de instalação depois que a ISO é montada?</value>
</data>
<data name="faq_q4" xml:space="preserve">
<value>P: E se eu tiver problemas durante a instalação?</value>
</data>
<data name="faq_q5" xml:space="preserve">
<value>P: É legal usar esse método?</value>
</data>
<data name="faq_q6" xml:space="preserve">
<value>P: Quais são minhas alternativas se meu PC não for compatível?</value>
</data>
<data name="faq_q7" xml:space="preserve">
<value>P: Quem é o desenvolvedor?</value>
</data>
<data name="ciuView_lblPtAns" xml:space="preserve">
<value>1. O dispositivo está executando uma versão atualmente compatível do Windows 10. Se o dispositivo não estiver executando uma versão compatível, atualize para uma versão que seja compatível.</value>
</data>
<data name="ciuView_lblPtAns2" xml:space="preserve">
<value>2. O dispositivo atende</value>
</data>
<data name="ciuView_lblPtAns3" xml:space="preserve">
<value>1. Baixe e execute o</value>
</data>
<data name="ciuView_lblPtAns4" xml:space="preserve">
<value>2. Selecione o seguinte atalho do Windows Update e então selecione o botão 'Verificar por atualizações':</value>
</data>
<data name="ciuView_lblPtAns5" xml:space="preserve">
<value>3. Seu dispositivo não atende aos requisitos oficiais do Windows 11? Você pode aplicar um patch de compatibilidade para habilitar a Atualização Local por meio do Windows Update.</value>
</data>
<data name="ciuView_lblPtHdr" xml:space="preserve">
<value>Um dispositivo Windows 10 existente pode ser atualizado para o Windows 11 se atender aos seguintes critérios:</value>
</data>
<data name="ciuView_lblPtHdr2" xml:space="preserve">
<value>Para verificar se um dispositivo Windows 10 está qualificado para atualização para o Windows 11, siga uma destas opções:</value>
</data>
<data name="ciuView_linkPtAns2" xml:space="preserve">
<value>as especificações mínimas de hardware para executar o Windows 11.</value>
</data>
<data name="ciuView_linkPtAns3" xml:space="preserve">
<value>aplicativo WhyNotWin11 para confirmar se seu dispositivo atende aos requisitos mínimos do sistema.</value>
</data>
<data name="msg_InstallReady" xml:space="preserve">
<value>A instalação do Windows 11 já pode prosseguir. Siga as instruções na janela de instalação.</value>
<comment>Install</comment>
</data>
<data name="_debugInstallReady" xml:space="preserve">
<value>Você está pronto para instalar o Windows 11 em hardware não suportado! Ignore o prompt "Windows Server"; está tudo pronto!</value>
<comment>Install</comment>
</data>
<data name="_debugInstallRunElevated" xml:space="preserve">
<value>Iniciando o processo de instalação com privilégios de administrador...</value>
<comment>Install</comment>
</data>
<data name="msgClosing" xml:space="preserve">
<value>Obrigado por usar meu aplicativo!\n\nDesenvolvi este aplicativo no meu tempo livre para ajudar você a atualizar do Windows 10 para o Windows 11, mesmo em PCs que, de acordo com os requisitos de hardware da Microsoft, normalmente não seriam suportados.\n\nMeu aplicativo ajuda você a evitar a compra de um novo computador e contribui ativamente para reduzir o lixo eletrônico desnecessário.\n\nNormalmente, não cobro nada pelos meus projetos, nem pelo desenvolvimento nem pelo suporte.\nNo entanto, como este aplicativo é significativamente mais abrangente, oferece mais recursos e requer mais suporte, eu agradeceria se você considerasse fazer uma pequena doação voluntária, se puder.\n\nClaro, somente se você quiser e puder pagar.\n\nGostaria de doar no PayPal agora?</value>
</data>
</root>
-223
View File
@@ -1,223 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="compPatch_debugCancel" xml:space="preserve">
<value>Установка патча совместимости отменена пользователем.</value>
</data>
<data name="compPatch_debugNotRemovableDrive" xml:space="preserve">
<value>Пользователь пытался выбрать несъемный диск.</value>
</data>
<data name="compPatch_debugNoUSBDrive" xml:space="preserve">
<value>USB-накопитель для установки патча не выбран.</value>
</data>
<data name="compPatch_msgFailedEx" xml:space="preserve">
<value>Не удалось применить патч совместимости:</value>
</data>
<data name="compPatch_msgNotRemovableDrive" xml:space="preserve">
<value>Выбранный путь не является съемным диском. Пожалуйста, выберите USB-накопитель.</value>
</data>
<data name="compPatch_msgSelectDrive" xml:space="preserve">
<value>Выберите USB-накопитель с файлами установки Windows 11.\nЭта функция добавляет патч совместимости для обхода определенных системных требований.\nСовместимо с накопителями, подготовленными любым инструментом, включая Rufus. Убедитесь, что накопитель готов!</value>
</data>
<data name="compPatch_msgSelectDriveConfirm" xml:space="preserve">
<value>Это применит настройки обхода совместимости на выбранном USB-накопителе. Продолжить?</value>
</data>
<data name="compPatch_msgSuccess" xml:space="preserve">
<value>Патч совместимости успешно применен!</value>
</data>
<data name="ctl_FormTitle" xml:space="preserve">
<value>Помощник по обновлению Flyby11</value>
</data>
<data name="ctl_inkCompPatch" xml:space="preserve">
<value>Применить патч совместимости к ISO (чистая установка)</value>
</data>
<data name="ctl_linkCiuv" xml:space="preserve">
<value>Могу ли я обновиться до Windows 11?</value>
</data>
<data name="ctl_linkVote" xml:space="preserve">
<value>Получилось ли обновление?</value>
</data>
<data name="ctl_statusLabel" xml:space="preserve">
<value>Перетащите ISO-файл Windows 11 для применения патча и установки на неподдерживаемом оборудовании (обновление на месте).</value>
</data>
<data name="faq_a1" xml:space="preserve">
<value>О: Вы можете скачать последний ISO-файл с официального сайта Microsoft или использовать Fido Downloader.</value>
</data>
<data name="faq_a2" xml:space="preserve">
<value>О: Если вы успешно установили Windows 11 и сэкономили деньги, не стесняйтесь оставить небольшое пожертвование в знак благодарности здесь.</value>
</data>
<data name="faq_a2Link" xml:space="preserve">
<value>Нажмите здесь, чтобы пожертвовать и поддержать проект.</value>
</data>
<data name="faq_a3" xml:space="preserve">
<value>О: После монтирования ISO-файла процесс установки запускается в фоновом режиме. Установщик Windows запустится и проведет вас через необходимые шаги для установки Windows 11 на ваш компьютер.</value>
</data>
<data name="faq_a4" xml:space="preserve">
<value>О: Пожалуйста, проверьте сообщения об ошибках и сообщите о проблеме на GitHub.</value>
</data>
<data name="faq_a5" xml:space="preserve">
<value>О: Да, Microsoft оставила лазейку. Этот метод использует особенность процесса установки Windows 11, которая использует серверный вариант установки. В отличие от обычной установки Windows 11, этот вариант пропускает большинство проверок совместимости оборудования.</value>
</data>
<data name="faq_a6" xml:space="preserve">
<value>О: По мнению Microsoft, вам следует выбросить свой ПК. Я бы предложил установить на него Linux и отказаться от Windows.</value>
</data>
<data name="faq_a7" xml:space="preserve">
<value>О: Разработчик - Belim, также известный как Builtbybel, который внес большой вклад в сообщество Windows.</value>
</data>
<data name="faq_a7Link" xml:space="preserve">
<value>Нажмите здесь, чтобы узнать больше о работе разработчика.</value>
</data>
<data name="faq_downloadFido" xml:space="preserve">
<value>Скачать через Fido (рекомендуется)</value>
</data>
<data name="faq_downloadMS" xml:space="preserve">
<value>Сайт Microsoft</value>
</data>
<data name="faq_header" xml:space="preserve">
<value>Часто задаваемые вопросы (FAQ)</value>
</data>
<data name="faq_q1" xml:space="preserve">
<value>В: Где взять свежий ISO-файл Windows 11?</value>
</data>
<data name="faq_q2" xml:space="preserve">
<value>В: Как я могу поддержать разработчика?</value>
</data>
<data name="faq_q3" xml:space="preserve">
<value>В: Как работает процесс установки после монтирования ISO?</value>
</data>
<data name="faq_q4" xml:space="preserve">
<value>В: Что делать, если возникли проблемы во время установки?</value>
</data>
<data name="faq_q5" xml:space="preserve">
<value>В: Законно ли использовать этот метод?</value>
</data>
<data name="faq_q6" xml:space="preserve">
<value>В: Какие есть альтернативы, если мой ПК не поддерживается?</value>
</data>
<data name="faq_q7" xml:space="preserve">
<value>В: Кто разработчик?</value>
</data>
<data name="ciuView_lblPtAns" xml:space="preserve">
<value>1. Устройство работает на поддерживаемой версии Windows 10. Если устройство сейчас не работает на поддерживаемой версии Windows 10, обновите его до поддерживаемой версии Windows 10.</value>
</data>
<data name="ciuView_lblPtAns2" xml:space="preserve">
<value>2. Устройство соответствует</value>
</data>
<data name="ciuView_lblPtAns3" xml:space="preserve">
<value>1. Скачайте и запустите</value>
</data>
<data name="ciuView_lblPtAns4" xml:space="preserve">
<value>2. Выберите следующий ярлык Windows Update и нажмите кнопку "Проверить наличие обновлений":</value>
</data>
<data name="ciuView_lblPtAns5" xml:space="preserve">
<value>3. Ваше устройство не соответствует официальным требованиям Windows 11? Вы можете применить патч совместимости для включения обновления на месте через Windows Update.</value>
</data>
<data name="ciuView_lblPtHdr" xml:space="preserve">
<value>Существующее устройство с Windows 10 может быть обновлено до Windows 11, если оно соответствует следующим критериям:</value>
</data>
<data name="ciuView_lblPtHdr2" xml:space="preserve">
<value>Чтобы проверить, может ли устройство с Windows 10 быть обновлено до Windows 11, выполните один из следующих вариантов:</value>
</data>
<data name="ciuView_linkPtAns2" xml:space="preserve">
<value>минимальным требованиям к оборудованию для запуска Windows 11.</value>
</data>
<data name="ciuView_linkPtAns3" xml:space="preserve">
<value>приложение WhyNotWin11, чтобы подтвердить, что ваше устройство соответствует минимальным системным требованиям</value>
</data>
<data name="msg_InstallReady" xml:space="preserve">
<value>Установка Windows 11 может быть продолжена. Пожалуйста, следуйте инструкциям в окне установки.</value>
<comment>Install</comment>
</data>
<data name="_debugInstallReady" xml:space="preserve">
<value>Вы готовы к установке Windows 11 на неподдерживаемом оборудовании! Игнорируйте сообщение о 'Windows Server' - всё готово!</value>
<comment>Install</comment>
</data>
<data name="_debugInstallRunElevated" xml:space="preserve">
<value>Запуск процесса установки с повышенными привилегиями...</value>
<comment>Install</comment>
</data>
<data name="_debugStatusHandleIsoEx" xml:space="preserve">
<value>Упс! Что-то пошло не так:</value>
<comment>Mounting</comment>
</data>
<data name="_debugStatusMounting" xml:space="preserve">
<value>Монтирование ISO... Подождите!</value>
<comment>Mounting</comment>
</data>
<data name="_debugStatusMountingFailed" xml:space="preserve">
<value>Не удалось смонтировать ISO. Пожалуйста, попробуйте снова.</value>
<comment>Mounting</comment>
</data>
<data name="_debugStatusMountingSuccess" xml:space="preserve">
<value>ISO успешно смонтирован! Давайте подготовим эту Windows 11!</value>
<comment>Mounting</comment>
</data>
<data name="_debugStatusRunning" xml:space="preserve">
<value>Почти готово! Подготавливаем установку...</value>
<comment>Install</comment>
</data>
<data name="_debugStatusSetupFileNotFound" xml:space="preserve">
<value>Файл установки не найден в</value>
<comment>Mounting</comment>
</data>
<data name="ctl_linkSelectComputer" xml:space="preserve">
<value>Выбрать с компьютера</value>
</data>
</root>
+22 -5
View File
@@ -35,6 +35,7 @@
this.panelFAQ = new System.Windows.Forms.Panel(); this.panelFAQ = new System.Windows.Forms.Panel();
this.panelContainer = new System.Windows.Forms.Panel(); this.panelContainer = new System.Windows.Forms.Panel();
this.panelMain = new System.Windows.Forms.Panel(); this.panelMain = new System.Windows.Forms.Panel();
this.chkAdvancedMode = new System.Windows.Forms.CheckBox();
this.panelDragDrop.SuspendLayout(); this.panelDragDrop.SuspendLayout();
this.panelContainer.SuspendLayout(); this.panelContainer.SuspendLayout();
this.panelMain.SuspendLayout(); this.panelMain.SuspendLayout();
@@ -48,7 +49,7 @@
this.panelDragDrop.Controls.Add(this.dropdownOptions); this.panelDragDrop.Controls.Add(this.dropdownOptions);
this.panelDragDrop.Controls.Add(this.btnExperience); this.panelDragDrop.Controls.Add(this.btnExperience);
this.panelDragDrop.Controls.Add(this.statusLabel); this.panelDragDrop.Controls.Add(this.statusLabel);
this.panelDragDrop.Location = new System.Drawing.Point(57, 178); this.panelDragDrop.Location = new System.Drawing.Point(57, 190);
this.panelDragDrop.Name = "panelDragDrop"; this.panelDragDrop.Name = "panelDragDrop";
this.panelDragDrop.Size = new System.Drawing.Size(436, 256); this.panelDragDrop.Size = new System.Drawing.Size(436, 256);
this.panelDragDrop.TabIndex = 0; this.panelDragDrop.TabIndex = 0;
@@ -110,7 +111,7 @@
this.panelFAQ.Dock = System.Windows.Forms.DockStyle.Right; this.panelFAQ.Dock = System.Windows.Forms.DockStyle.Right;
this.panelFAQ.Location = new System.Drawing.Point(589, 0); this.panelFAQ.Location = new System.Drawing.Point(589, 0);
this.panelFAQ.Name = "panelFAQ"; this.panelFAQ.Name = "panelFAQ";
this.panelFAQ.Size = new System.Drawing.Size(331, 585); this.panelFAQ.Size = new System.Drawing.Size(331, 609);
this.panelFAQ.TabIndex = 207; this.panelFAQ.TabIndex = 207;
// //
// panelContainer // panelContainer
@@ -120,7 +121,7 @@
this.panelContainer.Dock = System.Windows.Forms.DockStyle.Fill; this.panelContainer.Dock = System.Windows.Forms.DockStyle.Fill;
this.panelContainer.Location = new System.Drawing.Point(0, 0); this.panelContainer.Location = new System.Drawing.Point(0, 0);
this.panelContainer.Name = "panelContainer"; this.panelContainer.Name = "panelContainer";
this.panelContainer.Size = new System.Drawing.Size(589, 585); this.panelContainer.Size = new System.Drawing.Size(589, 609);
this.panelContainer.TabIndex = 209; this.panelContainer.TabIndex = 209;
// //
// panelMain // panelMain
@@ -129,19 +130,33 @@
| System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right))); | System.Windows.Forms.AnchorStyles.Right)));
this.panelMain.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(243)))), ((int)(((byte)(243)))), ((int)(((byte)(243))))); this.panelMain.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(243)))), ((int)(((byte)(243)))), ((int)(((byte)(243)))));
this.panelMain.Controls.Add(this.chkAdvancedMode);
this.panelMain.Controls.Add(this.panelDragDrop); this.panelMain.Controls.Add(this.panelDragDrop);
this.panelMain.Location = new System.Drawing.Point(5, 3); this.panelMain.Location = new System.Drawing.Point(5, 3);
this.panelMain.Name = "panelMain"; this.panelMain.Name = "panelMain";
this.panelMain.Size = new System.Drawing.Size(580, 572); this.panelMain.Size = new System.Drawing.Size(580, 596);
this.panelMain.TabIndex = 1; this.panelMain.TabIndex = 1;
// //
// chkAdvancedMode
//
this.chkAdvancedMode.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.chkAdvancedMode.AutoSize = true;
this.chkAdvancedMode.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.chkAdvancedMode.Location = new System.Drawing.Point(8, 566);
this.chkAdvancedMode.Name = "chkAdvancedMode";
this.chkAdvancedMode.Size = new System.Drawing.Size(397, 17);
this.chkAdvancedMode.TabIndex = 1;
this.chkAdvancedMode.Text = "Enable advanced upgrade mode (bypass compatibility and driver checks)";
this.chkAdvancedMode.UseVisualStyleBackColor = true;
this.chkAdvancedMode.CheckedChanged += new System.EventHandler(this.chkAdvancedMode_CheckedChanged);
//
// MainForm // MainForm
// //
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F); this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi; this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
this.AutoScroll = true; this.AutoScroll = true;
this.BackColor = System.Drawing.Color.WhiteSmoke; this.BackColor = System.Drawing.Color.WhiteSmoke;
this.ClientSize = new System.Drawing.Size(920, 585); this.ClientSize = new System.Drawing.Size(920, 609);
this.Controls.Add(this.panelContainer); this.Controls.Add(this.panelContainer);
this.Controls.Add(this.panelFAQ); this.Controls.Add(this.panelFAQ);
this.Name = "MainForm"; this.Name = "MainForm";
@@ -152,6 +167,7 @@
this.panelDragDrop.ResumeLayout(false); this.panelDragDrop.ResumeLayout(false);
this.panelContainer.ResumeLayout(false); this.panelContainer.ResumeLayout(false);
this.panelMain.ResumeLayout(false); this.panelMain.ResumeLayout(false);
this.panelMain.PerformLayout();
this.ResumeLayout(false); this.ResumeLayout(false);
} }
@@ -165,6 +181,7 @@
private System.Windows.Forms.Panel panelMain; private System.Windows.Forms.Panel panelMain;
private System.Windows.Forms.Button btnExperience; private System.Windows.Forms.Button btnExperience;
private System.Windows.Forms.ComboBox dropdownOptions; private System.Windows.Forms.ComboBox dropdownOptions;
private System.Windows.Forms.CheckBox chkAdvancedMode;
} }
} }
+29 -10
View File
@@ -1,13 +1,9 @@
using Flyby11.Properties; using System;
using System;
using System.Data;
using System.Diagnostics; using System.Diagnostics;
using System.Drawing; using System.Drawing;
using System.Globalization;
using System.IO; using System.IO;
using System.Runtime.InteropServices; using System.Runtime.InteropServices;
using System.Text.RegularExpressions; using System.Text.RegularExpressions;
using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Windows.Forms; using System.Windows.Forms;
using Views; using Views;
@@ -77,15 +73,13 @@ namespace Flyby11
private void InitializeLocalizedStrings() private void InitializeLocalizedStrings()
{ {
// Set localized strings for the UI elements
Text = Locales.Strings.ctl_FormTitle;
dropdownOptions.Items.Add("More options..."); dropdownOptions.Items.Add("More options...");
dropdownOptions.Items.Add(Locales.Strings.ctl_linkSelectComputer); dropdownOptions.Items.Add(Locales.Strings.ctl_linkSelectComputer);
dropdownOptions.Items.Add(Locales.Strings.ctl_inkCompPatch); dropdownOptions.Items.Add(Locales.Strings.ctl_inkCompPatch);
dropdownOptions.Items.Add(Locales.Strings.ctl_linkCiuv); dropdownOptions.Items.Add(Locales.Strings.ctl_linkCiuv);
dropdownOptions.Items.Add("(Vote) " + Locales.Strings.ctl_linkVote); // "Did the upgrade work?" dropdownOptions.Items.Add("(Vote) " + Locales.Strings.ctl_linkVote); // "Did the upgrade work?"
dropdownOptions.Items.Add("(App) Customize Windows 11 with Crapfixer"); // "Crapfixer Repository" dropdownOptions.Items.Add("(App) Customize Windows 11 with CrapFixer"); // "CrapFixer Repository"
dropdownOptions.Items.Add("Troubleshoot Compatibility Issues"); // Problems form
dropdownOptions.SelectedIndex = 0; dropdownOptions.SelectedIndex = 0;
} }
@@ -187,6 +181,7 @@ namespace Flyby11
private async Task HandleIsoInput(object sender, EventArgs e) private async Task HandleIsoInput(object sender, EventArgs e)
{ {
string isoPath = null; string isoPath = null;
bool experimentalEnabled = chkAdvancedMode.Checked;
if (e is DragEventArgs dragEvent && dragEvent.Data.GetDataPresent(DataFormats.FileDrop)) if (e is DragEventArgs dragEvent && dragEvent.Data.GetDataPresent(DataFormats.FileDrop))
{ {
@@ -213,7 +208,7 @@ namespace Flyby11
if (!string.IsNullOrEmpty(isoPath) && File.Exists(isoPath)) if (!string.IsNullOrEmpty(isoPath) && File.Exists(isoPath))
{ {
await _isoHandler.HandleIso(isoPath); await _isoHandler.HandleIso(isoPath, experimentalEnabled);
} }
} }
@@ -271,6 +266,12 @@ namespace Flyby11
// Open CFixer Repository // Open CFixer Repository
Process.Start("https://github.com/builtbybel/Crapfixer/"); Process.Start("https://github.com/builtbybel/Crapfixer/");
break; break;
case 6:
// Open Troubleshoot Compatibility Issues
ProblemsForm problemsForm = new ProblemsForm();
problemsForm.ShowDialog();
break;
} }
// Reset selection back to default prompt after action // Reset selection back to default prompt after action
dropdownOptions.SelectedIndex = 0; dropdownOptions.SelectedIndex = 0;
@@ -364,5 +365,23 @@ namespace Flyby11
}); });
} }
} }
private void chkAdvancedMode_CheckedChanged(object sender, EventArgs e)
{
if (chkAdvancedMode.Checked)
{
var result = MessageBox.Show(
"You are enabling an advanced setup mode. This option adds extra setup parameters that may improve compatibility on unsupported hardware. " +
"\r\nSuccess may vary depending on your system and drivers.\n\nDo you want to continue?",
"Advanced Mode Warning",
MessageBoxButtons.YesNo,
MessageBoxIcon.Warning);
if (result == DialogResult.No)
{
chkAdvancedMode.Checked = false;
}
}
}
} }
} }
+113
View File
@@ -0,0 +1,113 @@
namespace Flyby11
{
partial class ProblemsForm
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle();
this.dataGridViewIssues = new System.Windows.Forms.DataGridView();
this.ErrorCode = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Link = new System.Windows.Forms.DataGridViewLinkColumn();
((System.ComponentModel.ISupportInitialize)(this.dataGridViewIssues)).BeginInit();
this.SuspendLayout();
//
// dataGridViewIssues
//
this.dataGridViewIssues.AllowUserToAddRows = false;
this.dataGridViewIssues.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill;
this.dataGridViewIssues.BackgroundColor = System.Drawing.Color.WhiteSmoke;
this.dataGridViewIssues.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.dataGridViewIssues.ColumnHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.None;
dataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle1.BackColor = System.Drawing.SystemColors.Control;
dataGridViewCellStyle1.Font = new System.Drawing.Font("Segoe UI Variable Display Semib", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
dataGridViewCellStyle1.ForeColor = System.Drawing.SystemColors.WindowText;
dataGridViewCellStyle1.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle1.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle1.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.dataGridViewIssues.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle1;
this.dataGridViewIssues.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dataGridViewIssues.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.ErrorCode,
this.Link});
this.dataGridViewIssues.Dock = System.Windows.Forms.DockStyle.Fill;
this.dataGridViewIssues.GridColor = System.Drawing.SystemColors.Control;
this.dataGridViewIssues.Location = new System.Drawing.Point(0, 0);
this.dataGridViewIssues.Name = "dataGridViewIssues";
this.dataGridViewIssues.ReadOnly = true;
this.dataGridViewIssues.RowHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.None;
dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle2.BackColor = System.Drawing.SystemColors.Control;
dataGridViewCellStyle2.Font = new System.Drawing.Font("Segoe UI Variable Display", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
dataGridViewCellStyle2.ForeColor = System.Drawing.SystemColors.WindowText;
dataGridViewCellStyle2.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle2.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle2.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.dataGridViewIssues.RowHeadersDefaultCellStyle = dataGridViewCellStyle2;
this.dataGridViewIssues.RowHeadersVisible = false;
this.dataGridViewIssues.Size = new System.Drawing.Size(645, 377);
this.dataGridViewIssues.TabIndex = 0;
this.dataGridViewIssues.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dataGridViewIssues_CellContentClick);
//
// ErrorCode
//
this.ErrorCode.FillWeight = 149.2386F;
this.ErrorCode.HeaderText = "ErrorCode";
this.ErrorCode.Name = "ErrorCode";
this.ErrorCode.ReadOnly = true;
//
// Link
//
this.Link.FillWeight = 50.76142F;
this.Link.HeaderText = "Link";
this.Link.Name = "Link";
this.Link.ReadOnly = true;
//
// ProblemsForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(645, 377);
this.Controls.Add(this.dataGridViewIssues);
this.Name = "ProblemsForm";
this.ShowIcon = false;
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "Troubleshoot compatibility issues";
this.Load += new System.EventHandler(this.ProblemsForm_Load);
((System.ComponentModel.ISupportInitialize)(this.dataGridViewIssues)).EndInit();
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.DataGridView dataGridViewIssues;
private System.Windows.Forms.DataGridViewTextBoxColumn ErrorCode;
private System.Windows.Forms.DataGridViewLinkColumn Link;
}
}
+52
View File
@@ -0,0 +1,52 @@
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Windows.Forms;
namespace Flyby11
{
public partial class ProblemsForm : Form
{
private readonly Dictionary<string, string> _issues = new Dictionary<string, string>()
{
{"Can't upgrade to Windows 11 – Error 0x80888002","https://github.com/builtbybel/Flyby11/discussions/135"},
{ "Upgrading without losing all programs and settings", "https://github.com/builtbybel/Flyby11/discussions/54"},
{ "Upgrade Driver issue 0xC1900101", "https://github.com/builtbybel/Flyby11/issues/157"},
{ "We are enable to complete your request at this time", "https://github.com/builtbybel/Flyby11/issues/158"},
{ "Upgrade succeeded, but future updates not possible ", "https://github.com/builtbybel/Flyby11/discussions/144"},
{ "We couldn't install Windows Server - We've set your PC back the way it was Error 0xC1900101 - 0x20017", "https://github.com/builtbybel/Flyby11/issues/103 "},
{ "Mounting ISO fails", "https://github.com/builtbybel/Flyby11/issues/156"},
{ "Can't find your issue? Browse the community discussions for help", "https://github.com/builtbybel/Flyby11/discussions"},
};
public ProblemsForm()
{
InitializeComponent();
}
private void ProblemsForm_Load(object sender, EventArgs e)
{
foreach (var kv in _issues)
{
dataGridViewIssues.Rows.Add(kv.Key, "Details…");
}
}
private void dataGridViewIssues_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
if (dataGridViewIssues.Columns[e.ColumnIndex] is DataGridViewLinkColumn &&
e.RowIndex >= 0)
{
var code = dataGridViewIssues.Rows[e.RowIndex].Cells["ErrorCode"].Value.ToString();
if (_issues.TryGetValue(code, out var url))
{
System.Diagnostics.Process.Start(new ProcessStartInfo
{
FileName = url,
UseShellExecute = true
});
}
}
}
}
}
+126
View File
@@ -0,0 +1,126 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="ErrorCode.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Link.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
</root>
+2 -2
View File
@@ -29,5 +29,5 @@ using System.Runtime.InteropServices;
// Buildnummer // Buildnummer
// Revision // Revision
// //
[assembly: AssemblyVersion("2.4.405")] [assembly: AssemblyVersion("3.0.500")]
[assembly: AssemblyFileVersion("2.4.405")] [assembly: AssemblyFileVersion("3.0.500")]
+4 -1
View File
@@ -1,6 +1,9 @@
# Flyby11 (FlybyScript) Windows 11 for All – No Specs, No Problem! # Flyoobe (Flyby11) Windows 11 for All – No Specs, No Problem!
Flyby11 is a simple patcher that removes the annoying restrictions preventing you from installing Windows 11 (24H2) on unsupported hardware. Got an old PC? No TPM, Secure Boot, or your processor isn't supported? Flyby11 lets you install Windows 11 24H2 anyway. Flyby11 is a simple patcher that removes the annoying restrictions preventing you from installing Windows 11 (24H2) on unsupported hardware. Got an old PC? No TPM, Secure Boot, or your processor isn't supported? Flyby11 lets you install Windows 11 24H2 anyway.
<img width="1024" height="1024" alt="Flyoobe_mockup2" src="https://github.com/user-attachments/assets/8096fa8f-e1b5-4f88-8dfd-938327177aea" />
No complicated steps. No complicated steps.
**Just run the tool (see ["Releases"](https://github.com/builtbybel/Flyby11/releases/latest) in the right side of the page, you may need to unpack a zip file), and you'll be running Windows 11 on your outdated machine in no time.** **Just run the tool (see ["Releases"](https://github.com/builtbybel/Flyby11/releases/latest) in the right side of the page, you may need to unpack a zip file), and you'll be running Windows 11 on your outdated machine in no time.**
Think of it as sneaking through the back door without anyone noticing. Think of it as sneaking through the back door without anyone noticing.