有只小稚飞不起 发表于 2013-7-18 13:36:23

一个C语言的问题,高手进

怎样读取DOS屏幕上的数据(是全部的数据)。谢谢。重金悬赏。

↓《 发表于 2013-7-18 15:33:00

你读到的数据是要导入磁盘吗?{:1_1:}

↓《 发表于 2013-7-18 15:34:46

其实你可以用汇编语言试一下

有只小稚飞不起 发表于 2013-7-18 15:36:59

汇编怎嘛弄

编程难 发表于 2013-7-18 16:40:54

本帖最后由 编程难 于 2013-7-18 16:48 编辑

控制台有对应的接口吧!可以google一下,看下这个api可以么 ReadConsoleOutput

http://msdn.microsoft.com/en-us/library/windows/desktop/ms685113(v=vs.85).aspx

小号4 发表于 2013-7-18 23:02:23

这个我也不懂,帮顶了

小甲鱼 发表于 2013-7-18 23:21:31

编程难 发表于 2013-7-18 16:40 static/image/common/back.gif
控制台有对应的接口吧!可以google一下,看下这个api可以么 ReadConsoleOutput

http://msdn.microsoft.c ...

帮你把代码贴出来:#include <windows.h>
#include <stdio.h>

int main( void )
{
    HANDLE hStdout;
    CONSOLE_SCREEN_BUFFER_INFO csbiInfo;
    SMALL_RECT srctScrollRect, srctClipRect;
    CHAR_INFO chiFill;
    COORD coordDest;
    int i;

    printf("\nPrinting 20 lines for reference. ");
    printf("Notice that line 6 is discarded during scrolling.\n");
    for(i=0; i<=20; i++)
      printf("%d\n", i);

    hStdout = GetStdHandle(STD_OUTPUT_HANDLE);

    if (hStdout == INVALID_HANDLE_VALUE)
    {
      printf("GetStdHandle failed with %d\n", GetLastError());
      return 1;
    }

    // Get the screen buffer size.

    if (!GetConsoleScreenBufferInfo(hStdout, &csbiInfo))
    {
      printf("GetConsoleScreenBufferInfo failed %d\n", GetLastError());
      return 1;
    }

    // The scrolling rectangle is the bottom 15 rows of the
    // screen buffer.

    srctScrollRect.Top = csbiInfo.dwSize.Y - 16;
    srctScrollRect.Bottom = csbiInfo.dwSize.Y - 1;
    srctScrollRect.Left = 0;
    srctScrollRect.Right = csbiInfo.dwSize.X - 1;

    // The destination for the scroll rectangle is one row up.

    coordDest.X = 0;
    coordDest.Y = csbiInfo.dwSize.Y - 17;

    // The clipping rectangle is the same as the scrolling rectangle.
    // The destination row is left unchanged.

    srctClipRect = srctScrollRect;

    // Fill the bottom row with green blanks.

    chiFill.Attributes = BACKGROUND_GREEN | FOREGROUND_RED;
    chiFill.Char.AsciiChar = (char)' ';

    // Scroll up one line.

    if(!ScrollConsoleScreenBuffer(
      hStdout,         // screen buffer handle
      &srctScrollRect, // scrolling rectangle
      &srctClipRect,   // clipping rectangle
      coordDest,       // top left destination cell
      &chiFill))       // fill character and color
    {
      printf("ScrollConsoleScreenBuffer failed %d\n", GetLastError());
      return 1;
    }
return 0;
}

有只小稚飞不起 发表于 2013-7-20 11:41:29

谢谢鱼哥                  

有只小稚飞不起 发表于 2013-7-20 11:43:06

小甲鱼 发表于 2013-7-18 23:21 static/image/common/back.gif
帮你把代码贴出来:

怎样解决啊???

有只小稚飞不起 发表于 2013-7-20 14:50:39

还是无法取得屏幕上的数据

有只小稚飞不起 发表于 2013-7-20 15:17:06

请明示       思路

dt3tc 发表于 2013-7-20 17:31:24

如果已经解决,这个帖子可以删了,鱼C会返还鱼币

有只小稚飞不起 发表于 2013-7-21 10:17:56

没解决
                              

玉宁417 发表于 2013-9-27 07:55:26

新人,路过学习一下{:1_1:}

苹果沃珂 发表于 2013-9-27 12:57:34

我使用的是在执行某给程序时重定向到文件
如:C:\Users\Administrator>poke24 >> no_calc.txt

阔怀 发表于 2015-8-23 10:33:14

{:1_1:}

dabaojian 发表于 2015-8-23 13:08:15

谢谢
页: [1]
查看完整版本: 一个C语言的问题,高手进