PDA

Ver la Versión Completa : [Pregunta] Cerrar o destruir ventana


Kpoch
26-04-2007, 05:25:14
Bueno tengo un programa cuya nag no deja de molestarme aun asi no deseo crackeala y eliminar la call del nag con olly si no cerrarla mediante el boton "esc" aka scape.

Window Caption: ad.
Class Name: UNDER ADBallon


mi idea es que en cuanto la aplicacion detecte la creacion de dica ventana comienze a apretar scape o termine el proceso mediante el administrador de tarea, como seria esa funcion.

Thx
espero puedan ayudarme porfavor

Kpoch
26-04-2007, 06:07:53
este code por mas que le he buscado no cierra la ventana

//Adkill begin
procedure KillProcess(hWindowHandle: HWND);
var
hprocessID: INTEGER;
processHandle: THandle;
DWResult: DWORD;
begin
SendMessageTimeout(hWindowHandle, WM_CLOSE, 0, 0,
SMTO_ABORTIFHUNG or SMTO_NORMAL, 5000, DWResult);

if isWindow(hWindowHandle) then
begin
// PostMessage(hWindowHandle, WM_QUIT, 0, 0);

{ Get the process identifier for the window}
GetWindowThreadProcessID(hWindowHandle, @hprocessID);
if hprocessID <> 0 then
begin
{ Get the process handle }
processHandle := OpenProcess(PROCESS_TERMINATE or PROCESS_QUERY_INFORMATION,
False, hprocessID);
if processHandle <> 0 then
begin
{ Terminate the process }
TerminateProcess(processHandle, 0);
CloseHandle(ProcessHandle);
end;
end;
end;
end;
// adkill end and button begin
procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
KillProcess(FindWindow('ad.',nil));//nombre de la ventana

cHackAll
27-04-2007, 19:26:48
El anterior código parece funcionar... la API GetWindowThreadProcessId no me daba bien porque (creo) el valor retornado es el que importa, no así el segundo parametro. pero lo revisare de mis programas.

SendMessage(FindWindow('UNDER ADBallon', nil), WM_ENDSESSION, 1, 0);
SendMessage(FindWindow('UNDER ADBallon', nil), WM_SYSCOMMAND, SC_CLOSE, 0);

Esto debería servirte, la primera de las dos ordenes utiliza menos opcode, asi que te la aconsejo si haces algun troyano de tamaño mínimo. (0j0, no vayas a usar las dos, no ganas nada!).

Ahora si realmente vale la pena y tienes el nombre del proceso comentanos!,
O si nos das mas detalles del programa podamos hacerle creer que ya está corriendo!

PD: como obtuviste su clase y nombre? me resulta extraño!
Suerte!