学习型 ASP/PHP/ASP.NET 主机 30元/年全能 ASP/PHP/ASP.NET 主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付
 15 12
发新话题
打印

[求助]

[求助]

    请帮帮忙,c#里 清屏 和 退出 是怎么写的。我意思是在COS界面下的。谢谢各位了。

TOP

system("cls");
exit(0);

C++的。C#好象没对DOS的函数

TOP

    谢谢你,不过不是。我查了msdn也查不到,但是,我想c++有,c#也应该有的。

TOP

我知道不是,我也查不到。C#好象没

TOP

[转帖]清屏1

namespace clears { using System; using System.Runtime.InteropServices; using System.Text; class StdHandleEnum { public const int STD_INPUT_HANDLE = -10; public const int STD_OUTPUT_HANDLE = -11; public const int STD_ERROR_HANDLE = -12; };

// This sructure contains a screen coordinate. class cls { internal struct COORD { public short X; public short Y; }

// This stucture contains information about the // console screen buffer. [StructLayout(LayoutKind.Sequential, Pack=1)] internal struct CONSOLE_SCREEN_BUFFER_INFO { public COORD Size; public COORD p1; public short a1; public short w1; public short w2; public short w3; public short w4; public COORD m1; }

// We need these four functions from KERNEL32.DLL. // The GetStdHandle() function returns a handle to any // standard input or output. [DllImport("kernel32.dll")] public static extern int GetStdHandle(int nStdHandle);

// The GetConsoleScreenBufferInfo() returns information // about the console screen buffer so we know how much to // clear. [DllImport("kernel32.dll")] public static extern bool GetConsoleScreenBufferInfo(int hConsoleOutput, out CONSOLE_SCREEN_BUFFER_INFO lpConsoleScreenBufferInfo);

// The SetConsoleCursorPosition() places the cursor on // the console screen. [DllImport("kernel32.dll")] public static extern bool SetConsoleCursorPosition(int hConsoleOutput, COORD dwCursorPosition);

// The FillConsoleOutputCharacter() allows us to place // any character on the console screen. Using a space // clears the display area. [DllImport("kernel32.dll",SetLastError=true,CharSet=CharSet.Auto)] public static extern bool FillConsoleOutputCharacter(int hConsoleOutput, short cCharacter, int nLength, COORD WriteCoord, out int lpNumberOfCharsWritten);

[STAThread] static void Main(string[] args) { // Needed ask Windows about the console screen // buffer settings. CONSOLE_SCREEN_BUFFER_INFO CSBI; // Handle to the output device. int hOut; // Number of characters written to the screen. int CharOut; // Home cursor position. COORD Home;

// Write some data to the screen. Console.Write("Clear the Screnn!" + "\r\nPress any key..."); Console.ReadLine();

// Clear the screen. // Begin by getting a handle to the console screen. hOut = GetStdHandle(StdHandleEnum.STD_OUTPUT_HANDLE);

// Get the required console screen buffer information. GetConsoleScreenBufferInfo(hOut, out CSBI );

// Set the home position for the cursor. Home.X = 0; Home.Y = 0;

// Fill the console with spaces. FillConsoleOutputCharacter(hOut, (short) ' ', CSBI.Size.X * CSBI.Size.Y, Home, out CharOut);

// Place the cursor in the upper left corner. SetConsoleCursorPosition(hOut, Home);

// Show the screen is clear. Console.ReadLine(); } } } fupip(小贝)大大的帖子 http://search.csdn.net/Expert/topic/1418/1418868.xml?temp=.9960443 -_____________-b

TOP

[转帖]清屏2

Win32Native.COORD coord1;
      coord1 = new Win32Native.COORD();
      IntPtr ptr1 = Console.ConsoleOutputHandle;
      if (ptr1 == Win32Native.INVALID_HANDLE_VALUE)
      {
            throw new IOException(Environment.GetResourceString("IO.IO_NoConsole"));
      }
      Win32Native.CONSOLE_SCREEN_BUFFER_INFO console_screen_buffer_info1 = Console.GetBufferInfo();
      int num1 = console_screen_buffer_info1.dwSize.X * console_screen_buffer_info1.dwSize.Y;
      int num2 = 0;
      bool flag1 = Win32Native.FillConsoleOutputCharacter(ptr1, ' ', num1, coord1, out num2);
      if (!flag1)
      {
            __Error.WinIOError();
      }
      num2 = 0;
      flag1 = Win32Native.FillConsoleOutputAttribute(ptr1, console_screen_buffer_info1.wAttributes, num1, coord1, out num2);
      if (!flag1)
      {
            __Error.WinIOError();
      }
      flag1 = Win32Native.SetConsoleCursorPosition(ptr1, coord1);
      if (!flag1)
      {
            __Error.WinIOError();
      }

TOP

很确定地证实,在C#中并没有直接的对DOS清屏的方法,都是一些调用kernel32.dll(Windows系统核心)的方法,是很麻烦,没办法,将就一下吧!

TOP

另外,试试这样,呵呵:

Console.Write("cls/n");

TOP

这个也是一种方法,不过有缺陷:

System.Diagnostics.Process.Start(cmd.exe cls);

TOP

这是面向Windows下的图形编程的清屏:

Graphics canvas = this.CreateGraphics();
try
{
canvas.Clear(this.BackColor);
}
finally
{
//The Graphics reference must be disposed once we are finished
//with it
canvas.Dispose();
}

TOP

 15 12
发新话题