Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » Programme testen

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
09.03.2006, 21:06 Uhr
-Biohazard-



Hallo Leute,
ich würde bei meinem Programm etwas so einbauen, dass nur, wenn ein bestimmtes Programm am laufen ist, es auch startet (kann man mit einer if-Verzweigung machen). Also mein selbstgeschriebenes Programm soll sich nur starten, wenn beispielsweise notepad.exe (Editor) gerade läuft. Gibt es eine Funktion dazu?

Danke
--
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
09.03.2006, 21:25 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


naja EnumProcesses die Prozesse durchgehen und nach dienem Programm ausschau halten oder wenn das Programm ein Fenster hat, einfach mit FindWindow nach dem Fenster grabben
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
09.03.2006, 22:01 Uhr
-Biohazard-



Hmmm... mit deinem Befehl habe ich mal gegooglet und kam hierdrauf:


Code:
HWND FoundWindow = FindWindow( NULL, "notepad.exe" );



Jedoch, wenn ich das Programm ausbaue, sodass er mir anzeigt, ob er das Programm findet, oder nicht, hat der Probleme


Code:
#include <iostream>
#include <winsock.h>
using namespace std;

int main()
{
  HWND FoundWindow = FindWindow( NULL, "taskmgr.exe" );
  if ( FoundWindow == NULL )
  {
    cout << "nicht gefunden";
    Sleep( 30000 );
  }
  else if ( !( FoundWindow == NULL ) )
  {
    cout << "Gefunden";
    Sleep( 30000 );
  }
  else
  {
    cout << "nix gut";
    Sleep(30000);
  }
  cin.get();
  return 0;
}


Ausgabe = "nicht gefunden"

Sollte ich den Prozessnamen vielleicht umbennen? KOmme nicht weiter
--

Dieser Post wurde am 09.03.2006 um 22:01 Uhr von -Biohazard- editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
09.03.2006, 22:06 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


die klasse von notepad ist einfach nur "Notepad" (Spy++ hilft da z.B)

Beim Taskmanager würde ich eher nach dem Titel suchen: "Windows Task-Manager" dessen Fensterklasse ist unnamed, bzw öfter verwendbar

Ansonsten: dein zweites IF ist unnötig, genauso wie das 2te else. Es ist immer ENTWEDER

FoundWindow == NULL oder nicht
--
class God : public ChuckNorris { };

Dieser Post wurde am 09.03.2006 um 22:07 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
09.03.2006, 22:26 Uhr
-Biohazard-



\\Edit: So - ich habe den Befehl falsch verstanden - ich dachte, der Befehl würde im Taskmanager nach der Programm notepad.exe suchen. Jedoch schaut sich das Programm nur die Fenstertitel an und schaut, ob in meinem Fall, ein Fenstertitel namens "notepad.exe" existiert.
Ich jedoch will, dass das Programm im Taskmanager nach dem Programm notepad.exe schaut.
--

Dieser Post wurde am 09.03.2006 um 22:30 Uhr von -Biohazard- editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
10.03.2006, 00:55 Uhr
Spacelord
Hoffnungsloser Fall


Am einfachsten sind da sicherlich die Toolhelp32 Funktionen.
Such mal hier im Forum danach.Da sollte es etliche Beispiele geben.
Oder du benutzt halt die FUnktion EnumProcesses die Flo weiter oben schon erwähnt hatte.
Allerdings sind die Toolhelp Funktionen einfacher und unter allen Windows Versionen verfügbar.

MfG Spacelord
--
.....Ich mach jetzt nämlich mein Jodeldiplom.Dann hab ich endlich was Eigenes.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: