| |
|
|
- Seite 1 - |
|
| Wenn die richtige Runtime (im Source angegeben und im Downloadcenter zum Download angeboten) genutzt wird so fungiert dieser Source als echte Console - denn die Ausgaben landen im XPSE-Fenster. KompilierenMarkierenSeparieren {$runtime prfrun32.xp9.nores.console.exe}
{$crq}
Declare text$,x&,y&,con&,conrect#
Dim conrect#,20
Def AllocConsole(0) !"KERNEL32","AllocConsole"
Def FreeConsole(0) !"KERNEL32","FreeConsole"
Def GetStdHandle(1) !"KERNEL32","GetStdHandle"
Def SetConsoleTitle(1) !"KERNEL32","SetConsoleTitleA"
Def SetConsoleTextAttribute(2) !"KERNEL32","SetConsoleTextAttribute"
Def WriteConsole(5) !"KERNEL32","WriteConsoleA"
Proc PrintCon
Parameters context$
context$=context$+Chr$(13)+chr$(10)
WriteConsole(con&,addr(context$),len(context$),addr(x&),0)
EndProc
AllocConsole()
text$="Console Testfenster "
SetConsoleTitle(addr(text$))
con&=GetStdHandle(-11)
Whileloop 100
PrintCon "Test "+Str$(Rnd(1000))
Wend
WaitInput
FreeConsole()
End
Salve, iF. |
|
|
| |
|
|
|
| |
|
- Seite 1 - |
|
Frank Abbing | Schau in der Win32.hlp nach oder bei MSDN. Hier mal die gängigen Console-API-Funktionen. Meist ist dem Namen gut zu entnehmen, welche Funktion sich dahinter verbirgt:
AllocConsole CreateConsoleScreenBuffer FillConsoleOutputAttribute FillConsoleOutputCharacter FlushConsoleInputBuffer FreeConsole GenerateConsoleCtrlEvent GetConsoleCP GetConsoleCursorInfo GetConsoleMode GetConsoleOutputCP GetConsoleScreenBufferInfo GetConsoleTitle GetLargestConsoleWindowSize GetNumberOfConsoleInputEvents GetNumberOfConsoleMouseButtons GetStdHandle HandlerRoutine PeekConsoleInput ReadConsole ReadConsoleInput ReadConsoleOutput ReadConsoleOutputAttribute ReadConsoleOutputCharacter ScrollConsoleScreenBuffer SetConsoleActiveScreenBuffer SetConsoleCP SetConsoleCtrlHandler SetConsoleCursorInfo SetConsoleCursorPosition SetConsoleMode SetConsoleOutputCP SetConsoleScreenBufferSize SetConsoleTextAttribute SetConsoleTitle SetConsoleWindowInfo SetStdHandle WriteConsole WriteConsoleInput WriteConsoleOutput WriteConsoleOutputAttribute WriteConsoleOutputCharacter |
|
|
| |
|
|
|
Jac de Lad | Oh Gott, da bin ich ja noch bis Weihnachten beschäftigt. Ich schaus mir alles (!) an, aber ich dachte da hat vielleicht jemand was in petto oder so...
Jac |
|
|
| Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE) Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP | 15.08.2006 ▲ |
|
|
|
|
Jac de Lad | Öhhm, also ich hab jetzt mal im Platform SDk geschaut, da steht auch viel drin, aber obwohl ich der englischen Sprache mächtig bin, werde ich wahrscheinlich doch lieber ein traditionelles XProfan-Proggi schreiben (müssen), ich komme damit nicht klar (ca. 20000 Befehle in die Richtung Console...)
Jac |
|
|
| Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE) Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP | 15.08.2006 ▲ |
|
|
|
|
Jörg Sellmeyer | Hallo Jac, Hast Du Prfellow? Da gibts eine Vorlage mit Include für Konsolenfenster.
Gruß Jörg |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 15.08.2006 ▲ |
|
|
|
|
Jac de Lad | Nee, ich nehme ProfanPAD...mal sehen...
Jac |
|
|
| Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE) Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP | 15.08.2006 ▲ |
|
|
|
| |
|
- Seite 2 - |
|
|
Frank Abbing |
Ich schaus mir alles (!) an, aber ich dachte da hat vielleicht jemand was in petto oder so...
Ist wahrscheinlich nicht sonderlich gebräuchlich. Mal ehrlich, wer möchte schon eine 700 KB grosse Consolenanwendung... |
|
|
| |
|
|
|
Jac de Lad | Naja, habs auf 224kB komprimiert (ASPack) aber ich machs trotzdem traditionell mit Gridboxen, das geht auch. Hatte mich am XPSE orientiert und wollte meinen Präcompiler so ähnlich gestalten, aber is ne blöde Idee...
Jac |
|
|
| Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE) Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP | 15.08.2006 ▲ |
|
|
|
|
| Ganz im Gegenteil ne blöde Idee! Nur als ConsolenApp können die Ausgaben auch Umgeleitet werden, das ist wichtig wenn man tolle IDEs nutzt welche das Feature unterstützen. Nicht umsonst sind derartige Anwendungen ConsolenApps.
Ich würds an Deiner Stelle unbedingt zumindest versuchen! |
|
|
| |
|
|
|
Jac de Lad | Naja, leider verstehe ich es nicht so ganz aus MSDN oder der Windows SDK alles rauszulesen und in Profan umzusetzen, da haperts. Deswegen dachte ich ja, dass vielleicht jemand was parat hat, aber da niemand was hat (und ich auch nicht will, dass jemand hier alles stehen und liegen lässt, nur damit ich meine Console kriege) denke ich es ist besser das in normalen Profan umzusetzen...
Jac |
|
|
| Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE) Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP | 16.08.2006 ▲ |
|
|
|
|
| mit dem neuen XPSE ist das Ganze sogar noch viel einfacher und deutlich kürzer:
Beispiel für Ausgabe und Eingabe innerhalb einer Konsole: KompilierenMarkierenSeparieren {$cleq}
Allocconsole()
Setconsoletitle("Meine Konsole")
cout "testWie lautet Dein Name? "
string s:=cin()
Freeconsole()
messagebox "Huhu" +s,,0
End
cout(string t){
writeconsole(Getstdhandle(STD_OUTPUT_HANDLE),addr(t),len(t),0,0)
}
cin{
mem mem=65535
long c
Readconsole(Getstdhandle(STD_INPUT_HANDLE),addr(mem),sizeof(mem)256,addr(c),0)
string s:=char$(mem,0,c)
dispose mem
return s
}
|
|
|
| |
|
|
|
jacdelad | Funktioniert soweit gut, aber wenn ich was in der Console markiere und dann einen Text ausgeben will hängt sich mein Programm auf. Wie kann ich das verhindern? |
|
|
| |
|
|
|
jacdelad | Ok, hab's selbst rausgefunden. |
|
|
| |
|
|