CHAR bei Veränderung ändern
-
Hallo Leute,
Ich wollte ein Log Programmieren wo gespeichert werden soll, welche Fenster offen waren, das alles spielt sich in einer Schleife ab.
string log; HWND hwnd = GetForegroundWindow(); TCHAR szWindowText[100]; GetWindowText(hwnd, szWindowText, 100); while(true) { log+=szWindowText; } ofstream logfile; logfile.open ("log.txt"); logfile << log; logile.close()Es muss doch irgendeine if-Abfrage geben das es sich im Log nur wenn sich der FensterTitel ändert, ändert.
z.B.if(change(szWindowText))Sonst klappt es ja garnicht, wegen der endlosschleife.
-
Hübsch ist es vll nicht gerade - aber sollte verdeutlichen, wie es geht:
std::string get_foreground_window_name() { HWND handle = GetForegroundWindow(); char title[1024]; int length = GetWindowTextA(handle, title, 1023); if(length == 0) throw std::runtime_error("failed"); //hier vll noch iwas mit GetLastError machen return std::string(title, title+length); } int main() { std::ostream log_file("filename.txt"); std::string last_name; while(true) { std::string this_name = get_foreground_window_name(); if(this_name == last_name) { Sleep(100); continue; } last_name.swap(this_name); log_file << last_name << std::endl; }; }bb
-
unskilled schrieb:
if(this_name != last_name) { Sleep(100); continue; }if(this_name == last_name) { Sleep(100); continue; }oder?
-
Japp, natürlich - ich änder es mal
danke : >
-
Dieser Thread wurde von Moderator/in pumuckl aus dem Forum C++ in das Forum WinAPI verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.