View previous topic :: View next topic |
Author |
Message |
Death4ngel Grandmaster Cheater Supreme Reputation: 0
Joined: 23 Sep 2006 Posts: 1226 Location: Singapore
|
Posted: Fri Mar 16, 2007 9:51 pm Post subject: [Delphi] |
|
|
As you can see from my other threads, I'm making a Programme to run my Hacks. I know .bat is easier. But I wanted to do it the .exe way, and it looks nicer anyway.
My first prog is win32. and I'm making it without a Form, as in making it close as soon as it starts, but failed. So I added 2 buttons, 1 to run hacks and 1 to close hacks. It's successfully closed 2 of the progs but failed to close John's MzBot. The function that I'm using to close applications is
Code: | Usage:
if not KillApp('Window caption') then ShowMessage('App not closed') ;
~~~~~~~~~~~~~~~~~~~~~~~~~
function KillApp(const sCapt: PChar) : boolean;
var AppHandle:THandle;
begin
AppHandle:=FindWindow(Nil, sCapt) ;
Result:=PostMessage(AppHandle, WM_QUIT, 0, 0) ;
end;
~~~~~~~~~~~~~~~~~~~~~~~~~
|
I'm sure the Window Caption name is correct. My guess would be that it cannot close console application for some reason.
Anyway I changed the whole thing to console so that there will not be any form and used just to run my Progs.
But the ShellExecute function didn't work here.
Code: | SetCurrentDir('D:\C Drive\Desktop\Others\Mini Engine\Mini Engine');
ShellExecute(Handle, 'open', PChar('D:\C Drive\Desktop\Others\Mini Engine\Mini Engine\Mini Engine.exe'), nil, nil, SW_SHOW); |
This is the error
Code: | [Error] Project2.dpr(10): Undeclared identifier: 'Handle'
|
Is there a way to fix this? Or is another function should be used since it is console application now?
_________________
//GOD!!! THOSE STUPID RETARDED SHITHEADS NEVER MAKE IT PAST THIS STEP!!!!!!
//Thats why it's out....
|
|
Back to top |
|
|
flawedmatrix Grandmaster Cheater Reputation: 0
Joined: 21 Jun 2006 Posts: 819 Location: 14598622 for yourself...
|
Posted: Fri Mar 16, 2007 10:52 pm Post subject: |
|
|
Where did you declare 'Handle'?
_________________
|
|
Back to top |
|
|
Death4ngel Grandmaster Cheater Supreme Reputation: 0
Joined: 23 Sep 2006 Posts: 1226 Location: Singapore
|
Posted: Fri Mar 16, 2007 11:46 pm Post subject: |
|
|
There's no problem with the Handle if it's Win32.
_________________
//GOD!!! THOSE STUPID RETARDED SHITHEADS NEVER MAKE IT PAST THIS STEP!!!!!!
//Thats why it's out....
|
|
Back to top |
|
|
flawedmatrix Grandmaster Cheater Reputation: 0
Joined: 21 Jun 2006 Posts: 819 Location: 14598622 for yourself...
|
Posted: Sat Mar 17, 2007 12:02 am Post subject: |
|
|
You mean console app? Or .NET?
_________________
|
|
Back to top |
|
|
Death4ngel Grandmaster Cheater Supreme Reputation: 0
Joined: 23 Sep 2006 Posts: 1226 Location: Singapore
|
Posted: Sat Mar 17, 2007 12:30 am Post subject: |
|
|
Now it's console application. The ShellExecute doesn't work.
_________________
//GOD!!! THOSE STUPID RETARDED SHITHEADS NEVER MAKE IT PAST THIS STEP!!!!!!
//Thats why it's out....
|
|
Back to top |
|
|
the_undead Expert Cheater Reputation: 1
Joined: 12 Nov 2006 Posts: 235 Location: Johannesburg, South Africa
|
Posted: Sat Mar 17, 2007 12:46 am Post subject: |
|
|
Code: | function TForm1.KillTask (ExeFileName : string) : integer;
const
PROCESS_TERMINATE = $0001;
var
ContinueLoop : boolean;
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; |
And then, after you've implemented it, you can use it like this.......
Say for instance that I've got Notepad running on my computer. Therefore, in order to kill its accompanying process' handle, I'd make a call to this function from within the event handler that's supposed to trigger this whole operation.
For example, if a click on Button1 is supposed to trigger this operation, I'll create an onClick() event handler and my code will be something like :
Code: | procedure TForm1.Button1Click..........
begin
KillTask ('Notepad.exe');
end; |
_________________
|
|
Back to top |
|
|
DeltaFlyer Grandmaster Cheater Reputation: 0
Joined: 22 Jul 2006 Posts: 666
|
Posted: Sat Mar 17, 2007 12:47 am Post subject: |
|
|
You didn't declare Handle. Try passing in null there instead.
_________________
Wow.... still working at 827... what's INCA thinking?
zomg l33t hax at this place (IE only). Over 150 people have used it, what are YOU waiting for? |
|
Back to top |
|
|
flawedmatrix Grandmaster Cheater Reputation: 0
Joined: 21 Jun 2006 Posts: 819 Location: 14598622 for yourself...
|
Posted: Sat Mar 17, 2007 1:06 am Post subject: |
|
|
Hmm, console apps don't have the usual uses list, cause they only have SysUtils in the list, so put shellapi and forms in the list.
_________________
|
|
Back to top |
|
|
Death4ngel Grandmaster Cheater Supreme Reputation: 0
Joined: 23 Sep 2006 Posts: 1226 Location: Singapore
|
Posted: Sat Mar 17, 2007 1:09 am Post subject: |
|
|
DeltaFlyer wrote: | You didn't declare Handle. Try passing in null there instead. |
I tried putting nill, gave me some hwnd and pointer error.
_________________
//GOD!!! THOSE STUPID RETARDED SHITHEADS NEVER MAKE IT PAST THIS STEP!!!!!!
//Thats why it's out....
|
|
Back to top |
|
|
flawedmatrix Grandmaster Cheater Reputation: 0
Joined: 21 Jun 2006 Posts: 819 Location: 14598622 for yourself...
|
Posted: Sat Mar 17, 2007 1:11 am Post subject: |
|
|
It needs a handle to work.
_________________
|
|
Back to top |
|
|
Death4ngel Grandmaster Cheater Supreme Reputation: 0
Joined: 23 Sep 2006 Posts: 1226 Location: Singapore
|
Posted: Sat Mar 17, 2007 4:04 am Post subject: |
|
|
WinExec Works. haha. thanks.
EDIT: I'm still having problems with closing MzBot Lite. Even this code doesn't work. Is it because it's a console application?
Code: | PostMessage(FindWindow(Nil, 'D:\C Drive\Desktop\Others\MzBot_Lite-2.0.0-Beta\MzBot_Lite-2.0.0-Beta.exe'), WM_QUIT, 0, 0); |
_________________
//GOD!!! THOSE STUPID RETARDED SHITHEADS NEVER MAKE IT PAST THIS STEP!!!!!!
//Thats why it's out....
|
|
Back to top |
|
|
flawedmatrix Grandmaster Cheater Reputation: 0
Joined: 21 Jun 2006 Posts: 819 Location: 14598622 for yourself...
|
Posted: Sat Mar 17, 2007 12:22 pm Post subject: |
|
|
Use the_undead's kill task procedure to kill MzBot. What you used was to send a message to MzBot to close itself.
_________________
|
|
Back to top |
|
|
|