Automatisches schließen von Programmen(Problem)
-
Also ich hab ein kleines Problem und hoffe ihr könnt mir weiterhelfen,
ich habe ein Programm geschrieben, das andere Programme schließen soll doch es funktionier leider nicht.#include "windows.h" #include "time.h" int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { time_t Zeitstempel; tm * nun; Zeitstempel = time(0); nun = localtime(&Zeitstempel); HWND hWnd; int min = 0; int hou = 0; while(true) { hWnd = FindWindow(NULL, static_cast<LPCSTR>("Unbenannt - Editor")); if(hWnd) { min = nun->tm_min; hou = nun->tm_hour; while((hou) == nun->tm_hour && (min + 1) == nun->tm_min) { if(!hWnd) continue; else { SendMessage(hWnd, WM_CLOSE, NULL, NULL); MessageBox(NULL, static_cast<LPCSTR>("Programm beendet"), static_cast<LPCSTR>("Achtung"), NULL); } } } } return 0; }
-
hab es schon gelöst nicht perfekt aber es funktioniert
#include "windows.h" #include "time.h" int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { HWND hWnd; time_t Zeit; tm * nun; Zeit = time(0); nun = localtime(&Zeit); int min = 0; int hou = 0; while(true) { hWnd = FindWindow(NULL, static_cast<LPCSTR>("Unbenannt - Editor")); if(hWnd) { min = nun->tm_min; hou = nun->tm_hour; } while(hWnd) { Zeit = time(0); nun = localtime(&Zeit); if(nun->tm_hour >= (hou) && nun->tm_min >= (min + 1)) { SendMessage(hWnd, WM_CLOSE, NULL, NULL); MessageBox(NULL, static_cast<LPCSTR>("Programm beendet"), static_cast<LPCSTR>("Achtung"), NULL); hWnd = 0; } } } return 0; }
-
Was sollen denn die "static_cast<LPCSTR>" in Deinem Code!?
Ersetze das lieber mal durch _T...
-
Visual C++ Express meckert dann rum wenn ich es mit L versuche
-
Da es sich um ein String Literal handelt musst Du, wie von Martin schon erwähnt, _T("") benutzen. Dein Projekt ist offensichtlich nicht Unicode, desshalb funktioniert auch L"" nicht.
Simon
Edit: Hast Du eigentlich Martins Post gar nicht gelesen???
-
Doch hab mein Projekt jetzt auf UNICODE umgeschalten und es wieder mit L versucht funktioniert einwandfrei
Außerdem wollte ich wissen wie man ein Fenster, ohne den Fensternamen zu wissen, in HWND einbinden kann.
-
andrewla1990 schrieb:
Doch hab mein Projekt jetzt auf UNICODE umgeschalten und es wieder mit L versucht
Warum machst Du das, wenn Dir hier zweimal empfohlen wird, _T("") zu benutzen?
-
_T() ist schirch.
Verwende keinen Unicode und fertig. Braucht man eh meist nicht.
-
unicode is bei solchen programmen (und bei fast allen anderen die keine
textverarbtung haben) käse, MessageBoxA und ruhe is. ohne optionen ändern
-
hab das mit _T("") schon probiert, es funktionieren alle varianten und ich kenne keine vor oder nachteile bei einer dieser lösungen.