Fontname eines ConsolenFensters/cmdbox ermitteln
Moderator: Moderatoren
- BJelinek
- Rekursionen-Architekt
- Beiträge: 218
- Registriert: Sa, 02. Jun 2012 20:57
- Wohnort: 73257 Köngen
- Hat sich bedankt: 9 Mal
- Danksagung erhalten: 3 Mal
Fontname eines ConsolenFensters/cmdbox ermitteln
Hallo Zusammen,
kann man aus eine VIO Xbase++ Anwendung, Reiner Textmode die
verwendete Schriftart des Commandzeilenfensters ermitteln.
Also Consolas, Rasterschrift oder Lucida Console.
kann man aus eine VIO Xbase++ Anwendung, Reiner Textmode die
verwendete Schriftart des Commandzeilenfensters ermitteln.
Also Consolas, Rasterschrift oder Lucida Console.
Grüße
Bernd
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Bernd
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- AUGE_OHR
- Marvin
- Beiträge: 12906
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 45 Mal
Re: Fontname eines ConsolenFensters/cmdbox ermitteln
ein "original" VIO Fenster benutzt "Alaska CRT".
nur wenn du eine eigene AppSys verwendet "könnte" es ein anderer Font sein.
zu beachten bei CRT Fentern :
nur wenn du eine eigene AppSys verwendet "könnte" es ein anderer Font sein.
zu beachten bei CRT Fentern :
Code: Alles auswählen
oFontDlg := XbpFontDialog():New()
oFontDlg:fixedOnly := .T. // CRT Fenster
gruss by OHR
Jimmy
Jimmy
- BJelinek
- Rekursionen-Architekt
- Beiträge: 218
- Registriert: Sa, 02. Jun 2012 20:57
- Wohnort: 73257 Köngen
- Hat sich bedankt: 9 Mal
- Danksagung erhalten: 3 Mal
Re: Fontname eines ConsolenFensters/cmdbox ermitteln
Hallo Jimmy,
danke für die Antwort,
aber bei mir wird kein Font gesetzt.
Bei mir kommt dieser Teil der appsys zum Tragen.
Ich möchte nur die Schriftart des Consolenfensters ermitteln.
danke für die Antwort,
aber bei mir wird kein Font gesetzt.
Bei mir kommt dieser Teil der appsys zum Tragen.
Code: Alles auswählen
oCrt := RootCrt():New()
oCrt:CreateBuffer := .T.
oCrt:Create()
// RootCrt gets active window and output device
SetAppWindow ( oCrt )
Ich möchte nur die Schriftart des Consolenfensters ermitteln.
Grüße
Bernd
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Bernd
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- AUGE_OHR
- Marvin
- Beiträge: 12906
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 45 Mal
Re: Fontname eines ConsolenFensters/cmdbox ermitteln
das RootCrt(), welches nirgendwo dokumentiert ist, hat praktische keine Methoden.
für eine Windows API Function wird immer ein Handle gebraucht.
mit Xbase++ erhält man das üblicherweise mit o:GetHwnd().
bei RootCrt() passiert nun dasaber ohne ein Handle wird keine API Function gehen.
---
GetCurrentConsoleFontEx function
https://docs.microsoft.com/en-us/window ... solefontex
benötigt CONSOLE_FONT_INFOEX structure
https://docs.microsoft.com/en-us/window ... ont-infoex
und per Refenz Type COORD structure
https://docs.microsoft.com/en-us/window ... /coord-str
für eine Windows API Function wird immer ein Handle gebraucht.
mit Xbase++ erhält man das üblicherweise mit o:GetHwnd().
bei RootCrt() passiert nun das
Code: Alles auswählen
oError:args :
-> VALTYPE: O CLASS: RootCrt
oError:canDefault : N
oError:canRetry : N
oError:canSubstitute: J
oError:cargo : NIL
oError:description : Methode ist für dieses Objekt unbekannt
oError:filename :
oError:genCode : 23
oError:operation : Gethwnd
---
GetCurrentConsoleFontEx function
https://docs.microsoft.com/en-us/window ... solefontex
Code: Alles auswählen
BOOL WINAPI GetCurrentConsoleFontEx(
_In_ HANDLE hConsoleOutput,
_In_ BOOL bMaximumWindow,
_Out_ PCONSOLE_FONT_INFOEX lpConsoleCurrentFontEx
);
https://docs.microsoft.com/en-us/window ... ont-infoex
Code: Alles auswählen
typedef struct _CONSOLE_FONT_INFOEX {
ULONG cbSize;
DWORD nFont;
COORD dwFontSize;
UINT FontFamily;
UINT FontWeight;
WCHAR FaceName[LF_FACESIZE];
} CONSOLE_FONT_INFOEX, *PCONSOLE_FONT_INFOEX;
https://docs.microsoft.com/en-us/window ... /coord-str
Code: Alles auswählen
typedef struct _COORD {
SHORT X;
SHORT Y;
} COORD, *PCOORD;
gruss by OHR
Jimmy
Jimmy
- brandelh
- Foren-Moderator
- Beiträge: 15695
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 65 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: Fontname eines ConsolenFensters/cmdbox ermitteln
Eine Anwendung (GUI=NO) im Textmodus (RootCrt()) nimmt den Font, der für alle bzw. genau dieses CMD Fenster eingestellt ist.
Diesen kann man über das Kontextmenü jederzeit ändern, ohne dass sich das jeweilige Programm darum kümmern müsste.
Ob Jimmys API Funktionen deinen Wunsch erfüllen können weiß ich nicht, aber ich wollte klar stellen, dass Alaska CRT nur bei XbpCrt() Anwendungen (GUI=YES) automatisch verwendet wird.
Und nur mit diesen kann man im Programm den Font auch ändern, dazu gibt es in der Wissensbasis was von mir.
Diesen kann man über das Kontextmenü jederzeit ändern, ohne dass sich das jeweilige Programm darum kümmern müsste.
Ob Jimmys API Funktionen deinen Wunsch erfüllen können weiß ich nicht, aber ich wollte klar stellen, dass Alaska CRT nur bei XbpCrt() Anwendungen (GUI=YES) automatisch verwendet wird.
Und nur mit diesen kann man im Programm den Font auch ändern, dazu gibt es in der Wissensbasis was von mir.
Gruß
Hubert
Hubert
- BJelinek
- Rekursionen-Architekt
- Beiträge: 218
- Registriert: Sa, 02. Jun 2012 20:57
- Wohnort: 73257 Köngen
- Hat sich bedankt: 9 Mal
- Danksagung erhalten: 3 Mal
Re: Fontname eines ConsolenFensters/cmdbox ermitteln
Hallo Hubert,
Ist mir klar.
Ich will ja nur in meinem Programm wissen, welche Schriftart in der Console eingestellt ist.
Dann kann ich unterschiedlich mit den ascii Zeichen < 32 umgehen. Wenn Rasterschrift, dann verwenden, wenn nicht
Alternativ Zeichen.
Hallo Jimmy
Danke, da muß ich mal schauen wie ich das in eine Function bekomme.Das Händle des Fensters hab ich.
In der Art. CSchrift := bfbgetschriftart(Händle)
Ist mir klar.
Ich will ja nur in meinem Programm wissen, welche Schriftart in der Console eingestellt ist.
Dann kann ich unterschiedlich mit den ascii Zeichen < 32 umgehen. Wenn Rasterschrift, dann verwenden, wenn nicht
Alternativ Zeichen.
Hallo Jimmy
Danke, da muß ich mal schauen wie ich das in eine Function bekomme.Das Händle des Fensters hab ich.
In der Art. CSchrift := bfbgetschriftart(Händle)
Grüße
Bernd
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Bernd
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- brandelh
- Foren-Moderator
- Beiträge: 15695
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 65 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: Fontname eines ConsolenFensters/cmdbox ermitteln
aber nicht bei GUI=NO !
Code: Alles auswählen
------------------------------------------------------------------------------
FEHLERPROTOKOLL von "D:\TEST\NetErr\TEST.EXE" Datum: 19.12.2017 13:10:32
Xbase++ Version : Xbase++ (R) Version 2.00.875
Betriebssystem : Windows 7 06.01 Build 07601 Service Pack 1
------------------------------------------------------------------------------
oError:args :
-> VALTYPE: O CLASS: RootCrt
oError:canDefault : N
oError:canRetry : N
oError:canSubstitute: J
oError:cargo : NIL
oError:description : Member-Variable ist für dieses Objekt unbekannt
oError:filename :
oError:genCode : 26
oError:operation : FontName
oError:osCode : 0
oError:severity : 2
oError:subCode : 2240
oError:subSystem : BASE
oError:thread : 1
oError:tries : 0
------------------------------------------------------------------------------
CALLSTACK:
------------------------------------------------------------------------------
Aufgerufen von MAIN(13)
Gruß
Hubert
Hubert