12. august 2003 - 17:48
Der er
20 kommentarer og 1 løsning
bunden af console i windows2k/xp
hvordan finder man bunden af consolen... COORD coord; coord.X = (0); coord.Y = (24); SetConsoleCursorPosition(hConsole, coord); i stedet for de 24 i y korridnaten skal jeg bruge bunden af konsollen.... kan det gøres??? /mad_man
Annonceindlæg fra DE-CIX
12. august 2003 - 18:25
#2
ahhhhhh nu har jeg fattet hvad de mener med typedef struct _CONSOLE_SCREEN_BUFFER_INFO { COORD dwSize; COORD dwCursorPosition; WORD wAttributes; SMALL_RECT srWindow; COORD dwMaximumWindowSize; } CONSOLE_SCREEN_BUFFER_INFO; =) tak for det
12. august 2003 - 18:25
#3
hov nu fik jeg det ik tjækket det gøre jeg lige efter jeg har spist =)
12. august 2003 - 19:03
#4
hmm det dur ikke den sætter det bare til en linje langt nede og så ellers når den kommer der til køere den bare videre under den...
12. august 2003 - 19:07
#5
ups jeg har brugt dwMaximumWindowSize skal jeg ik bruge dwSize jov jeg skal... hov min fejl
12. august 2003 - 19:13
#6
det virker altså ik lige meget hvordan
12. august 2003 - 19:23
#7
Hm. Jeg prøvede lige med: #include <windows.h> #include <stdio.h> int main() { HANDLE h; CONSOLE_SCREEN_BUFFER_INFO info; h = GetStdHandle(STD_OUTPUT_HANDLE); GetConsoleScreenBufferInfo(h,&info); printf("%d %d\n",info.dwSize.X,info.dwSize.Y); return 0; } Og det giver 80 (korrekt) 1000 (jeg har en mega stor scoll buffer i Windows 2000). Er det også dit problem ?
12. august 2003 - 19:28
#8
Jeg udvidede lige programmet lidt. #include <windows.h> #include <stdio.h> int main() { HANDLE h; CONSOLE_SCREEN_BUFFER_INFO info; h = GetStdHandle(STD_OUTPUT_HANDLE); GetConsoleScreenBufferInfo(h,&info); printf("%d %d\n",info.dwSize.X,info.dwSize.Y); printf("%d %d\n",info.srWindow.Left,info.srWindow.Top); return 0; } Jeg tror bare at jman skal trække Top fra !
12. august 2003 - 19:49
#9
på min computer kommer der 80 300 0 0 ud
12. august 2003 - 19:49
#10
det er under windows 2000
12. august 2003 - 19:51
#11
skal man så til og lave noget som: man tager og laver 23 variabler til det man modtager og så tager og printer ALLE sammen hver gang og så flytter med hvad for en den skal starte fra så man ik bruger mere end de 24 øverste linjer
12. august 2003 - 19:57
#12
Prøv med den her: #include <windows.h> #include <stdio.h> int main() { HANDLE h; CONSOLE_SCREEN_BUFFER_INFO info; h = GetStdHandle(STD_OUTPUT_HANDLE); GetConsoleScreenBufferInfo(h,&info); printf("buffer size %d x %d\n",info.dwSize.X,info.dwSize.Y); printf("screen size %d x %d\n",info.srWindow.Right-info.srWindow.Left+1, info.srWindow.Bottom-info.srWindow.Top+1); return 0; }
12. august 2003 - 19:57
#13
buffer size 80 x 1000 screen size 80 x 25 hos mig.
12. august 2003 - 19:58
#14
80 x 300 80 x 25 her
12. august 2003 - 20:00
#15
hvorfor skriver du egnetelig +1
12. august 2003 - 20:01
#16
Passer fint nok (jeg har som sagt udvidet scroll back buffer). Så det må være: info.srWindow.Bottom-info.srWindow.Top+1 du skal bruge ....
12. august 2003 - 20:02
#17
Position 0-79 er 80 tegn.
12. august 2003 - 20:02
#18
nåå oki =)
12. august 2003 - 20:02
#19
Derfor ligger jeg 1 til.
12. august 2003 - 20:07
#20
Jeg tror iøvrigt at SetConsoleCursorPosition kører på buffer koordinater og ikke på screen koordinater.
12. august 2003 - 20:09
#21
Og i så fald skal du positionere dig i info.srWindow.Bottom !
Kurser inden for grundlæggende programmering