用C#语言写的控制台的程序,如何来清屏。
解决方案 »
- C#如何实现网页内容的抓取。
- 如何将图片保存到debug下
- 关于控件透明的问题
- 相同文件在同一个目录(文件夹中)如何区分出来?50分_在线等~
- 一个SQL语句
- .net中DataTable赋值为何不成功呢
- XPathDocument 出错
- 刚玩MSN,觉得不错,但是就是没有朋友,想找些志同道合者,有空可以交流一下经验兼共享代码
- 初学C#,请教一个C#中图象象素和数组的问题!!!
- Dev GridControl获取增加的合计项?
- 关于axWebBrowser1.Navigate()参数的添加问题
- 使用try catch后,提示:被准备语句‘(@Company_id varchar(10),@company_name varchar(10),
{
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
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();
}
删掉 // Write some data to the screen.
Console.Write("Clear the Screnn!" +
"\r\nPress any key...");
Console.ReadLine();
等其他的加到程序的对应位置
以后直接调用Clear(),就可以实现清屏了。