修复某些bug

This commit is contained in:
2026-01-31 20:50:07 +08:00
parent 417d0b5d9e
commit a974c1ff0f
3 changed files with 75 additions and 77 deletions

View File

@@ -124,7 +124,7 @@ namespace CMLeonOS
}
// 执行命令
Console.WriteLine($"Executing: {line}");
// Console.WriteLine($"Executing: {line}");
shell.ExecuteCommand(line);
}

View File

@@ -89,47 +89,46 @@ namespace CMLeonOS
break;
case "help":
Console.WriteLine("Available commands:");
Console.WriteLine(" echo <text> - Display text (supports \\n for newline)");
Console.WriteLine(" clear/cls - Clear the screen");
Console.WriteLine(" restart - Restart the system");
Console.WriteLine(" shutdown - Shutdown the system");
Console.WriteLine(" time - Display current time");
Console.WriteLine(" date - Display current date");
Console.WriteLine(" prompt <text> - Change command prompt");
Console.WriteLine(" calc <expr> - Simple calculator");
Console.WriteLine(" history - Show command history");
Console.WriteLine(" echo <text> - Display text (supports \\n for newline)");
Console.WriteLine(" clear/cls - Clear the screen");
Console.WriteLine(" restart - Restart the system");
Console.WriteLine(" shutdown - Shutdown the system");
Console.WriteLine(" time - Display current time");
Console.WriteLine(" date - Display current date");
Console.WriteLine(" prompt <text> - Change command prompt");
Console.WriteLine(" calc <expr> - Simple calculator");
Console.WriteLine(" history - Show command history");
Console.WriteLine(" background <hex> - Change background color");
Console.WriteLine(" cuitest - Test CUI framework");
Console.WriteLine(" edit <file> - Simple code editor");
Console.WriteLine(" ls <dir> - List files and directories");
Console.WriteLine(" cd <dir> - Change directory");
Console.WriteLine(" pwd - Show current directory");
Console.WriteLine(" mkdir <dir> - Create directory");
Console.WriteLine(" rm <file> - Remove file");
Console.WriteLine(" Use -norisk to delete files in sys folder");
Console.WriteLine(" rmdir <dir> - Remove directory");
Console.WriteLine(" cat <file> - Display file content");
Console.WriteLine(" cuitest - Test CUI framework");
Console.WriteLine(" edit <file> - Simple code editor");
Console.WriteLine(" ls <dir> - List files and directories");
Console.WriteLine(" cd <dir> - Change directory");
Console.WriteLine(" pwd - Show current directory");
Console.WriteLine(" mkdir <dir> - Create directory");
Console.WriteLine(" rm <file> - Remove file");
Console.WriteLine(" Use -norisk to delete files in sys folder");
Console.WriteLine(" rmdir <dir> - Remove directory");
Console.WriteLine(" cat <file> - Display file content");
Console.WriteLine(" echo <text> > <file> - Write text to file");
Console.WriteLine(" head <file> - Display first lines of file");
Console.WriteLine(" Usage: head <file> <lines>");
Console.WriteLine(" tail <file> - Display last lines of file");
Console.WriteLine(" Usage: tail <file> <lines>");
Console.WriteLine(" wc <file> - Count lines, words, characters");
Console.WriteLine(" cp <src> <dst> - Copy file");
Console.WriteLine(" mv <src> <dst> - Move/rename file");
Console.WriteLine(" touch <file> - Create empty file");
Console.WriteLine(" find <name> - Find file");
Console.WriteLine(" getdisk - Show disk information");
Console.WriteLine(" user <cmd> - User management");
Console.WriteLine(" user add admin <username> <password> - Add admin user");
Console.WriteLine(" user add user <username> <password> - Add regular user");
Console.WriteLine(" user delete <username> - Delete user");
Console.WriteLine(" user list - List all users");
Console.WriteLine(" logout - Logout current user");
Console.WriteLine(" cpass - Change password");
Console.WriteLine(" version - Show OS version");
Console.WriteLine(" about - Show about information");
Console.WriteLine(" help - Show this help message");
Console.WriteLine(" head <file> - Display first lines of file");
Console.WriteLine(" Usage: head <file> <lines>");
Console.WriteLine(" tail <file> - Display last lines of file");
Console.WriteLine(" Usage: tail <file> <lines>");
Console.WriteLine(" wc <file> - Count lines, words, characters");
Console.WriteLine(" cp <src> <dst> - Copy file");
Console.WriteLine(" mv <src> <dst> - Move/rename file");
Console.WriteLine(" touch <file> - Create empty file");
Console.WriteLine(" find <name> - Find file");
Console.WriteLine(" getdisk - Show disk information");
Console.WriteLine(" user <cmd> - User management");
Console.WriteLine(" user add admin <username> <password> - Add admin user");
Console.WriteLine(" user add user <username> <password> - Add regular user");
Console.WriteLine(" user delete <username> - Delete user");
Console.WriteLine(" user list - List all users");
Console.WriteLine(" cpass - Change password");
Console.WriteLine(" version - Show OS version");
Console.WriteLine(" about - Show about information");
Console.WriteLine(" help - Show this help message");
Console.WriteLine();
Console.WriteLine("Startup Script: sys\\startup.cm");
Console.WriteLine(" Commands in this file will be executed on startup");
@@ -283,9 +282,6 @@ namespace CMLeonOS
case "user":
ProcessUserCommand(args);
break;
case "logout":
userSystem.Logout();
break;
case "cpass":
userSystem.ChangePassword();
break;

View File

@@ -16,6 +16,7 @@ namespace CMLeonOS
private string sysDirectory = @"0:\system";
private string userFilePath;
private List<User> users;
public bool fixmode = Kernel.FixMode;
public UserSystem()
{
@@ -217,55 +218,56 @@ namespace CMLeonOS
Console.WriteLine("====================================");
Console.WriteLine(" System Login");
Console.WriteLine("====================================");
Console.WriteLine("Press any key to continue...");
Console.ReadKey(true);
// Console.ReadKey(true);
// 检测ALT+Space按键
bool useFixMode = false;
ConsoleKeyInfo keyInfo;
try
{
keyInfo = Console.ReadKey(true);
if (keyInfo.Key == ConsoleKey.Spacebar && (keyInfo.Modifiers & ConsoleModifiers.Alt) != 0)
{
// 检测到ALT+Space进入修复模式
useFixMode = true;
Console.WriteLine();
Console.WriteLine("Fix Mode Activated");
Console.Write("Enter fix code: ");
string fixCode = "";
while (true)
if (fixmode == true) {
keyInfo = Console.ReadKey(true);
if (keyInfo.Key == ConsoleKey.Spacebar && (keyInfo.Modifiers & ConsoleModifiers.Alt) != 0)
{
var codeKey = Console.ReadKey(true);
if (codeKey.Key == ConsoleKey.Enter)
// 检测到ALT+Space进入修复模式
useFixMode = true;
Console.WriteLine();
Console.WriteLine("Fix Mode Activated");
Console.Write("Enter fix code: ");
string fixCode = "";
while (true)
{
Console.WriteLine();
break;
}
else if (codeKey.Key == ConsoleKey.Backspace)
{
if (fixCode.Length > 0)
var codeKey = Console.ReadKey(true);
if (codeKey.Key == ConsoleKey.Enter)
{
fixCode = fixCode.Substring(0, fixCode.Length - 1);
Console.WriteLine();
break;
}
else if (codeKey.Key == ConsoleKey.Backspace)
{
if (fixCode.Length > 0)
{
fixCode = fixCode.Substring(0, fixCode.Length - 1);
}
}
else
{
fixCode += codeKey.KeyChar;
Console.Write(codeKey.KeyChar);
}
}
if (fixCode == "FixMyComputer")
{
Console.WriteLine("Fix mode enabled!");
}
else
{
fixCode += codeKey.KeyChar;
Console.Write(codeKey.KeyChar);
Console.WriteLine("Invalid fix code. Exiting fix mode.");
useFixMode = false;
}
}
if (fixCode == "FixMyComputer")
{
Console.WriteLine("Fix mode enabled!");
}
else
{
Console.WriteLine("Invalid fix code. Exiting fix mode.");
useFixMode = false;
}
}
else
{