Ausgabe in ein Programm leiten
Verfasst: 05.10.2010, 17:08
Ich habe mal eine Lösung angehängt, wie ich momentan die Fehler bearbeite, die ein shell Programm auswirft. Gibt es eine Möglichkeit die VK_RETURN events direkt an die shell zu schicken? Momentan hab ich etwas Angst, dass das Programm amok läuft, sobald ich aus Versehen mal woanders hinklicke.
Vista/C++/Latex
Edit:
Sendmessage hat scheinbar nicht funktioniert, genausowenig wie diese Version. Ich muss mal überprüfen, ob ich überhaupt das richtige Windowhandle bekomme...
Edit2: SetForegroundWindow(hwnd); hat jetzt den gewünschten Effekt, dass die Enterzeichen nicht in ein falsches Fenster kommen. Aber richtig arbeiten kann ich dann mit dem PC auch nicht mehr.
Code: Alles auswählen
htlatex 00_TexNotes.tex | tex4htWorkaround.exe
Code: Alles auswählen
int main()
{
string buffer;
while (getline(cin, buffer))
{ keybd_event(VK_RETURN, 0, 0, 0);
keybd_event(VK_RETURN, 0, KEYEVENTF_KEYUP, 0);
}
keybd_event(VK_RETURN, 0, KEYEVENTF_KEYUP, 0);
return 0;
}
Edit:
Sendmessage hat scheinbar nicht funktioniert, genausowenig wie diese Version. Ich muss mal überprüfen, ob ich überhaupt das richtige Windowhandle bekomme...
Code: Alles auswählen
HWND hwnd = FindWindow("ConsoleWindowClass",NULL);
//HWND hwnd = GetConsoleWindow();
if(hwnd==0)
{
MessageBox(0,(LPCSTR)"Kein Fenster gefunden",(LPCSTR)"ERROR",0);
return 0;
}
fstream Ausgabe("tex4htw.txt",ios::out);
string buffer;
while (getline(cin, buffer))
{
Ausgabe<<buffer<<endl;
cout<<buffer<<"-e-"<<endl;
SetFocus(hwnd);
keybd_event(VK_RETURN, 0, 0, 0);
keybd_event(VK_RETURN, 0, KEYEVENTF_KEYUP, 0);
}
keybd_event(VK_RETURN, 0, KEYEVENTF_KEYUP, 0);
return 0;
}