Español
Foro

Textausgabe en el CMD-Line en Beenden des Programms.

 

Juergen
Overr
¡Hola

Kann me alguien sagen Yo beim Beenden uno Programms (oder auch während el Laufzeit) una Textausgabe en el CMD-Line erzeuge, si yo el Programa en uno Dos-Box starte?

Das Programa se una Batch-Expediente comenzó y ser después de Beendigung una String zurückgeben, el en el DOS-Box a sehen es, o más verarbeitet voluntad kann.
Bisher tener Yo dies sólo encima el Umweg uno separaten Expediente hin bekommen.

Gruss Jürgen
XProfan10
 
18.08.2008  
 




Jörg
Sellmeyer
Usted puede el Programa no wirklich en uno Dos-Box laufen dejar. Es eben kein Dos Programa - lo se siempre como eigener Prozess bajo Windows laufen.

Usted puede con Profano una Console erzeugen:
[...] 
Como laufen entonces aber wiederum no Dos-Programas. Ob al irgendwie verbinden kann? Such veces después de "Console", tal vez hilft Usted como qué más
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
18.08.2008  
 




Juergen
Overr

Usted puede el Programa no wirklich en uno Dos-Box laufen dejar. Es eben kein Dos Programa - lo se siempre como eigener Prozess bajo Windows laufen


Das stört no más, como Yo kein Ventana erzeuge, fällt el no en.

El Búsqueda después de Console tener Yo durchgeführt.

esta bin I esta Code gestossen:
KompilierenMarcaSeparación
 {$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

Dieser Code ließ se allerdings sólo compilieren después de que el Línea 1 y 2 auskommentiert habe (qué bedeuten esta porque??)

Eigentlich genau el Yo búsqueda,.
El erzeugte Edición se allerdings en uno NEUEN Console producido, no en el en de los Programa comenzó wurde.

.
 
18.08.2008  
 




Jörg
Sellmeyer
XPSE es una Precompiler para XProfan [...] 

Mit el Console kann Yo Usted por desgracia, no weiterhelfen. Der Link en meiner ersten Antwort hilft No?
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
18.08.2008  
 




Juergen
Overr
Leider nein.

Auch en diesem Ejemplo se una NEUE Console geöffnet.
Weiterhin bricht el Programa con uno Fehlermeldung de:


...Programa ha una Fehler festgestellt y muß darse por concluido ....


(gestestet bajo XP-Pro 2002)

.
 
18.08.2008  
 




J.
Strahl
El Edición a el Clipboard enviar, y el DOS Box auslesen. Aunque, funzt el soweit auch sólo una Zusatzprogramm.

winclip [...] 

Damit puede ser entonces el Clipboard en el Console auslesen.
 
Windows 7 Ultimate 64 * 12 GB Ram * XProfan 11.2a * PRFellow * PRFPAD
18.08.2008  
 




Jörg
Sellmeyer
Yo el Programa veces algo gelichtet. Tal vez hilft lo Usted.
KompilierenMarcaSeparación
 $I profalt.inc
PRFellow-Vorlage
Autor: Thomas Hölzer - Alle Rechte vorbehalten
Beispiel-Programm für eine fenstergebundene Konsole
Benötigt Profan 6.1 wegen Addr-Funktion
(Umstellung auf Profan 5.0 mit Bereichsvariable ist möglich)
(c) 2000 Thomas Hölzer, Siegen - Alle Rechte vorbehalten
Def AllocConsole(0) !"KERNEL32","AllocConsole"
Def CloseHandle(1) !"KERNEL32","CloseHandle"
Def CreateConsoleScreenBuffer(5) !"KERNEL32","CreateConsoleScreenBuffer"
Def FillConsoleOutputAttribute(5) !"KERNEL32","FillConsoleOutputAttribute"
Def FlushConsoleInputBuffer(1) !"KERNEL32","FlushConsoleInputBuffer"
Def FreeConsole(0) !"KERNEL32","FreeConsole"
Def GetConsoleTitle(2) !"KERNEL32","GetConsoleTitleA"
Def GetConsoleScreenBufferInfo(2) !"KERNEL32","GetConsoleScreenBufferInfo"
Def GetStdHandle(1) !"KERNEL32","GetStdHandle"
Def ReadConsole(5) !"KERNEL32","ReadConsoleA"
Def ReadConsoleOutputCharacter(5) !"KERNEL32","ReadConsoleOutputCharacterA"
Def ReadFile(5) !"KERNEL32","ReadFile"
Def SetConsoleActiveScreenBuffer(1) !"KERNEL32","SetConsoleActiveScreenBuffer"
Def SetConsoleCursorPosition(2) !"KERNEL32","SetConsoleCursorPosition"
Def SetConsoleMode(2) !"KERNEL32","SetConsoleMode"
Def SetConsoleTextAttribute(2) !"KERNEL32","SetConsoleTextAttribute"
Def SetConsoleTitle(1) !"KERNEL32","SetConsoleTitleA"
Def WriteConsole(5) !"KERNEL32","WriteConsoleA"
Def WriteConsoleOutputCharacter(5) !"KERNEL32","WriteConsoleOutputCharacterA"
Def WriteFile(5) !"KERNEL32","WriteFile"
Def OemToCharBuff(3) !"USER32","OemToCharBuffA"
Def CharToOemBuff(3) !"USER32","CharToOemBuffA"
Def FillMemory(3) !"KERNEL32","RtlFillMemory"
Def ZeroMemory(2) !"KERNEL32","RtlZeroMemory"
Def ExitProcess(1) !"KERNEL32","ExitProcess"
Def MakeLong(2) Or(&(1),Mul(&(2),$10000))
Def HiWord(1) Div&(&(1),$10000)
Def LoWord(1) And(&(1),$FFFF)
Def GetInput(0) $(0)
Def GetCleanInput(0) Upper$(Trim$($(0)))
Def RemoveCR(1) Translate$($(1),Add$(Chr$(13),Chr$(10)),Chr$(32))
Declare hinput&,houtput&,herror&,hscrbuf&
Declare BUF_INFO#,c_buf#
Declare INPUT_REC#

Proc GetScreenBufSize

    Declare size&
    Dim BUF_INFO#,20
    GetConsoleScreenBufferInfo(hscrbuf&,BUF_INFO#)
    Let size&=Long(BUF_INFO#,0)
    Let size&=LoWord(size&) * HiWord(size&) bei WideChar * 2, aber wir nehmen ANSI
    Dispose BUF_INFO#
    Return size&

EndProc

Proc LineColor

    Parameters fg%,bg%
    Declare colattr&
    Let colattr&=Or(fg%,Mul(bg%,4))
    SetConsoleTextAttribute(hscrbuf&,colattr&)

EndProc

Proc _WriteLn

    Parameters txt$,oem_convert%,cr%
    Declare written&
    Let txt$=txt$
    Case cr%: Let txt$=txt$;Chr$(13);Chr$(10)
    Dim c_buf#,(Len(txt$) + 1)
    String c_buf#,0=txt$
    Case oem_convert%: CharToOemBuff(c_buf#,c_buf#,Len(txt$))
    WriteConsole(hscrbuf&,c_buf#,Len(txt$),Addr(written&),0)
    WriteFile(hscrbuf&,c_buf#,Len(txt$),Addr(written&),0)
    Dispose c_buf#

EndProc

Proc Write

    Parameters txt$
    _Writeln txt$,1,0

EndProc

Proc WriteCR

    _Writeln "",0,1

EndProc

Proc WriteLn

    Declare txt$,i%
    Let i%=1

    WhileNot Gt(i%,%pcount)

        Let txt$=Add$(txt$,$(i%))
        Inc i%

    Wend

    _Writeln txt$,1,1

EndProc

Proc WriteCGI

    Parameters txt$
    _Writeln txt,0,0

EndProc

Proc WriteLnCGI

    Declare txt$,i%
    Let i%=1

    WhileNot Gt(i%,%pcount)

        Let txt$=Add$(txt$,$(i%))
        Inc i%

    Wend

    _WriteLn txt$,0,1

EndProc

Proc ReadLn

    Declare read&,txt$
    Dim c_buf#,261
    ZeroMemory(c_buf#,261)
    ReadConsole(hinput&,c_buf#,261,Addr(read&),0)
    Let txt$=RemoveCR(String$(c_buf#,0))
    Dispose c_buf#
    Return txt$

EndProc

Proc ReadOutput

    muß noch auf zeilenweises Auslesen umgestellt werden wg. CR
    Declare txt$,read&,size&
    GetScreenBufSize
    Let size&=&(0)
    Dim c_buf#,size&
    ZeroMemory(c_buf#,size&)
    ReadConsoleOutputCharacter(hscrbuf&,c_buf#,size&,0,Addr(read&))
    OemToCharBuff(c_buf#,c_buf#,read&)
    Let txt$=String$(c_buf#,0)
    Dispose c_buf#
    Let txt$=Translate$(txt$, "  ","")
    Return Trim$(txt$)
    Return txt$

EndProc

Proc SetConsoleCaption

    Parameters txt$
    Dim c_buf#,Add(Len(txt$),1)
    String c_buf#,0=txt$
    SetConsoleTitle(c_buf#)
    Dispose c_buf#

EndProc

Proc GotoXY

    Parameters x%,y%
     $D "",x%,y%,hscrbuf&
    SetConsoleCursorPosition(hscrbuf&,MakeLong(x%,y%))

EndProc

Proc ClearConsole

    Parameters color&
    Declare written&,size&
     $B "2"
    GetScreenBufSize
    Let size&=&(0)
    Case (color& < 7): color&=7
    FlushConsoleInputBuffer(hscrbuf&)
    SetConsoleTextAttribute(hscrbuf&,color&)
    Dim c_buf#,size&
     $B "3"
    FillMemory(c_buf#,size&,32)
    WriteConsoleOutputCharacter(hscrbuf&,c_buf#,size&,0,Addr(written&))
    FillConsoleOutputAttribute(hscrbuf&,color&,size&,0,Addr(written&))
    Dispose c_buf#
    traceon
    GotoXY 0,0
    traceoff

EndProc

Proc _CreateCon

    Parameters title$,own_win%
    Case own_win%: AllocConsole()
    SetConsoleCaption title$
    Let hinput&=GetStdHandle(-10)
    Let houtput&=GetStdHandle(-11)
    Let herror&=GetStdHandle(-12)
    Let hscrbuf&=houtput&
    SetConsoleMode(hscrbuf&,6)

EndProc

Proc CreateConsoleInWindow

    Parameters txt$
    _CreateCon txt$,1

EndProc

Proc CreateConsole

    Parameters txt$
    _CreateCon txt$,0

EndProc

Beispiel mit Mini-Befehls-Interpreter

Proc Beispiel_Ausgabe_Im_Fenster

    Declare c_exit%,txt$

    Proc Info

        WriteLn "(c) 2000 Thomas Hölzer, Siegen, Alle Rechte vorbehalten"

    EndProc

    Proc ShowHelp

        ClearConsole 31
        Info
        WriteLn ""
        WriteLn "exit oder CTRL-C : Beenden"
        WriteLn "?                : Hilfe"
        WriteLn "cls              : Bildschirm löschen"
        WriteLn "about            : Info"
        WriteLn ""

    EndProc

    CreateConsoleInWindow "32 Bit Profan²-Konsolen-Fenster - Powered by PRFellow 2001"
    CreateConsole "32 Bit Profan²-Konsole - Powered by PRFellow 2001"
    ClearConsole 31 weiß auf blau
    WriteLn "Geben Sie ? für Hilfe ein und drücken Sie ENTER"

    WhileNot c_exit%

        txt$=Trim$(ReadLn())
        txt$=GetCleanInput()

        If Equ$(txt$,"")

        ElseIf (txt$ = "ABOUT")

            Info

        ElseIf (txt$ = "EXIT")

            Inc c_exit%

        ElseIf Equ$(txt$,"?")

            ShowHelp

        ElseIf Equ$(txt$,"CLS")

            ClearConsole 31

        Else

            WriteLn Add$("Unbekannter Befehl: ",GetInput())

        EndIf

    Wend

    FreeCo
/a>() ExitProcess(0) ENDPROC
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
18.08.2008  
 



Das "Problem" es hier una más - porque el Runtime trägt no el Consolebit. Puedo por patchen el Exe el Consolebit conjunto y otra vez solche Runtimes para Descargar* anbieten - así se entonces auch el "vorhandene" Konsolenfenster de allocconsole alloziiert y genutzt. Tuve imho para X9 solche Runtimes veces para Laden en el Downloadcenter angeboten.

*diesmal aber sicherheitshalber sólo para diejenigen descargable, el auch por Kompilernachweis (siehe Verifizierung en el Perfil) nachgewiesen haben, dass ellos auch entsprechendes XProfan besitzen
 
19.08.2008  
 




Juergen
Overr
Das sería me muy más helfen. Der Umweg una temp-Expediente es doch en Dauer algo umständlich.

(btw: Der Brief para verifizieren es unterwegs)

@Jörg
Yo veces intenta una EXE de el Listing a hacer, me fehlt dazu aber el profalt.inc

Saludo Jürgen
XProfan10
 
19.08.2008  
 




Jörg
Sellmeyer

Yo veces intenta una EXE de el Listing a hacer, me fehlt dazu aber el profalt.inc


El Usted necesita con XProfan10 auch nada. Einfach auskommentieren. Noch sinnvoller:
Alle Rechen- y Vergleichsfunktionen en Operatoren umändern, z. B. x% = Add(y%,4) se a x% = y% + 4
Mit XProfan11 hay el Características entonces nämlich no mehr.
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
19.08.2008  
 



[offtopic]
@Jürgen: Verifi: Bitte verzeih el Yo antes el 22. no Rückbrief generieren no puede Yo no en el Lande bin - el se entonces aber natürlich anschliessend de me nachgeholt.
[/offtopic]
 
19.08.2008  
 



Respuesta


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

7.817 Views

Untitledvor 0 min.
Uwe Lang29.05.2024
Axel Berse30.08.2021
ByteAttack11.08.2021
Langer30.01.2021
Más...

Themeninformationen



Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie