Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » C++ Builder KOnsole

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
05.07.2008, 02:02 Uhr
~awesome
Gast


hallo,
folgendes problem, ich habe eine form mit dem c++ builder erstellt und rufe darüber die konsole auf, jetzt möchte ich da was reinschreiben in die console, doch leider tuts das nicht, hab das ganze mit cout probiert!
muss man das cmd fenster erst aktiv setzen oder auswählen, wenn ja, wie mache ich das ?

vielen dank
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
05.07.2008, 16:17 Uhr
mischa
Fragender


Hallo,
willst du jetzt das in die Konsole etwas durch das Programm hinein getippt wird oder willst du es selbst in Form einer Eingabe machen?
Zum raus geben brauchst du std::cout z.B. std::cout<<"hallo Welt!"<<std::endl;
Zum ein lesen brauchst du std::cin z.B. int a; std::cin>>a;
Ich weiß jetzt nicht wie du dein Programm aufrufst aber bei Windows schließt sich die Konsole sofort nach dem Durchlaufen des Programms. Wenn du willst dass, die Konsole offen bleibt setze ein getchar(); ans Ende vor dem return 0; In den FAQ sollte was darüber stehen.
--
Latein Unterricht ist die spätere Rache der Römer an den Germanen.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
05.07.2008, 23:40 Uhr
~awesome
Gast


Nee ich will das schon das das durch das proggi gemacht wird,
hab jetzt ne form mit nem button drauf und wenn ich draufklicke soll die konsole erscheinen mit nem festen text drin !

die konsole bekomme ich gelöffnet mit

ShellExecute(...)

habe das dann auch mit

std::cout >> "..."

probiert nen text darein zu bekommen wie wenn ich ne normale konsolenapp schreibe, doch leider erscheint kein text in der konsole !
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
07.07.2008, 11:26 Uhr
öni



Zitat von awesome:std::cout >> "..."

du musst wohl die spitzen klammer vll vertauscht haben?

std::cout<< //ausgeben
std::cin>> //einlesen
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
07.07.2008, 16:07 Uhr
~awesome
Gast


ja, aber nur hier im forum im programm nicht, der würde ja sonst nicht kompilieren was er ja tut!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
07.07.2008, 17:32 Uhr
öni



Vielleich hilft auch einfach mal den Code zu posten, dann finden wir den Fehler schon.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
08.07.2008, 00:56 Uhr
mmc20
puss in boots


hi, er hat "eine form" erstellt, dh. er ruft mit shellExecute(...) sicherlich "cmd" auf, und versucht dann von seiner form aus, in die cmd-console mittels cout reinzuschreiben (zumindest hab ich das so verstanden).
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
09.07.2008, 16:19 Uhr
~awesome
Gast


genau das versuche ich, hab das jetzt mal so versucht, zwar innem notepad, macht aber nix

string word="hallo";


WinExec("notepad.exe",SW_NORMAL);
if (FindWindow("Notepad", "Unbenannt - Editor")) {

for (int i=0; i<8; i++){
switch (word[i])
{
case 'a': keybd_event(65,0,0,0);
break;
case 'h': keybd_event(72,0,0,0);
break;
case 'l': keybd_event(76,0,0,0);
break;
case 'o': keybd_event(79,0,0,0);
break;
}
}



der text erscheint, aber anstatt hallo, bekomm ich nur halo raus!
und ich verstehe das einfach nicht, jedes mal wenn der selbe buchstabe aufeinanderfolgt, wird nur einer ausgegeben...
aber packe ich nochn l ans ende dann gibta das wieder aus, seltsam!

die fälle müssen noch ergänzt werden is nur zum probieren gewesen...

sollte das nicht auch mit SendMessage("Notepad",WM_CHAR,0,"s") funktionieren?
mit dieser syntax funzt das bei mir aber nicht, kann mir wer sagen was ich falsch mache ?

thx
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
09.07.2008, 18:21 Uhr
CppProgrammer



Also bei mir läuft der Code so einwand frei und schreibt auch problemlos "hallo" ins Notepad.


C++:
#include <string>
#include <windows.h>
using namespace std;

int main()
{    
    string word = "hallo";

    WinExec("notepad.exe", SW_NORMAL);
    if(FindWindow("Notepad", "Unbenannt - Editor")){
        for(int i=0, n=(int)word.length(); i < n; i++){
            switch (word[i])
            {
            case 'a': keybd_event(65,0,0,0);
                break;
            case 'h': keybd_event(72,0,0,0);
                break;
            case 'l': keybd_event(76,0,0,0);
                break;
            case 'o': keybd_event(79,0,0,0);
                break;
            }
        }
    }

    return 0;
}



Und wenn du das ganze mit SendMessage lösen willst, würde ich das doch eher folgendermaßen machen.


C++:
#include <string>
#include <windows.h>
using namespace std;

int main()
{    
    string str = "hallo";

    WinExec("notepad.exe", SW_NORMAL);
    HWND hWnd1 = FindWindow("Notepad", "Unbenannt - Editor");
    HWND hWnd2 = FindWindowEx(hWnd1, NULL, "EDIT", NULL);

    if(hWnd2)
        ::SendMessage(hWnd2, WM_SETTEXT, 0, (LPARAM)str.c_str());

    return 0;
}


Dieser Post wurde am 09.07.2008 um 18:26 Uhr von CppProgrammer editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
10.07.2008, 20:05 Uhr
~awesome
Gast


vielen dank
funktioniert
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: