Ver Mensaje Individual
  #1  
Antiguo 28-10-2007
Mav Mav is offline
Miembro
 
Registrado: jun 2007
Posts: 39
Reputación: 0
Mav Va por buen camino
Probando el emsamblador de Delphi

Código Delphi [-]
program Ejecutor;

uses
  Windows;

const

  WM_CHAR= $0102 ;

 var
   miHandle : DWORD ;
   data : string ;
    App :string ='Notepad.exe';
    Wndclass : string = 'Notepad';
    Childclass : string= 'Edit';

begin
     data := ' Estamos probando como funciona el assembler'+ #13#10+
            'en Delphi y como no tenemos ni idea, no sabemos'+#13#10+
            'que sucederà .'+#13#10+
                           'Bueno, no tenemos ni idea de Delphi,'+#13#10+
            'en ensamblador , algo si sabemos ,es el primer len-'+#13#10+
            'guaje de programación  que nos pusimos a intentar '+#13#10+
            'aprender o debí escribir aprehender............'+#13#10+
                    '¿ End ?' ;


    asm
      pushad
      push SW_SHOW
      push dword ptr [App ]
      call WinExec
      push 0
      push dword ptr [Wndclass]
      call FindWindow
      push  0
      push Childclass
      push 0
      push eax
      call FindWindowEx
      mov [miHandle], eax
      mov edx, data
   @@eti1:
      xor eax, eax
      mov al ,byte [edx]
      or al, al
      jz @@eti2
      push edx
      push 0
      push eax
      push WM_CHAR
      push [miHandle]
      call SendMessage
      push 100
      call Sleep
      pop edx
      inc edx
      jmp @@eti1
    @@eti2:
       push 0
       call ExitProcess
       popad


    end;


end.
Código Delphi [-]
 program segundo;

uses
  Windows;

const

  SCRCOPY=$00cc0020 ;

 var
       ancho WORD;
       alto  WORD;
    contador WORD;
        HDC  WORD;

begin
    asm
      push SM_CXSCREEN
      call GetSystemMetrics
      mov  [ancho], eax
      push SM_CYSCREEN
      call GetSystemMetrics
      mov  [alto], eax
      shr eax, 1
      mov contador, eax
      push 0
      call GetDC
      mov [HDC], eax
@@eti1:
      push SCRCOPY
      push 0
      push 0
      push [HDC]
      push [alto]
      push [ancho]
      push 1
      push 1
      push [HDC]
      call BitBlt
      dec [alto]
      dec [contador]
      jnz @@eti1
      push [HDC]
      push 0
      call ReleaseDC
      push 0
      call ExitProcess

    end;

end.

Última edición por Mav fecha: 31-10-2007 a las 23:01:50. Razón: Añadir el código de otro post movido, para que esten en el mismo hilo todos
Responder Con Cita