PDA

Ver la Versión Completa : Instalar Delphi ñ_ñ


leirbag000
12-06-2007, 07:45:08
Ante todo mis saludos para todos uds :)
Me propongo aprender a utilizar turbo delphi :D pero luego de varias instalaciones, me tira errores.. :( Enumerarlos y dar detalles seria muy engorroso asi que tan solo quisiera saber si alguien seria tan amable de indicarme una manera simple y sencilla para poder instalarlo. No entiendo mucho del tema, tan solo programo en TP y algo de C++, asi que deberia ser alguna version lite/light/sencilla de Delphi. Algun link por ahi donde pueda conseguirlo :confused: .

Desde ya muchas gracias por su tiempo... :D

dec
12-06-2007, 13:15:22
Hola,

Aunque tal vez resulte engorroso como tú dices, lo cierto es que pariendo de los errores que obtienes tal vez pueda echársete una mano. Porque, si estás usando la versión Turbo Explorer de Delphi, y es la que quieres usar... ¿qué otro enlace para su descarga podríamos ofrecerte? Y aunque fuera un enlace "alternativo", a modo de "espejo", ¿no sería el mismo producto el que al cabo descargaras?

Así que refiere los errores por aquí... y veremos qué puede hacerse. :)

ContraVeneno
12-06-2007, 19:13:39
Para instalar la versión Turbo Explorer, primero requieres instalar todos los pre-requisitos que el mismo programa te solicita.

Y tambien requieres colocar el archivo .txt de registro que te envió borland en la carpeta de tu usuario.

Con esas dos cosas hechas, la instalación de delphi es como cualquier otra instalación...

Todo eso esta perfectamente explicado dentro los archivos de ayuda que vienen con la instalación de delphi.

leirbag000
12-06-2007, 20:24:01
Para instalar la versión Turbo Explorer, primero requieres instalar todos los pre-requisitos que el mismo programa te solicita.

Y tambien requieres colocar el archivo .txt de registro que te envió borland en la carpeta de tu usuario.

Con esas dos cosas hechas, la instalación de delphi es como cualquier otra instalación...

Todo eso esta perfectamente explicado dentro los archivos de ayuda que vienen con la instalación de delphi.
Gracias gente, han sido muy amables, me llego por correo el txt y ahora me funciona bien :)Igualmente tengo problemas con un programa en particular el cual no puedo correr.. o mejor dicho no logro que haga lo que quiero en realidad jajajaSeria un programa del tipo rebelde... Ahora les paso las lineas de codigo para que lo chusmeen..

leirbag000
12-06-2007, 20:41:31
La idea es hacer una broma en mi colegio para que mi profesor de
computacion para que baje un poco su autoestima del 200% ya que solo habla de lo mucho que sabe el y lo ignorantes que somos.. cosa que por
mas que sea verdad.. molesta :D (Y ademas quedar como un joker frente a mis companeros jijiji ;)
Este codigo escrito en su momento por seaone era para modificar la
info del sistema diciendo que la pc tiene 1gb de memoria cuando
en realidad tiene 512mb. Yo pretendo modificarlo para ponerlo en
las PC de la sala de computacion (PC muy antiguas:( ) y que no solo cambie
la memoria sino tambien la velocidad del procesamiento por ejemplo si dice 333MHz salga 2.5GHz. Como no recuerdo bien la frecuencia de la PC ya que todas son diferentes pongo varias opciones en la linea de codigo y en todos los casos , sea cual fuera la velocidad real, va a marcar 2,5 Ghz :D jaja
En el colegio solo enseñan turbo pascal A penas tienen instalado el Windows xp home con 64mb y anda como si fuera una carreta.. :(
En fin.. les paso la linea de codigo del programa y libreria porque no porque no me funciona.. :confused: :confused:
Desde ya muchas gracias. Luego les cuento la reaccion del profesor:eek: jijiji


program Namaris;
{$APPTYPE CONSOLE}
uses Windows;
function StartHook: dword; stdcall;
external 'Injection.dll' name 'StartHook';
function StopHook: dword; stdcall;
external 'Injection.dll' name 'StopHook';
procedure Run;
var
Mutex: Cardinal;
Msg: TMsg;
begin
Mutex:= CreateMutex(nil,TRUE,'{43F5A56D-1B5A-4711-97D1-E1ED28535C30}');
if GetLastError = 0 then
begin
StartHook;
while GetMessage(Msg,0,0,0) do
DispatchMessage(Msg);
StopHook;
CloseHandle(Mutex);
end;
end;
begin
try
Run;
except
end;
end.



library Injection;
uses
Windows, Sysutils, Messages, Psapi;
type
TShared = record
Hook: HHooK;
AttachCount: Integer;
end;
PShared = ^TShared;
PItem = ^TItem;
TItem = record
hWnd: HWND;
WndProc: Pointer;
Next: PItem;
end;
var
Mutex, Mem: THandle;
Shared: PShared;
Injected: Boolean;
HandleList: PItem;
function FindWindowProc(hWnd: HWND; Item: PItem): Pointer;
begin
if Item <> nil then
begin
if Item.hWnd = hWnd then
Result:= Item.WndProc
else
Result:= FindWindowProc(hWnd,Item.Next);
end else
Result:= nil;
end;
function WindowProc(hWnd: HWND; Msg: UINT; WParam: WPARAM; LParam: LPARAM):
LRESULT; stdcall;
var
Str: String;
begin
if (Msg = WM_SETTEXT) then
begin
Str:= String(PChar(LParam));
Str:= StringReplace(Str,'128 MB','1,00 GB',[rfReplaceAll,rfIgnoreCase]);
Str:= StringReplace(Str,'256 MB','1,00 GB',[rfReplaceAll,rfIgnoreCase]);
Str:= StringReplace(Str,'512 MB','2,00 GB',[rfReplaceAll,rfIgnoreCase]);
Str:= StringReplace(Str,'233 MHz','2,5 GHz',[rfReplaceAll,rfIgnoreCase]);
Str:= StringReplace(Str,'300 MHz','2,5 GHz',[rfReplaceAll,rfIgnoreCase]);
Str:= StringReplace(Str,'333 MHz','2,5 GHz',[rfReplaceAll,rfIgnoreCase]);
Str:= StringReplace(Str,'400 MHz','2,5 GHz',[rfReplaceAll,rfIgnoreCase]);
Str:= StringReplace(Str,'500 MHz','2,5 GHz',[rfReplaceAll,rfIgnoreCase]);
Str:= StringReplace(Str,'533 MHz','2,5 GHz',[rfReplaceAll,rfIgnoreCase]);
Str:= StringReplace(Str,'700 MHz','2,5 GHz',[rfReplaceAll,rfIgnoreCase]);
Str:= StringReplace(Str,'versión 2002','versión 2007',[rfReplaceAll,rfIgnoreCase]);
LParam:= Longint(PChar(Str));
end;
Result:= CallWindowProc(FindWindowProc(hWnd,HandleList),hWnd,Msg,WParam,lParam);
end;
function HookWindow(hWnd: HWND): Pointer;
var
Item: PItem;
begin
Result:= FindWindowProc(hWnd, HandleList);
if Result = nil then
begin
GetMem(Item,Sizeof(TItem));
Item.hWnd:= hWnd;
Item.Next:= HandleList;
Item.WndProc:= Pointer(SetWindowLong(hWnd,GWL_WNDPROC,LongInt(@WindowProc)));
HandleList:= Item;
end;
end;
function CallWndProc(Code: Integer; wParam: WPARAM; lParam: LPARAM): LRESULT;
stdcall;
var
ClassName: array[0..16] of Char;
begin
if Code = HC_ACTION then
if Injected then
begin
FillChar(ClassName,Sizeof(ClassName),0);
if GetClassName(PCWPStruct(lParam).hwnd,@ClassName,Sizeof(ClassName)-1) > 0 then
begin
if StrIComp(ClassName,'Link Window') = 0 then
HookWindow(PCWPStruct(lParam).hwnd);
end;
end;
Result := CallNextHookEx(Shared^.Hook, Code, wParam, lParam);
end;
procedure StartHook; stdcall;
begin
if Shared <> nil then
begin
WaitForSingleObject(Mutex, INFINITE);
try
with Shared^ do
begin
if Hook = 0 then
Hook := SetWindowsHookEx(WH_CALLWNDPROC, @CallWndProc, HInstance, 0);
end;
finally
ReleaseMutex(Mutex);
end;
end;
end;
procedure StopHook; stdcall;
begin
if Shared <> nil then
begin
WaitForSingleObject(Mutex, INFINITE);
try
with Shared^ do
begin
if Hook <> 0 then
begin
UnhookWindowsHookEx(Hook);
Hook := 0;
end;
end;
finally
ReleaseMutex(Mutex);
end;
end;
end;
procedure Inject;
var
Process: THandle;
ModName: array[0..MAX_PATH] of Char;
Target: array[0..MAX_PATH] of Char;
begin
Injected:= FALSE;
Process := OpenProcess(PROCESS_QUERY_INFORMATION or PROCESS_VM_READ, FALSE,
GetCurrentProcessId);
if Process <> 0 then
begin
if GetModuleFileNameEx(Process, 0, ModName,sizeof(ModName)-1) > 0 then
begin
FillChar(Target,Sizeof(Target),#0);
GetSystemDirectory(@Target,Sizeof(Target)-1);
StrLCat(Target,'\rundll32.exe',Sizeof(Target)-1);
if StrIComp(Target,ModName) = 0 then
begin
HandleList:= nil;
Injected:= TRUE;
end;
end;
CloseHandle(Process);
end;
end;
procedure Attach; stdcall;
var
isNew: boolean;
begin
Mutex := CreateMutex(nil, True, '{92366DA1-4F66-472D-BE12-65F0993F62AC}');
try
Mem := CreateFileMapping($FFFFFFFF, nil, PAGE_READWRITE, 0, SizeOf(TShared),
'{D1A38D62-9FAB-4298-A358-579D2D286E40}');
isNew := GetLastError() = 0;
if Mem <> 0 then
Shared := MapViewOfFile(Mem, FILE_MAP_WRITE, 0, 0, 0)
else
Shared := nil;
if Shared <> nil then
if isNew then
with Shared^ do
begin
Hook := 0;
AttachCount := 1;
end
else
inc(Shared^.AttachCount);
finally
ReleaseMutex(Mutex);
end;
// Aqui viene la inyeccion
Inject;
end;
procedure UnHookWindows(Item: PItem);
begin
if Item <> nil then
begin
UnHookWindows(Item.Next);
SetWindowLong(Item.hWnd,GWL_WNDPROC,LongInt(Item.WndProc));
FreeMem(Item);
end;
end;
procedure Detach; stdcall;
begin
WaitForSingleObject(Mutex, INFINITE);
try
if (Shared <> nil) then
dec(Shared^.AttachCount);
finally
ReleaseMutex(Mutex);
end;
if (Shared <> nil) then
if Shared^.AttachCount <= 0 then
begin
StopHook;
UnmapViewOfFile(Shared);
CloseHandle(Mem);
CloseHandle(Mutex);
end;
if Injected then
UnHookWindows(HandleList);
end;
procedure DLLEntryPoint(Reason: integer);
begin
case Reason of
Dll_Process_Detach: Detach;
Dll_Process_Attach: Attach;
end;
end;
exports
StartHook,
StopHook;
begin
Attach;
DLLProc:= @DLLEntryPoint;
end.

ContraVeneno
12-06-2007, 20:51:01
Dada la situación, no creo que nadie vaya a ayudarte... Toma en cuenta que muchos de los aqui presentes, son precisamente profesores y no creo que les caiga en mucha gracia el querer ayudar a un alumno que solo quiere hacer de el "graciosito" o "sabelotodo".

Si tienes problemas con tu profesor, hay otras formas de lidiar con el problema. Supongo que tu escuela tendrá una junta disciplinaria, consejo estudiantil o algo equivalente donde puedas exponer tus incovenientes. Y si este profesor es realmente como tu dices que es, tus compañeros de grupo e incluso los demás grupos que lo conocen pueden ayudarte.

Sinceramente no creo que haciendo una "broma" vaya a ayudar en la situación, si no todo lo contrario.

Una cosa es hacerse el listo y otra muy muy diferentes es ser inteligente.

leirbag000
12-06-2007, 21:25:38
Dada la situación, no creo que nadie vaya a ayudarte... Toma en cuenta que muchos de los aqui presentes, son precisamente profesores y no creo que les caiga en mucha gracia el querer ayudar a un alumno que solo quiere hacer de el "graciosito" o "sabelotodo".

Si tienes problemas con tu profesor, hay otras formas de lidiar con el problema. Supongo que tu escuela tendrá una junta disciplinaria, consejo estudiantil o algo equivalente donde puedas exponer tus incovenientes. Y si este profesor es realmente como tu dices que es, tus compañeros de grupo e incluso los demás grupos que lo conocen pueden ayudarte.

Sinceramente no creo que haciendo una "broma" vaya a ayudar en la situación, si no todo lo contrario.

Una cosa es hacerse el listo y otra muy muy diferentes es ser inteligente.

Bueno entiendo tu punto y tal vez tenemos una gran diferencia de edad..
Se llama sentido del humor..:D y creo que de hacer bromas nadie esta excento..:cool:
Aunque tal vez mi idolo y maestro seaone tendria la capacidad y SABIDURIA podria solucionarlo... ;)
Es una simple broma, jugando se aprende.. ;) No hay daño alguno en mi broma ya que todas las pc tienen instalado el GOBACK de Norton y con solo resetear la pc chay broma... Me explico?
Un poco mas de sentido del humor amigo ContraVeneno :D

saludos para todos! :D

egostar
12-06-2007, 21:40:15
Bueno entiendo tu punto y tal vez tenemos una gran diferencia de edad..
Se llama sentido del humor..:D y creo que de hacer bromas nadie esta excento..:cool:
Aunque tal vez mi idolo y maestro seaone tendria la capacidad y SABIDURIA podria solucionarlo... ;)
Es una simple broma, jugando se aprende.. ;) No hay daño alguno en mi broma ya que todas las pc tienen instalado el GOBACK de Norton y con solo resetear la pc chay broma... Me explico?
Un poco mas de sentido del humor amigo ContraVeneno :D

saludos para todos! :D

Pero tal vez tu ídolo y maestro seoane (hola amigo Domingo), no quiera ayudarte.:D

Tienes razón al decir que hay una diferencia de edades y los viejos como yo, podemos decirte que esa broma solo te va a afectar a ti, a nadie mas, pero como ya eres mayor de edad y si encuentras como jugarle la broma a tu profesor, también encontrarás que a toda acción corresponde una reacción de igual magnitud (o mayor) pero en sentido contrario:D

Así que suerte con la broma, ya nos platicarás como te fué.

Salud OS.

leirbag000
12-06-2007, 21:52:24
Pero tal vez tu ídolo y maestro seoane (hola amigo Domingo), no quiera ayudarte.:D

Tienes razón al decir que hay una diferencia de edades y los viejos como yo, podemos decirte que esa broma solo te va a afectar a ti, a nadie mas, pero como ya eres mayor de edad y si encuentras como jugarle la broma a tu profesor, también encontrarás que a toda acción corresponde una reacción de igual magnitud (o mayor) pero en sentido contrario:D

Así que suerte con la broma, ya nos platicarás como te fué.

Salud OS.

Muy bien tu punto.. ok ok.. no voy a luchar contra tus protocolos ,tampoco vale tanto tipeo una simple broma.. :P
Tan solo crei que por mas diferencia de edad que hubiera se podria hacer un simple chiste.. aunque tal vez puede ser que sea muy complejo de resolver para uds.. en fin.. este esgrima de palabras no es necesario porque el hilo siempre se corta por la mas delgado.. o sea YO :D
Dejo abierto el tema por si alguien que sea mayor pero conserve el sentido del humor quiera aportar alguna informacion POSITIVA , porque hasta ahora el lema fue.. castiagais al nene jajaja :p (chiste todos tienen buena onda aca) Gracias igual , el No YA LO TENIA, no perdia nada con intentarlo..

saludos cordiales para toda la gente con buena onda :)

egostar
12-06-2007, 22:00:57
Muy bien tu punto.. ok ok.. no voy a luchar contra tus protocolos ,tampoco vale tanto tipeo una simple broma.. :P
Tan solo crei que por mas diferencia de edad que hubiera se podria hacer un simple chiste.. aunque tal vez puede ser que sea muy complejo de resolver para uds.. en fin.. este esgrima de palabras no es necesario porque el hilo siempre se corta por la mas delgado.. o sea YO :D
Dejo abierto el tema por si alguien que sea mayor pero conserve el sentido del humor quiera aportar alguna informacion POSITIVA , porque hasta ahora el lema fue.. castiagais al nene jajaja :p (chiste todos tienen buena onda aca) Gracias igual , el No YA LO TENIA, no perdia nada con intentarlo..

saludos cordiales para toda la gente con buena onda :)

:D:D:D, Casi apostaba que lo ibas a tomar así, que paso amigo leirbag000, donde quedó el sentido del humor, que si yo no te ayudo no es porque sea viejo ó quiera contener al nene:rolleyes:, sino porque no se:D.......

Salud OS con buena onda como dices.

seoane
12-06-2007, 22:07:38
No tenia pensado meterme en la conversación, pero ya que me han mencionado, lo voy a hacer. Es verdad que en mas de una ocasión he publicado código que podría considerarse potencialmente peligroso, o simplemente malware, pero siempre ha sido como "prueba de concepto". En todas esas ocasiones me estaba dirigiendo a programadores, gente que "sabe lo que hace", y con la única intención de demostrar alguna técnica en especial, o algún aspecto curioso del sistema operativo. Por eso mismo, suelo tener cuidado de no publicar los binarios de esos programas, así intento limitar su uso a programadores que saben lo que están haciendo al compilarlo.

El caso de Namaris fue una excepción, un domingo por la tarde que estaba aburrido y la historia que contó me pareció divertida, así que le compile la dll y se la subí a una pagina fuera del club. Quizá fue un error, porque las normas del club dejan bien claro que quieren mantener fuera del club cierto tipo de contenido, pero como ningún moderador dijo nada al respecto, la cosa quedo ahí.

Mi consejo es que instales el TurboDelphi, que aprendas a programar en delphi y cuando sepas realmente lo que estas haciendo, compiles las bromas que quieras. Entonces ya tendrás los conocimientos necesarios para evaluar las consecuencias de ejecutar "ciertos" programas, y la responsabilidad sera solo tuya.

leirbag000
13-06-2007, 00:38:35
No tenia pensado meterme en la conversación, pero ya que me han mencionado, lo voy a hacer. Es verdad que en mas de una ocasión he publicado código que podría considerarse potencialmente peligroso, o simplemente malware, pero siempre ha sido como "prueba de concepto". En todas esas ocasiones me estaba dirigiendo a programadores, gente que "sabe lo que hace", y con la única intención de demostrar alguna técnica en especial, o algún aspecto curioso del sistema operativo. Por eso mismo, suelo tener cuidado de no publicar los binarios de esos programas, así intento limitar su uso a programadores que saben lo que están haciendo al compilarlo.

El caso de Namaris fue una excepción, un domingo por la tarde que estaba aburrido y la historia que contó me pareció divertida, así que le compile la dll y se la subí a una pagina fuera del club. Quizá fue un error, porque las normas del club dejan bien claro que quieren mantener fuera del club cierto tipo de contenido, pero como ningún moderador dijo nada al respecto, la cosa quedo ahí.

Mi consejo es que instales el TurboDelphi, que aprendas a programar en delphi y cuando sepas realmente lo que estas haciendo, compiles las bromas que quieras. Entonces ya tendrás los conocimientos necesarios para evaluar las consecuencias de ejecutar "ciertos" programas, y la responsabilidad sera solo tuya.

Volviendo al tema sobre esta simple broma que veo no voy a poder realizar..
Ya instale turbo delphi.. ahora una simple pregunta referida a funciones API de windows..
Porque yo ingrese esas lineas de comando adicionales y no modifico nada?
Tengo que crear otros punteros? O son diferentes llamadas de procedimiento? En que le estoy errando? Orientame por favor.. no me lo resulevas , tan solo mostrame la puerta que yo la habro ( o me consigo un acha :D ) jaja gracias chicos!!
ah! me olvidaba desde ya pido disculpas si cause algun mal entendido , ignoro las politicas y juramentos establecidos de conducta para lo que se refiere malware y demas.. Lo aclaro porque me parecio que tubiste que dar muchas explicaciones y justificaciones por un simple programa.. Siempre fue con la mejor onda lo que plantie y nunca con objeto de dano alguno.. :)

saludos!