Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Codigo sin utilidad (https://www.clubdelphi.com/foros/showthread.php?t=41240)

seoane 20-07-2007 11:36:27

Cita:

Empezado por Neftali
No he conseguido pasar de 31 sg. :(:(:(

Me pongo nervioso, miro cuanto tiempo llevo y me "pasan por encima" :(

No te preocupes yo no paso de 19 seg :(

Quizá es por eso que no somos pilotos de combate :D :D aunque con 31 segundos a lo mejor te dejaban una avioneta, a mi ni eso :(

ContraVeneno 20-07-2007 17:17:38

Orales!, por fin: Record 38.513

Caral 20-07-2007 17:56:04

Hola
Que va esto es imposible, voy a tener que dejar de fumar, con 6 segundos, no me dan ni una bicicleta.
Aparte, Seoane, no me canso de decirlo, eres genial, de verdad, impresionas cada 6 segundos, como mi record.
Saludos

white_zombie 20-07-2007 18:29:50

Complicado el juegecito, 20 seg y de casualidad porque el resto de la veces no paso de 8.

Esto es como el pac-man, simple pero adictivo.

Un saludo.

seoane 20-07-2007 18:59:55

Cita:

Empezado por ContraVeneno
Orales!, por fin: Record 38.513

Se nota que juegas habitualmente, tu coordinación mano-ojo es excelente :D

principiante22 20-07-2007 19:17:56

1 Archivos Adjunto(s)
ehhhhh!!!!! new record 52 seg, es demasiado dificil mantenerse dentro del cuadro blanco :(

seoane 11-08-2007 03:45:53

1 Archivos Adjunto(s)
Caramba me voy dos días de fiesta y me borran los mensajes :p :D

Pues nada, el ejemplo que se borro, genera una gráfica a partir del numero de mensajes de los 32 usuarios con mas mensajes. Perdonar si no me extiendo mas en la explicación, pero el ron me impide ser mas locuaz :D

seoane 12-08-2007 17:17:56

Yo continuo, al final este hilo esta siendo un monologo :p

Bueno, imaginaros esta situación, estas en un ordenador que no es el tuyo y quieres ocultar un archivo a la vista de los curiosos, una foto comprometida, un documento confidencial, etc. Como no es tu ordenador, no te vas a poner a instalar nada, ni andar ejecutando ningún programa extraño, pero lo que si podemos hacer es abrir la consola de comandos y teclear esto:
Código:

copy /b foto.jpg+secreto.doc oculto.jpg
Donde "foto.jpg" es una foto jpg cualquiera, que tenga una apariencia lo mas inocente posible, "secreto.doc" es el archivo a ocultar (puede ser cualquier tipo de archivo) y "oculto.jpg" es el nombre del archivo ya empaquetado.

Te preguntaras que hacemos con esto, pues básicamente "ponerle un sombrero" a nuestro archivo. A todos los efectos el archivo resultante parecerá una foto, y tanto la vista previa de windows, como la mayoría de los programas lo abrirán como si de una foto se tratara.

Ahora el problema es "quitarle el sombreo" a nuestro archivo. Para esto no queda mas remedio que usar un programa (al menos no se de ningún comando que realice esta labor). Y aquí es donde, por fin :D , entra en acción el siguiente código:

Es una aplicación de consola
Código Delphi [-]
program unpack;

{$APPTYPE CONSOLE}

uses 
  SysUtils, Classes;

// Esta funcion posiciona el puntero al principio del archivo oculto
procedure QuitarSombrero(Stream: TStream);
var
  Buffer: array[0..3] of Byte;
  Size: Integer;
begin
  while TRUE do
  begin
    FillChar(Buffer,Sizeof(Buffer),#0);
    Stream.Read(Buffer,4);
    Size:= ((Buffer[2] shl 8) + Buffer[3]) - 2;
    case Buffer[1] of
      $01,$D0..$D8: Stream.Seek(-2,soFromCurrent);
      $D9: begin
             Stream.Seek(-2,soFromCurrent);
             Exit;
           end;
      $DA: begin
             Stream.Seek(-2,soFromCurrent);
             while TRUE do
             begin
               Stream.ReadBuffer(Buffer,1);
               if Buffer[0] = $FF then
               begin
                 Stream.ReadBuffer(Buffer,1);
                 if (Buffer[0] <> 0) and not (Buffer[0] in [$D0..$D7]) then
                 begin
                   Stream.Seek(-2,soFromCurrent);
                   break;
                 end;
               end;
             end;
           end;
      else
        Stream.Seek(Size,soFromCurrent);
    end;
  end;
end;

var
  Entrada, Salida: TFileStream;
begin
  try
    Entrada:= TFileStream.Create(ParamStr(1),fmOpenRead or fmShareDenyWrite);
    try
      Salida:= TFileStream.Create(ParamStr(2),fmCreate);
      try
        QuitarSombrero(Entrada);
        Salida.CopyFrom(Entrada,Entrada.Size - Entrada.Position);
      finally
        Salida.Free;
      end;
    finally
      Entrada.Free;
    end;
  except
    On E: Exception do
      Writeln('Error: ' + E.Message);
  end;
end.

Por ejemplo, para extraer "secreto.doc" de "oculto.jpg":
Código:

unpack oculto.jpg secreto.doc

ArdiIIa 12-08-2007 18:12:48

Pues yo también me quito el sombrero ante esta "inutilidad"..:)

¿Que ocurre si no hay ningún archivo jpg en ese ordenador ?
Y... si la hubiera...
¿Que pasaría si la foto fuera mas comprometida que el propio documento a ocultar.?:D

seoane 12-08-2007 18:39:19

Cita:

Empezado por ArdiIIa
¿Que ocurre si no hay ningún archivo jpg en ese ordenador ?

Entonces el proceso a seguir seria el siguiente, vamos a "Inicio > Programas > Accesorios > Paint", abrimos un documento nuevo, dibujamos un bonito paisaje con un arbolito y un sol bien grande, y para terminar lo guardamos como jpg :D


Cita:

Pues yo también me quito el sombrero ante esta "inutilidad"..
Pues colabora y pon tu algo, no me creo que no tengas alguna idea de bombero por ahí guardada ;) :D

ArdiIIa 12-08-2007 18:59:33

Cita:

Empezado por seoane
Pues colabora y pon tu algo, no me creo que no tengas alguna idea de bombero por ahí guardada ;) :D

Lo son casi todas, pero no están patentadas.:D
Además, imagina que se me echa encima el cuerpo de bomberos por exponer aquí sus ideas.

seoane 12-08-2007 19:02:56

Cita:

Empezado por ArdiIIa
Además, imagina que se me echa encima el cuerpo de bomberos ...

Mientras no se te eche encima el cuerpo de un bombero ... :rolleyes:

Por dios, cuanto reparo hay en mostrar código, os veo muy tímidos :D :D

ArdiIIa 12-08-2007 19:36:09

Oyes, no te voy a dejar con las ganas...:D
Espero que ahora no se me echen encima los de RENFE

Código Delphi [-]
unit loquequieras;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls;

type
  TForm1 = class(TForm)
    Timer1: TTimer;
    procedure Timer1Timer(Sender: TObject);
    procedure FormPaint(Sender: TObject);
    procedure FormResize(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

  const
  ShapeSize = 40;


var
  Form1: TForm1;
  rShape : TRect;
  Step,XCli, Ycli,XCent, YCent : Integer;
  Ps : PaintStruct;

implementation

{$R *.dfm}

procedure TForm1.Timer1Timer(Sender: TObject);
begin
rShape := GetClientRect;
rShape.Right   := XCent + ShapeSize;
rShape.Bottom  := YCent + ShapeSize;
rShape.Top     := yCent;
rShape.Left    := xCent;
xCent := xCent +Step;
If (xCent + ShapeSize >= xCli) or (xCent <=0) then
Step := -Step;
InvalidateRect(Handle,@rShape,True);
end;

procedure TForm1.FormPaint(Sender: TObject);
begin
Ellipse(Canvas.Handle,5+xCent,29+yCent,15+xCent,39+yCent);
Ellipse(Canvas.Handle,25+xCent,29+yCent,35+xCent,39+yCent);
Rectangle(Canvas.Handle,2+xCent,19+yCent,37+xCent,29+yCent);
Rectangle(Canvas.Handle,17+xCent,0+yCent,23+xCent,19+yCent);
end;

procedure TForm1.FormResize(Sender: TObject);
begin
Step := 2 ;
xCli := ClientRect.Right ;//div 2;
yCLi := ClientRect.Bottom div 2;
Invalidate;
end;

end.




Código:

object Form1: TForm1
  Left = 119
  Top = 268
  Width = 256
  Height = 85
  Caption = 'Form1'
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'MS Sans Serif'
  Font.Style = []
  OldCreateOrder = False
  OnPaint = FormPaint
  OnResize = FormResize
  PixelsPerInch = 96
  TextHeight = 13
  object Timer1: TTimer
    Interval = 5
    OnTimer = Timer1Timer
    Left = 32
    Top = 16
  end
end


seoane 12-08-2007 19:48:19

:D Excelente Ardilla, esto ya parecía un monologo.

ArdiIIa 12-08-2007 19:58:44

Este lo tenía de hace años, cuando empecé en Windows 3.1 y C

seoane 12-08-2007 20:31:39

Y siguiendo con los trucos para "aficionados" a la fotografía :rolleyes: Aquí dejo los pasos para ocultar un montón de fotografías a la vez.

Primero compactamos todas las fotografías en un solo archivo:
Código:

copy /b *.jpg fotos.pak
Y para terminar le ponemos un sombrero :D :
Código:

copy /b foto.jpg+fotos.pak oculto.jpg
Y os preguntareis, o quizá no :D, como desempaquetar la imágenes. Pues es sencillo, vais a mi pagina web :p , bajáis el código de JpegRecover, o el programa ya compilado, y tecleais algo como esto:
Código:

jpegrecover oculto.jpg %d.jpg

Caral 12-08-2007 22:10:11

Hola
Seoane, hay algunos de nosotros que hemos pensado en la posibilidad de hacer unos tutoriales y se nos presento una duda, ( Cuales son las preguntas mas expuestas en el club y de que temas).
Crees poder sacarte de la manga uno de tus programas algo asi como el Ejemplo44 ?
Nos seria de mucha utilidad y al club.
Te animas?.:)
Saludos

Ñuño Martínez 13-08-2007 07:56:38

Seoane, me has decepcionado: ¡Ese código es útil! :eek: :p :D

seoane 13-08-2007 12:29:05

Cita:

Empezado por Ñuño Martínez
Seoane, me has decepcionado: ¡Ese código es útil! :eek: :p :D

No tanto, no pasa de ser un truco para emergencias :)

Y aprovechando que se encuentra usted por aquí maestro Ñuño, no tiene ningún código que dejarnos ... :rolleyes:

Ñuño Martínez 13-08-2007 12:42:09

Cita:

Empezado por seoane
Y aprovechando que se encuentra usted por aquí maestro Ñuño, no tiene ningún código que dejarnos ... :rolleyes:

Pues tenía uno, pero ahora no lo encuentro. Tendré que reescribirlo. A ver si esta tarde saco tiempo antes de cenar y lo pongo por aquí.


La franja horaria es GMT +2. Ahora son las 02:17:44.

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