Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » alf+strg+entf von ausem LAN??

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 < [ 2 ]
000
02.08.2004, 15:49 Uhr
RedEagle



Hi
Wie kann ich mir (auf meinem PC) die Angabe, die kommen würden, wenn ich auf dem PC meises bruders "alf+strg+entf" drücken würde, anzeigen lassen und evtl ein Task schließen??
(ohne dazu nach meienn bruder zu stören)

@0xdeadbeef: hofentlich ist der Satz mit Komata besser zu lesen
--
MFG RedEagle

Dieser Post wurde am 02.08.2004 um 16:20 Uhr von RedEagle editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
02.08.2004, 16:01 Uhr
0xdeadbeef
Gott
(Operator)


Wie kann ich mir auf ohne Satzbau verstehen würden sollten wenn nicht du an halten tun an Sprachkonventionen wie soll? (ohne einen Hirnschlag zu kriegen)
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
02.08.2004, 16:45 Uhr
RedEagle



Es währe glaube besser (und einfacher) wenn ich nen Programm schreiben könnte, welchen das den Task beendet, oder??

Wie kann man denn in C++ (win98) tasks beenden??

google hat mir sowas "gegeben"

Code:
//Task anhand Exe-Namen killen//

uses
Tlhelp32;

function KillTask(ExeFileName: string): integer;
const
PROCESS_TERMINATE=$0001;
var
ContinueLoop: BOOL;
FSnapshotHandle: THandle;
FProcessEntry32: TProcessEntry32;
begin
result := 0;

FSnapshotHandle := CreateToolhelp32Snapshot
(TH32CS_SNAPPROCESS, 0);
FProcessEntry32.dwSize := Sizeof(FProcessEntry32);
ContinueLoop := Process32First(FSnapshotHandle,
FProcessEntry32);

while integer(ContinueLoop) <> 0 do
begin
if ((UpperCase(ExtractFileName(FProcessEntry32.szExeFile)) =
UpperCase(ExeFileName))
or (UpperCase(FProcessEntry32.szExeFile) =
UpperCase(ExeFileName))) then
Result := Integer(TerminateProcess(OpenProcess(
PROCESS_TERMINATE, BOOL(0),
FProcessEntry32.th32ProcessID), 0));
ContinueLoop := Process32Next(FSnapshotHandle,
FProcessEntry32);
end;

CloseHandle(FSnapshotHandle);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
KillTask('xxxxx.exe');
end;


in c++ währe das genau das was ich suche
--
MFG RedEagle

Dieser Post wurde am 02.08.2004 um 16:46 Uhr von RedEagle editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
02.08.2004, 19:01 Uhr
RedEagle



Bitte mal nach C++(winapi) verschieben, danke


Bearbeitung von FloSoft:

bitte


--
MFG RedEagle

Dieser Post wurde am 02.08.2004 um 19:25 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
02.08.2004, 19:52 Uhr
RedEagle




Zitat von RedEagle:
Bitte mal nach C++(winapi) verschieben, danke


Bearbeitung von FloSoft:

bitte



danke
--
MFG RedEagle
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
03.08.2004, 16:40 Uhr
RedEagle



im notfall würde es auch ne Batch-datei tun, wenns mit c++ nicht geht (bzw, wenn keiner weiß wies geht)

google gibt leider auch nichts her
--
MFG RedEagle
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
03.08.2004, 16:54 Uhr
RedEagle



Habe folgendes gefunden:

C++:
BOOL TerminateProcess(HANDLE hProcess, UINT uExitCode);



wie beende ich damit jetzt ein Prozess.

ps.: ich habe nur den Pfad der anwendung. Muss ich da noch was anderes für ermitteln??
--
MFG RedEagle
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
03.08.2004, 19:54 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


du brauchst das Prozesshandle, welches du über die Prozessid (welche eigentlich mit dem Toolhelp32Snapshot bekommen kannst) dir holst, und dann beendest du den Prozess
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
03.08.2004, 19:57 Uhr
RedEagle



Windalf hat mir gerade diesen link gegeben:
www.fun-soft.de/showtopic.php?threadid=8272
--
MFG RedEagle
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
04.08.2004, 09:39 Uhr
RedEagle




C++:

#include <windows.h>
#include <tlhelp32.h>
#include <fstream.h>
#include <iostream>

using namespace std;
typedef BOOL (WINAPI *TH32_PROCESS)
             (HANDLE hSnapShot, LPPROCESSENTRY32 lppe);
static TH32_PROCESS pProcess32First = NULL;
static TH32_PROCESS pProcess32Next = NULL;

void stop()
{
DWORD dw;
HANDLE hSysSnapshot = NULL;
HANDLE h_pro;
PROCESSENTRY32 proc;

proc.dwSize = sizeof(proc);
hSysSnapshot = CreateToolhelp32Snapshot ( TH32CS_SNAPPROCESS, 0 );
pProcess32First(hSysSnapshot,&proc);
proc.dwSize = sizeof(proc);

do{
    if(!strcmp(proc.szExeFile,"iexplorer.EXE")){//oder halt th32ProcessID verwenden
          h_pro=OpenProcess(PROCESS_ALL_ACCESS, TRUE, proc.th32ProcessID);
          GetExitCodeProcess(h_pro,&dw);
          TerminateProcess(h_pro,dw);
    }
}while(pProcess32Next(hSysSnapshot,&proc));
}

//---------------------------------------------------------------------------------

int main()
{
stop();
return 0;
}



Das programm wird kompiliert, und ausgeführt, doch dann stürtz es ab
("Dies Anwendung wird aufgrund eines ....")

(es soll den internet Explorer schließen)
--
MFG RedEagle
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ 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: