System - Text an fremde Fenster senden
-
OK, ich glaub dir.
-
Ja und wie kann ich nun Zeichen an die MS-DOS-Eingabeaufforderung senden?
-
Bastel dir doch selber was, du Superformel.
-
Wenn ich mich mal hier hinhängen darf
Ich wollte mich der Frage anschlissen, wie ich nun Texte an eine DOS-Eingabeaufforderung senden kann ?Gruß Hansss
-
Hellmaster1024 schrieb:
einfach die funktion aufrufen und namen des fensters und den text übergeben ...
Also ungefähr so:
TextSend("c:\\windows\\system32\\cmd.exe","dir\n");
-
Danke fubar, aber er sendet nichts an die konsole bei folgendem Quellcode:
//--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include "Unit1.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void TForm1::TextSend(AnsiString wintext, AnsiString text) { HWND hwndPrev = GetForegroundWindow(); HWND hwnd = FindWindow(0, wintext.c_str()); SetForegroundWindow(hwnd); DWORD idAttach = GetCurrentThreadId(); DWORD idAttachTo = GetWindowThreadProcessId(hwnd, NULL); if( AttachThreadInput(idAttach, idAttachTo, TRUE) == FALSE ) ShowMessage("ERROR: AttachThreadInput\(\)"); HWND hwndFocus = GetFocus(); if(hwndFocus != FALSE) SendMessage(hwndFocus, WM_SETTEXT, 0, (LPARAM)(LPCTSTR)text.c_str()); if( AttachThreadInput(idAttach, idAttachTo, FALSE) == FALSE ) ShowMessage("ERROR: AttachThreadInput\(\)"); SetForegroundWindow(hwndPrev); } //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { TextSend("C:\\WINDOWS\\System32\\cmd.exe", "dir\n"); } //---------------------------------------------------------------------------
Danke und Gruß Hansss
-
Ich habe auch nur Hellmasters Funktion getestet und damit funktionierte das einwandfrei...
-
Ja, danke funktioniert mit Hellmasters Funktion, thx
-
Leider fontioniert das bei mir nicht, da
__fastcall TForm1::TextSend(AnsiString fenster,AnsiString Text)
kein Member von TForm1 ist. Ich bin noch Newbie ;).
-
Dann informiere dich am besten mal darüber wie man Klassenmethoden deklariert...
-junix
-
Tip: schau mal nach, wo/wie die vom BCB automatisch erstellten TForm1::XYZ-Funktionen deklariert sind.