Autor Beitrag
AyrA
Hält's aus hier
Beiträge: 11

Win 98, Win ME, Win XP Pro VLK, Windows Server 2003, MS DOS 6.22, Mac OS 8
Visual Basic 6, VB.NET, C#
BeitragVerfasst: Fr 03.07.09 15:03 
Bin neu hier und verzweifle seit einer Woche an einem Problem:
Ich entwickle etwas mit HTML vergleichbarem, jedoch ist das Produkt (Command Line Internet) nicht grafisch, sondern Textuell in einem Konsolenfenster zu betrachten. Ich häte in dieser Konsolenapplikation gerne die Maus verwendet, da die Tastaturnavigation sogar mir als DOS User auf den Geist geht.
Weis jemand, wie ich die Maus in bezug zur Konsole auslesen kann?
Die absolute Position auf dem Bildschirm zu erhalten ist mir bekannt, jedoch hier nicht nutzbar, da jeder Benutzer den Zeichensatz und dessen Grösse ja anpassen kann.
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Fr 03.07.09 17:19 
Hallo,

ich könnte mir vorstellen, dass die Console.CursorXxx-Eigenschaften passen.

Jürgen
AyrA Threadstarter
Hält's aus hier
Beiträge: 11

Win 98, Win ME, Win XP Pro VLK, Windows Server 2003, MS DOS 6.22, Mac OS 8
Visual Basic 6, VB.NET, C#
BeitragVerfasst: Fr 03.07.09 17:23 
Habe ich auch schon probiert, das ist jedoch die Position des Textcursors
Namenlosnameless
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 259
Erhaltene Danke: 6

Windows XP Home Edition, Windos Vista
C#
BeitragVerfasst: Fr 03.07.09 17:35 
ICh kan dir keine wirkliche Lösung anbieten weil ich mich mit Programmieren noch viel zu wenig auskenne. allerdings glaube ich einen Lösungsansatz für dich zu haben.

Wenn du die Position vom courser betsimmen kannst dann ja auch die von der Konsole. Dann lässt sich ziemlich eifach die Größe der Console auslesen.
Man müsste also nur zurückrechen, sodass nicht mehr der ganze Bildschirm angesprochen wird sondern einfach nur die Konsole.

Vlt gehts auch nicht, oder ist nicht sonderlich elegant aber ich könnts mir so ganz gut vorstellen!

_________________
1:<<Life sucks!!>> 2:<< Well okay>> 1: <<Just Yours>> 2:<<Ohmph>>
AyrA Threadstarter
Hält's aus hier
Beiträge: 11

Win 98, Win ME, Win XP Pro VLK, Windows Server 2003, MS DOS 6.22, Mac OS 8
Visual Basic 6, VB.NET, C#
BeitragVerfasst: Fr 03.07.09 17:45 
Habe ich mir auch schon gedacht, gibt aber probleme, wenn ein Benutzer eine andere Schriftart mit anderer Grösse in der Konsole hat, wodurch ich das berechnen müsste, dazu kommt, wenn ich in den Vollbildmodus schalte ist der Windows Cursor deaktiviert und ein Virtueller wird aktiviert, c# liefert dann also immer die selben Koordinaten. Ich lade den Client hier mal hoch. Er ist relativ chaotisch organisiert, sollte aber eigentlich bedienbar sein. Am Besten nach dem Aufruf der ersten Seite mal F1 drücken um die Funktionen zu erkunden.
Einloggen, um Attachments anzusehen!
Greenberet
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 339
Erhaltene Danke: 20

Win 10
C# (VS 2012), C++ (VS 2012/GCC), PAWN(Notepad++), Java(NetBeans)
BeitragVerfasst: Fr 03.07.09 17:54 
wie wäre es wenn du einen globalen Mousehook verwenden würdest? Damit sollte( habe es selber in der Konsole noch nicht probiert ) es dir möglich sein die Maus auch innerhalb der Konsole zu verwenden.
AyrA Threadstarter
Hält's aus hier
Beiträge: 11

Win 98, Win ME, Win XP Pro VLK, Windows Server 2003, MS DOS 6.22, Mac OS 8
Visual Basic 6, VB.NET, C#
BeitragVerfasst: Fr 03.07.09 17:57 
Das würde mich dann vor ein weiteres Problem stellen:
Ich kann zwar die Fenstergrösse ermitteln, aber nicht das "Client Area" Da dies nur bei richtigen Windows Forms verfügbar ist. Für die Konsole habe ich nichts dergleichen gefunden. Ja nachdem welches Thema und welche Schriftarten der Benutzer verwendet ist z.B. die Kopfzeile des programmes nicht immer gleich hoch, wodurch sich die Mauskoordinaten verfälschen würden. Im Vollbildmodus Funktioniert es theoretisch, da da unter Garantie kein Rand vorhanden ist.
Greenberet
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 339
Erhaltene Danke: 20

Win 10
C# (VS 2012), C++ (VS 2012/GCC), PAWN(Notepad++), Java(NetBeans)
BeitragVerfasst: Fr 03.07.09 22:38 
und was ist wenn du einfach eine WinForm machst und die Konsole simulierst?
AyrA Threadstarter
Hält's aus hier
Beiträge: 11

Win 98, Win ME, Win XP Pro VLK, Windows Server 2003, MS DOS 6.22, Mac OS 8
Visual Basic 6, VB.NET, C#
BeitragVerfasst: Sa 04.07.09 15:03 
Ich habe keine Lust das Rad neu zu erfinden. Ich hätte eben doch gerne, dass es eine Konsole bleibt, da die Methoden der Konsole schneller sind als wenn ich für meine Windows Form eigene entwickeln müsste. Eine Maus Routine muss es geben. Sogar der MS-DOS Editor (C:\Windows\system32\edit.com) kann das (Fenster und Vollbildmodus). Ich hätte mit einem Windows Form auch Probleme, da ich mit CLI die Hinter - und Vordergrundfarben einzelner Zeichen setzen kann, wofür mir kein Control bekannt ist, welches das kann, und ein DataGridView mit 80 Spalten und 52 Zeilen oder andere Arten zu "Bescheissen" kommen nicht in Frage.