mirror of
https://github.com/Leonmmcoset/CMLeonOS.git
synced 2026-03-03 15:30:27 +00:00
修复某些bug
This commit is contained in:
@@ -124,7 +124,7 @@ namespace CMLeonOS
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 执行命令
|
// 执行命令
|
||||||
Console.WriteLine($"Executing: {line}");
|
// Console.WriteLine($"Executing: {line}");
|
||||||
shell.ExecuteCommand(line);
|
shell.ExecuteCommand(line);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
80
Shell.cs
80
Shell.cs
@@ -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;
|
||||||
|
|||||||
@@ -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
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user