Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 25-04-2007
Avatar de kinobi
kinobi kinobi is offline
Miembro
 
Registrado: may 2003
Posts: 2.621
Poder: 24
kinobi Va por buen camino
Cita:
Empezado por Namaris
El caso esque necesito un nuevo modulo de RAM porque este da fallos, muchos mientras estas trabjando y te reinicia y adios trabajos.
Por cierto, sólo por si las moscas: ¿no tendrá algo que ver el problema con una mala refrigeración?

Saludos... y suerte
Responder Con Cita
  #2  
Antiguo 25-04-2007
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
Prueba con esto
http://www.microsoft.com/technet/sys...lueScreen.mspx
Responder Con Cita
  #3  
Antiguo 25-04-2007
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.107
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Ja, ja, ja... ¡¡¡ qué bueno !!!

Justo iba a escribir lo que ha puesto roman, es lógico, si falla... entonces simplemente debes esperar un ratito
Responder Con Cita
  #4  
Antiguo 25-04-2007
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Poder: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Pues mira, puedes utilizar Allegro.pas (si utilizas Delphi deberás trucarlo un poco, pero seoane dijo que no era complicado) para abrir un programa en pantalla completa, dibujar el pantallazo azul y capturar el teclado. Como es una librería para juegos, podrás capturar combinaciones como la que dices sin muchos problemas.

Perdón por el spam, pero creo que merece la pena para una broma así.
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine
Responder Con Cita
  #5  
Antiguo 26-04-2007
Avatar de Namaris
Namaris Namaris is offline
Miembro
 
Registrado: dic 2006
Ubicación: Internet
Posts: 16
Poder: 0
Namaris Va por buen camino
Cita:
Empezado por Ñuño Martínez
Pues mira, puedes utilizar Allegro.pas (si utilizas Delphi deberás trucarlo un poco, pero seoane dijo que no era complicado) para abrir un programa en pantalla completa, dibujar el pantallazo azul y capturar el teclado. Como es una librería para juegos, podrás capturar combinaciones como la que dices sin muchos problemas.

Perdón por el spam, pero creo que merece la pena para una broma así.
Me he bajado eso pero nose de que va xD
Esque yo no se programar en realidad, postee aqui porque pense que como aqui si sabes me podrian ayudar

Simplemente necesito que salga una ventana azul al inciar y que solo se pueda quitar cn una combinacion de teclas
Responder Con Cita
  #6  
Antiguo 26-04-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Bueno que tal esto:
Creas una nueva aplicacion, colocas un boton, un timer, cuatro labels.
Eliminas todo del unit y colocas el codigo completo que esta abajo.
Tienes que colocar los eventos, osea darle un click al boton, un click al label1 un click al onformshow y destroy, fijate bien, la unica manera de salir del programa sera dando click sobre el label1.
Puedes darle el color y formato que quieras a los label.
Bueno como dice Roman, que me perdone tu papa.
Va:
Código Delphi [-]
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    Label1: TLabel;
    Timer1: TTimer;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure Label1Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
  private
   // La posicion del label que estamos dibujando (de 1..9)
    _labelActual:Integer;
    { Private declarations }
    procedure CreateParams(var Params: TCreateParams); override;


  public
    { Public declarations }
  end;

  // Define una lista de posiciones
  labelPosition = array[1..20] of integer;

const
  // Amarillo
  POSITION_lab1X:labelPosition = (1152,1144,1040,992,904,856,768,728,640,592,512,472,392,352,280,240,160,120,48,16);
  POSITION_lab1Y:labelPosition = (216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216);
  // Violeta
  POSITION_lab2X:labelPosition = (1152,1144,1040,992,904,856,768,728,640,592,512,472,392,352,280,240,160,120,48,16);
  POSITION_lab2Y:labelPosition = (304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304);
  // Rojo
  POSITION_lab3X:labelPosition = (1152,1144,1040,992,904,856,768,728,640,592,512,472,392,352,280,240,160,120,48,16);
  POSITION_lab3Y:labelPosition = (248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248);

var
  Form1: TForm1;

implementation

{$R *.dfm}
procedure TForm1.CreateParams(var Params: TCreateParams);
 begin
 inherited CreateParams(Params);
 with Params do
 Style := (Style or WS_POPUP) and not WS_DLGFRAME;

 end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Close;

end;

procedure TForm1.Label1Click(Sender: TObject);
begin
   Button1.Perform(WM_LButtonDown,0,0);
   Sleep(250);
   Button1.Perform(WM_LButtonUp,0,0);


end;

procedure TForm1.FormShow(Sender: TObject);
begin
 Form1.Align:= alClient;
 Form1.Color:= clActiveCaption;
 Button1.Visible:= False;
 Label1.Caption:= 'Falla grave  Microsoft ....................................';
 Label2.Caption:= 'Este ordenador esta por fallar';
 Label4.Caption:= 'Necesita memoria urgente';
 Label3.Caption:= 'Que papa, me la compra?';
 //Esconde Barra de inicio
     ShowWindow(FindWindow
    ('Shell_TrayWnd',nil), SW_HIDE) ;

end;

procedure TForm1.Timer1Timer(Sender: TObject);
var
  total:Integer;
begin

  // Que pez estamos dibujando
  _labelActual := _labelActual + 1;
  total := Length(POSITION_lab1X);

  // Se ha acabado?
  if (_labelActual > total) then begin
     _labelActual:= 0;
  {  TimerAnim.Enabled := False;
    I1.Visible := False;
    IV1.Visible := False;
    IR1.Visible := False;
    // Sacar el Main
    //...

   Exit;}
  end
  else begin
    // Amarillo
    label2.Visible := True;
    label2.Transparent := True;
    label2.Left := POSITION_lab1X[_labelActual];
    label2.Top := POSITION_lab1Y[_labelActual];
    // Violeta
    label3.Visible := True;
    label3.Transparent := True;
    label3.Left := POSITION_lab2X[_labelActual];
    label3.Top := POSITION_lab2Y[_labelActual];
    // Rojo
    label4.Visible := True;
    label4.Transparent := True;
    label4.Left := POSITION_lab3X[_labelActual];
    label4.Top := POSITION_lab3Y[_labelActual];


end;
  end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
   //Muestra Barra de inicio
     ShowWindow(FindWindow
    ('Shell_TrayWnd',nil), SW_SHOWNA) ;
end;

end.
Este codigo es en parte aporte de mis Maestros del foro.
Saludos
Responder Con Cita
  #7  
Antiguo 26-04-2007
Avatar de Namaris
Namaris Namaris is offline
Miembro
 
Registrado: dic 2006
Ubicación: Internet
Posts: 16
Poder: 0
Namaris Va por buen camino
Gracias Caral por tu ayuda pero esto.........que hago con este codigo? me bajo alcun complilador de Delphi y lo copio y pego ahi?


Una vez que lo tng pues que hago? lo coloco en inicio de windows?


Un saludo
Responder Con Cita
  #8  
Antiguo 26-04-2007
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Poder: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Cita:
Empezado por Namaris
Me he bajado eso pero nose de que va xD
Esque yo no se programar en realidad, postee aqui porque pense que como aqui si sabes me podrian ayudar

Gracias Caral por tu ayuda pero esto.........que hago con este codigo? me bajo alcun complilador de Delphi y lo copio y pego ahi?


Una vez que lo tng pues que hago? lo coloco en inicio de windows?
Sólo puedo decir una palabra: ¡LOLAZO!

No te lo tomes como insulto, lo que pasa es que no me lo esperaba (bueno, ni yo ni nadie de este foro ).

A ver, alguien que compile el programa que ha publicado nuestro amigo y eterno padawan Caral y le pase el ejecutable a Namaris, a ser posible bien envuelto para su fácil instalación. Yo es que no tengo el compilador listo y estoy haciendo limpieza. Gracias.
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine
Responder Con Cita
  #9  
Antiguo 26-04-2007
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
Namaris, espero que esto no se vuelva una costumbre. Tanto lo de pedir programas a la carta, como lo de engañar a tu familia, que esta muy feo

Aquí te dejo una aplicación que al ejecutarse muestra un pantallazo azul. La única forma de salir es con Ctr+Alt+Supr.

El código (el ejecutable esta en el zip):
Código Delphi [-]
program BlueScreen;

{$APPTYPE CONSOLE}

uses
  Windows, SysUtils;


const
  Mensaje =
  '*** STOP: 0x0000007B (0xF201B84C,0xC0000034,0x00000000,0x00000000)' +#13#10+
  'INACCESIBLE_BOOT_DEVICE'                                      +#13#10#13#10+
  'If this is the first time you have seen this Stop error screen,'    +#13#10+
  'restart your computer. If this screen appears again, follow'        +#13#10+
  'these steps:'                                                 +#13#10#13#10+
  'Check for viruses on your computer. Remove any newly installed'     +#13#10+
  'hard drives or hard drive controllers. Check your hard drive'       +#13#10+
  'to make sure it is properly configured and teminated.'              +#13#10+
  'Run CHKDSK /F to check for hard drive corruption, and then'         +#13#10+
  'restart your computer.'                                       +#13#10#13#10+
  'Refer to tour Getting Started manual for more information on'       +#13#10+
  'troubleshooting Stop errors.';

const
  WH_KEYBOARD_LL = 13;

function SetConsoleDisplayMode(hConsoleOutput: THandle; dwFlags: DWORD;
  var pNewScreenBufferDimensions: TCoord): BOOL; stdcall;
  external 'Kernel32.dll' name 'SetConsoleDisplayMode';

function HandlerRoutine(dwCtrlType: DWORD): BOOL; stdcall;
begin
  Result:= TRUE;
end;

function KbdHook(Code: Integer; WParam, LParam: DWORD): HHook; stdcall;
begin
  Result:= 1;
end;

procedure Loop;
var
  Msg: TMsg;
begin
  while GetMessage(Msg,0,0,0) do
    DispatchMessage(Msg); 
end;

procedure WriteMsg;
var
  F: TextFile;
  Str: String;
begin
  if FileExists(ChangeFileExt(ParamStr(0),'.txt')) then
  begin
    AssignFile(F,ChangeFileExt(ParamStr(0),'.txt'));
    {$I-}
      Reset(F);
    {$I+}
    if IOResult=0 then
    begin
      while not EOF(F) do
      begin
        Readln(F,Str);
        Writeln(Str);
      end;
      CloseFile(F);
    end else
      Writeln(Mensaje);
  end else
    Writeln(Mensaje);
end;

var
  BufferSize: DWORD;
  Hook: HHook;
  ScreenBuffer: THandle;
  Coord: TCoord;

begin
  ScreenBuffer:= GetStdHandle(STD_OUTPUT_HANDLE);
  if ScreenBuffer <> INVALID_HANDLE_VALUE then
    if SetConsoleDisplayMode(ScreenBuffer,1,Coord) then
    begin
      FillChar(Coord,Sizeof(Coord),0);
      FillConsoleOutputAttribute(ScreenBuffer,FOREGROUND_RED or FOREGROUND_BLUE or
        FOREGROUND_GREEN or FOREGROUND_INTENSITY or BACKGROUND_BLUE,
        MAXINT, Coord, BufferSize);
      SetConsoleTextAttribute(ScreenBuffer,FOREGROUND_RED or FOREGROUND_BLUE or
        FOREGROUND_GREEN or FOREGROUND_INTENSITY or BACKGROUND_BLUE);
      SetConsoleCursorPosition(ScreenBuffer,Coord);
      if SetConsoleCtrlHandler(@HandlerRoutine,TRUE) then
      begin
        Hook:= SetWindowsHookEx(WH_KEYBOARD_LL, @KbdHook, HInstance, 0);
        if Hook <> 0 then
        begin
          WriteMsg;
          Loop;
          UnhookWindowsHookEx(Hook);
        end;
      end;
    end;
end.

PD: Hace tanto tiempo que no veía ninguna que tuve que copiar el mensaje de la wikipedia.
Archivos Adjuntos
Tipo de Archivo: zip BlueScreen.zip (26,0 KB, 16 visitas)

Última edición por seoane fecha: 26-04-2007 a las 16:51:32.
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
¿Por qué la tinta de los bolígrafos es azul? marcoszorrilla La Taberna 19 25-07-2007 12:27:09
Ocultar Barra de Windows (Azul) en objeto oleautomation apicito OOP 2 04-05-2007 15:00:11
Necesito el código de una Clase para el manejo del Registro de Windows Jesús Pena OOP 6 06-02-2006 21:52:44
Capturar pantalla desde un servicio del windows walrus API de Windows 4 17-08-2005 17:59:14
Error al capturar la pantalla!! DarkByte Gráficos 7 28-07-2005 03:16:33


La franja horaria es GMT +2. Ahora son las 17:55:11.


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