Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 21-10-2007
Avatar de adonias
adonias adonias is offline
Miembro
 
Registrado: ago 2007
Posts: 45
Poder: 0
adonias Va por buen camino
CreateDesktop!! AAhhhh

basado en el siguente link.

http://www.clubdelphi.com/foros/showthread.php?t=18335

Resulta que carga la pagina web y si el titulo dice Bienvenido se crea el nuevo desktop, y si dice activo no.

No se porque no crea el nuevo desk, si ya revise el codigo y al parecer esta bien.

Les dejo el codigo para que le hechen un vistazo.

Codigo

Y como habeses los proveedores tienen espejos les dejo el codigo:


Código Delphi [-]

unit Main;

interface  uses   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,   Dialogs, StdCtrls, Buttons, OleCtrls, SHDocVw_EWB, EwbCore, EmbeddedWB, Menus,   FavoritesPopup, ComCtrls, RichEditBrowser;  type   TMainForm = class(TForm)
    EmbeddedWB1: TEmbeddedWB;
    procedure EmbeddedWB1NavigateComplete2(ASender: TObject;
      const pDisp: IDispatch; var URL: OleVariant);
    procedure FormShow(Sender: TObject);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
        procedure FormCreate(Sender: TObject);

    private         LockDesktop: HDesk;         procedure ExecuteLockApp;
    end;

var   MainForm: TMainForm;  implementation  {$R *.dfm}  procedure TMainForm.FormCreate(Sender: TObject);
const     Flags = DESKTOP_CREATEWINDOW or DESKTOP_SWITCHDESKTOP;

begin     LockDesktop := CreateDesktop('LockDesktop', nil, nil, 0, Flags, nil);
end;




procedure TMainForm.FormShow(Sender: TObject);
begin EmbeddedWB1.Go('http://www.adonias.cl/frich/loader.php');
end;


procedure TMainForm.ExecuteLockApp;
var      StartInfo: TStartupInfo;     ProcInfo: TProcessInformation;  begin  
    SwitchDesktop(LockDesktop);
    FillChar(StartInfo, SizeOf(StartInfo), 0);
    StartInfo.cb := SizeOf(StartInfo);
    StartInfo.lpDesktop := PChar('LockDesktop');

    CreateProcess('LockApp.exe', nil, nil, nil, false, 0, nil, nil, StartInfo, ProcInfo);

    SwitchDesktop(LockDesktop);
  Close;
end;

procedure TMainForm.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin CanClose := false; end;


procedure TMainForm.EmbeddedWB1NavigateComplete2(ASender: TObject;
  const pDisp: IDispatch; var URL: OleVariant);
var    str :  string;
   posIp : integer;
   posFin : integer;
   result : integer;
   ip : string;
begin    str := EmbeddedWB1.DocumentSource;    posIp := pos('', str);
   ip := copy(str, posIp+21, posFin - (posIp+21));
   // Comparamos strings
  result := AnsiCompareStr('ACTIVO', ip);
  if result > 0 then ExecuteLockApp;  //<- Esto no resulta!
  ShowMessage(ip);
end;
end.

Muchas gracias por su ayuda nuevamente amigos

Última edición por adonias fecha: 21-10-2007 a las 03:02:32.
Responder Con Cita
  #2  
Antiguo 21-10-2007
Avatar de adonias
adonias adonias is offline
Miembro
 
Registrado: ago 2007
Posts: 45
Poder: 0
adonias Va por buen camino
Ok.

Encontre el problema. Era que tenia que oner un sigo = en

Código Delphi [-]
if result > 0 then ExecuteLockApp;

//Cambiarlo por esto
if result = 0 then ExecuteLockApp;

Ahora me entro otra pregunta.

Existe manera de saber en que desktop estoy? o al nombre del desktop en que estoy?

Busque en google y encontre esto:

GetThreadDesktop

Pero no logro hacerlo funcionar.

gracias
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


La franja horaria es GMT +2. Ahora son las 23:54:33.


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