Français
Forum

Textausgabe sur qui CMD-Line chez finissons des Programms.

 

Juergen
Overr
allô

peux mir quelqu'un dire comment je beim finissons eines Programms (ou bien aussi au cours de qui Laufzeit) une Textausgabe sur qui CMD-Line erzeuge, si je cela Programme dans einer DOS-Box starte?

cela Programme soll sur une Batch-Dossier gestartet volonté et pour Beendigung une String zurückgeben, qui dans qui DOS-Box trop voyons ist, bzw plus verarbeitet volonté peux.
Bisher hab je ca seulement sur den le détour einer separaten Dossier hin bekommen.

Gruss Jürgen
XProfan10
 
18.08.2008  
 




Jörg
Sellmeyer
tu peux cela Programme pas wirklich dans einer DOS-Box courir laisser. c'est plan ne...aucune DOS Programme - es wird toujours comme eigener Prozess sous Windows courir.

tu peux avec Profan une Console erzeugen:
[...] 
là courir ensuite mais wiederum aucun DOS-Programme. si on cela irgendwie relier peux? Such la fois pour "Console", peut-être hilft Dir là quoi plus
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
18.08.2008  
 




Juergen
Overr

tu peux cela Programme pas wirklich dans einer DOS-Box courir laisser. c'est plan ne...aucune DOS Programme - es wird toujours comme eigener Prozess sous Windows courir


cela stört pas plus, là je ne...aucune la fenêtre erzeuge, fällt cela pas sur.

qui cherche pour Console hab je durchgeführt.

dabei suis je sur cette Code gestossen:
KompilierenMarqueSéparation
 {$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()
Fin

cette Code ließ sich allerdings seulement compilieren après que je qui la ligne 1 et 2 auskommentiert habe (quoi bedeuten cet car??)

Eigentlich oui c'est ca cela quoi je cherche,.
qui erzeugte Ausgabe wird allerdings dans einer NEUEN Console erzeugt, pas dans qui dans qui cela Programme gestartet wurde.

.
 
18.08.2008  
 




Jörg
Sellmeyer
XPSE est un Precompiler pour XProfan [...] 

avec qui Console peux je Dir malheureusement pas weiterhelfen. qui Link dans meiner ersten Antwort hilft Dir pas?
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
18.08.2008  
 




Juergen
Overr
malheureusement non.

aussi dans diesem Beispiel wird une NEUE Console ouvert.
Weiterhin bricht cela Programme avec einer Fehlermeldung ab:


...Programme hat une faute festgestellt et doit finissez volonté ....


(gestestet sous XP-Pro 2002)

.
 
18.08.2008  
 




J.
Strahl
qui Ausgabe à cela Clipboard envoyons, et dans qui DOS Box auslesen. Allerdings, funzt cela soweit aussi seulement avec einem Zusatzprogramm.

winclip [...] 

avec cela peux on ensuite cela Clipboard dans qui Console auslesen.
 
Windows 7 Ultimate 64 * 12 GB Ram * XProfan 11.2a * PRFellow * PRFPAD
18.08.2008  
 




Jörg
Sellmeyer
nie gemacht Programme la fois quelque chose gelichtet. peut-être hilft es Dir.
KompilierenMarqueSéparation
 $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  
 



cela "Problem" ist ici un d'autre - car qui Runtime trägt pas cela Consolebit. je peux par patchen qui Exe cela Consolebit mettons et wieder solche Runtimes zum Télécharger* anbieten - avec cela wird ensuite aussi cela "vorhandene" Konsolenfenster de allocconsole alloziiert et genutzt. je hatte imho pour X9 solche Runtimes la fois zum magasin im Downloadcenter angeboten.

*diesmal mais sicherheitshalber seulement pour diejenigen downloadbar, qui aussi per Kompilernachweis (siehe Verifizierung im Profil) nachgewiesen avons, dass vous aussi entsprechendes XProfan besitzen
 
19.08.2008  
 




Juergen
Overr
cela serait mir très plus aider. qui le détour sur une temp-Dossier mais est sur la durée quelque chose compliqué.

(btw: qui lettre zum verifizieren ist unterwegs)

@Jörg
je hab la fois versucht une EXE aus dem Listing trop faire, mir fehlt en supplément mais qui profalt.inc

Salut Jürgen
XProfan10
 
19.08.2008  
 




Jörg
Sellmeyer

je hab la fois versucht une EXE aus dem Listing trop faire, mir fehlt en supplément mais qui profalt.inc


qui brauchst Du avec XProfan10 aussi gar pas. simple auskommentieren. encore sinnvoller:
Alle râteau- et Vergleichsfunktionen dans Operatoren umändern, z. B. x% = Ajouter(y%,4) wird trop x% = y% + 4
avec XProfan11 gibt es qui Funktionen ensuite nämlich pas plus.
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
19.08.2008  
 



[offtopic]
@Jürgen: Verifi: s'il te plaît verzeih le moi avant dem 22. keinen Rückbrief generieren peux là je pas im Pays suis - cela wird ensuite mais naturellement anschliessend de mir nachgeholt.
[/offtopic]
 
19.08.2008  
 



répondre


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

7.812 Views

Untitledvor 0 min.
Uwe Lang29.05.2024
Axel Berse30.08.2021
ByteAttack11.08.2021
Langer30.01.2021
plus...

Themeninformationen



Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie