修复某些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); shell.ExecuteCommand(line);
} }

View File

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

View File

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