externes Programm beenden
-
Hallo
Ich möchte gerne in meinem Programm ein anderes externes Programm beenden und nach einer bestimmten Zeit wieder starten!
Hat jemand ein Ansatz wie ich das machen kann?thx sven
-
Servus,
hier was aus WINAPI -> http://c-plusplus.net/forum/viewtopic.php?t=39369
Ansonsten mein Vorschlag:
1.
CWnd *pWnd = FindWindow("FensterName");
pWnd->PostMessage(WM_CLOSE, NULL, NULL);2. WM_TIMER
einen Timer basteln.Mit ShellExecute() wieder ausführen
*winke*
Hellsgore (Der 3te Tag als Nichtraucher)
-
danke Hellsgore
Also das mit dem FindWindow() klappt einwandfrei!
Leider ha ich mal wieder das Problem das ich unter eVC (PocketPC) proggen muss!
Da gibt es leider die Methode ShellExecute() nicht sondern nur die ShellExecuteEx()ShellExecuteEx
This function performs an action on a file. The file can be an executable file or a document.WINSHELLAPI BOOL WINAPI ShellExecuteEx(
LPSHELLEXECUTEINFO lpExecInfo );
Parameters
lpExecInfo
Long pointer to a SHELLEXECUTEINFO structure that contains and receives information about the application being executed.Diese Methode braucht nur einen Parameter der jedoch von der Struktur SHELLEXECUTEINFO ist
This structure specifies an enumerated type that defines flags used with the IShellFolder::EnumObjects method.
The SHELLEXECUTEINFO structure contains information used by the ShellExecuteEx function.
typedef struct _SHELLEXECUTEINFO {
DWORD cbSize;
ULONG fMask;
HWND hwnd;
LPCSTR lpVerb;
LPCSTR lpFile;
LPCSTR lpParameters;
LPCSTR lpDirectory;
int nShow;
HINSTANCE hInstApp;// Optional members
LPVOID lpIDList;
LPCSTR lpClass;
HKEY hkeyClass;
DWORD dwHotKey;
HANDLE hIcon;
HANDLE hProcess;
} SHELLEXECUTEINFO, FAR *LPSHELLEXECUTEINFO;nur weiß ich nicht wie damit umzugehen hab! Hat wer dazu vielleicht ne idee wie man die Methode ausführen kann?
thx sven
-
Servus,
versuchs mal mit WinExec("blabla.exe", SW_SHOW)....
*winke*
Hellsgore
-
danke dir!
habe aber bereits rausgefunden wie das mit der Struktur funzt!SHELLEXECUTEINFO info; info.cbSize = sizeof(info); info.fMask = SEE_MASK_FLAG_NO_UI; info.hwnd = NULL; info.lpVerb = _T("open"); info.lpFile = _T("\\Windows\\ActiveConnect.exe"); info.lpParameters= _T(""); info.lpDirectory = _T(""); info.nShow = SW_SHOW; info.hInstApp = AfxGetInstanceHandle(); ShellExecuteEx(&info);Das Prog wird auch gestartet, nur leider bekommt es aus irgendeinen Grund einen falschen Parameter mitgeliefert! Der den Startvorgang nicht durchführen kann! Kann ich mir von dem laufenden Programm bestimmte Parameter holen speichern und beim starten des Programms diese mitübergeben, wenn ja dann wie ?

sven
p.s. WinExec (..) ist leider nicht unter eVC verfügbar!