DOS Console im Hintergrund
-
Kannst du überhaupt schon C programmieren? An einigen Stellen ist es ja _total_ falsch.
-
Me.hWnd ist doch kein zulässiger name für eine variable! du kannst bei ShellExecute für den 1.Parameter auch einfach NULL übergeben
-
C programmieren

also ich bin noch Anfänger ^^ aber ich wills mal können

Bin gerad beim Buch C++ für Dummies *g* auf Seite 105.
Naja nichts desto trotz möcht ich das Programm gerne fertig haben da es ja einen nutzen für mich hat.
Wo sind denn meine Fehler?
MFG
WAR][FIRE
-
#include <iostream> #include <cstdlib> #include <windows.h> #include <ctime> int WinMain(::HINSTANCE__* hInstance, ::HINSTANCE__* hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { int nEnd = 0; bool bOn = 0; int nPingResult; int nBreak = 120000; while(true) { ::POINT ptCursor; ::POINT ptNewCursor; ::GetCursorPos(&ptCursor); ::Sleep(nBreak); ::GetCursorPos(&ptNewCursor); if(ptCursor.x == ptNewCursor.x && ptCursor.y == ptNewCursor.y) { nPingResult = system("ping -n 1 -w 0 192.168.1.12"); if(nPingResult == 0 && bOn == true) { // system("pskill Azureus.exe"); %COMSPEC% /c pskill Azureus.exe; // was soll das sein?! bOn = false; nBreak = 120000; } if(nPingResult == 1 && bOn == false) { if((::ShellExecute(NULL, "open", "D:\\programme\\Azureus\\Azureus.exe", 0, 0, SW_HIDE)) > 32) { bOn = true; nBreak = 6000; } else { std::cout << "FEHLER: Das Programm konnte nicht geoeffnet werden!" << std::endl; bOn = false; nBreak = 120000; } } } else { //system("pskill Azureus.exe"); %COMSPEC% /c pskill Azureus.exe; // Was soll das sein?! nBreak = 120000; } } getch(); return 0; }
-
boah könnt ihr mal diesen "::HINSTANCE__* hInstance" lassen. Dafür gibt es keinen grund außer man steht darauf seinen source code unnötig aufzublähen, hässlicher und nunnützer zu machen...
-
Spieleprogrammierer eben...
-
pskill ist ein Programm. Dies fügt in die Console weitere Befehle hinzu.
es reagiert auf den Befehl pskill
Dahinter dann den Namen des Prozesses. Also pskill Azureus.exe .
Diesen Prozess killt er dann wie im Taskmanager "Prozess beenden".Oder gibt es einen Befehl in C der Prozesse schließen kann?
MFG
WAR][FIRE
-
sende dem Azureus fenster doch eine WM_CLOSE nachricht, dein pskill schiesst es ja bestimmt auch einfach ab. wenn du es radikal abschiessen willst kannst du TerminateProcess verwenden allerdings ist davon abzuraten.
-
Wie darf denn so ein WM_CLOSE Befehl aussehen wenn er Azureus.exe schließen soll?
Ich mein der WM_CLOSE Befehl mal als ganzes beispiel wie man ihn auch in den Compiler einfügt.
-
Hi, brauchste die Funktion SendMessage. Du brauchst aber das Handle von deinem Azureus damit SendMessage weiss wo er die Nachricht hinschicken soll, das Handle holste dir mit FindWindow.
Hier Bsp.:
HANDLE DeinWindow; // is klar nä? DeinWindow = FindWindow( "Die ClassID", "Was in der Titelleiste steht" ); if( DeinWindow == NULL ) { printf("Sorry, jabisch jetz grad nisch jefunden!\n"); system("PAUSE"); //Damit dus lesen kannst return 1; //Leider fehlgeschlagen :d } if( SendMessage((HWND)DeinWindow, WM_CLOSE, 0, 0)==0 ) return 1; // Geklabbed? JOP! return 0;So ungefähr.

Bisch dänne, nä?
Der Kettenraucher