Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-03-2012
Demarck Demarck is offline
Miembro
NULL
 
Registrado: feb 2012
Posts: 10
Poder: 0
Demarck Va por buen camino
Duda con DLL al Ejecutar otro Formulario

Bueno hace un rato hice una consulta la cual me respondieron.

Bueno ahora estoy creando una DLL.

Bueno tengo 2 Formualerios (Form1, Form2), en el form1 hay un Edit y un Boton, bueno la cosa es que al darle Click al Botón y si la contraseña es correcta me debería abrir el Form2.

Bueno a la hora de compilarlo, lo hago normal, pero si quiero ver como quedo en Diseño y todo abro un Block de Notas (Notepad.exe) abro un injector y ejecuto la opciones de Notepad.exe y busco la DLL creada y la injecto con el Block de Notas, pongo la contraseña normal y en vez de que me abra el Form2 me sale un error que dice: "Access Violation at Addres 00CCCDEA in module 'Prject1.dll'. Read of addres 000002F4."

Bueno como son dos unidades porque tengo Form1 y Form2 y solo un Projecto.

En el Projecto pongo este Código:
Código Delphi [-]
library Project1;

{ Important note about DLL memory management: ShareMem must be the
  first unit in your library's USES clause AND your project's (select
  Project-View Source) USES clause if your DLL exports any procedures or
  functions that pass strings as parameters or function results. This
  applies to all strings passed to and from your DLL--even those that
  are nested in records and classes. ShareMem is the interface unit to
  the BORLNDMM.DLL shared memory manager, which must be deployed along
  with your DLL. To avoid using BORLNDMM.DLL, pass string information
  using PChar or ShortString parameters. }

uses
  SysUtils,
  Classes,
  Windows,
  Unit1 in 'Unit1.pas' {Form1};

{$R *.res}
var
AtacarProcesso:THandle;
hId:Cardinal;
  
procedure AbrirTrainer;
begin
Form1:=TForm1.Create(nil);
Form1.ShowModal;
end;

begin
AtacarProcesso:=OpenProcess(PROCESS_ALL_ACCESS,false,GetCurrentProcessID);
CreateRemoteThread(AtacarProcesso,nil,0,@AbrirTrainer,@AbrirTrainer,0,hID);
end.
Responder Con Cita
  #2  
Antiguo 13-03-2012
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.289
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
¿Has leído el comentario que hay al principio del proyecto?
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 14-03-2012
Demarck Demarck is offline
Miembro
NULL
 
Registrado: feb 2012
Posts: 10
Poder: 0
Demarck Va por buen camino
Bueno el Problema ya lo solucioné yo mismo, pido que cierren el Tema.
Responder Con Cita
  #4  
Antiguo 14-03-2012
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.289
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Estaría bien que comentaras cómo lo solucionaste.
Si alguien con el mismo problema llega a este hilo, le gustaría encontrar la solución, me imagino...
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #5  
Antiguo 14-03-2012
Demarck Demarck is offline
Miembro
NULL
 
Registrado: feb 2012
Posts: 10
Poder: 0
Demarck Va por buen camino
Cita:
Empezado por Neftali Ver Mensaje
Estaría bien que comentaras cómo lo solucionaste.
Si alguien con el mismo problema llega a este hilo, le gustaría encontrar la solución, me imagino...
Bueno me di cuenta en una DLL no se puede ejecutar un segundo Formulario como en una Aplicación.

Solo hice y utilicé lo siguiente:

Cree un Panel, y un PageControl (sólo es un ejmplo)

Al PageControl le puse la visibilidad en FALSE y el Panel lo dejé normal.

Dentro del Panel creé un Edit y un Botón, la cosa es que dentro del botón codifiqué una contraseña, que al escribir la contraseña dentro del Edit si es correcta pongo la visibilidad del Panel en FALSE y el PageContrl en True nada más.

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
  if Edit1.Text <> 'Esta es la Contraseña' then
    messagebox(0,
      PChar('Contraseña Incorrecta'),
      PChar('Aviso'),
      MB_OK)
  else
  begin
    messagebox(0,
      PChar('Contraseña Correcta'),
      PChar('Bienvenido'),
      MB_OK);
      else
     begin
     pagecontrol1.Visible := True;
     Panel1.Visible := False;
   end;
  end;
end;
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Saber que formulario invoca a otro pau_elx Varios 7 12-04-2011 20:11:39
acoplar un formulario en el interior de otro ercrizeporta Varios 5 12-01-2011 09:07:09
Cómo ejecutar un método de un formulario desde otro alba13 OOP 16 11-10-2007 12:34:26
ejecutar otro programa php srangel PHP 3 01-04-2005 17:11:27
Ejecutar un exe dentro de otro Rafa Varios 4 18-04-2004 00:36:57


La franja horaria es GMT +2. Ahora son las 18:45:45.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi