Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   Ayuda conectar form con IdHTTP (https://www.clubdelphi.com/foros/showthread.php?t=83379)

AndresSalazer 11-06-2013 13:32:06

Ayuda conectar form con IdHTTP
 
Hola a todos estoy haciendo un trabajo para la facultad y bueno hace poco empezamos con delphi estuve leyendo muchos cursos y tutoriales que hay por internet y nos han mandado a hacer un registro del micro procesador usando el componente WMI , para esto en una casilla de edit.texto obtenemos el " ID Unico del Procesador " hasta aquí vamos perfecto por que esto lo eh terminado.

Cita:

Me acabo de Bajar Indy y estoy haciendo proyectos tras proyectos sin lograr nada agradecería un poco de ayuda .. :/ gracias!

Pero ahora necesitamos crear a partir de este Único form un archivo en una web cualquiera por ejemplo h t t p :// w w w .clubdelphi.com//miarchivo.html/

El form debe contener una casilla Memo ( Donde se supone que se escribe el código ) o registre el código del ID del procesador puesto en HTML .

Y que mi form lea esta dirección si dentro del archivo URL ( h t t p :// w w w .clubdelphi.com//miarchivo.html/ ) -> esta escrito el ID del procesador que deje continuar la aplicación.

En el caso de que no este escrito que no la deje continuar y salga un " Mensaje de Error "

Me podrían ayudar con esta tarea ? Se los agradecería ..

Casimiro Notevi 11-06-2013 13:51:30

Bienvenido a clubdelphi, ¿ya leiste nuestra guía de estilo?, gracias por tu colaboración :)

Neftali [Germán.Estévez] 11-06-2013 13:56:42

Hola.

Cita:

Empezado por AndresSalazer (Mensaje 462055)
nos han mandado a hacer un registro del micro procesador usando el componente WMI , para esto en una casilla de edit.texto obtenemos el " ID Unico del Procesador " hasta aquí vamos perfecto por que esto lo eh terminado.

¿Qué componente WMI utilizas?
Hasta aquí salvo la pregunta,más o menos entiendo lo que te han mandado y lo que has hecho.

Cita:

Empezado por AndresSalazer (Mensaje 462055)
Me acabo de Bajar Indy y estoy haciendo proyectos tras proyectos sin lograr nada agradecería un poco de ayuda .. :/ gracias!
Pero ahora necesitamos crear a partir de este Único form un archivo en una web cualquiera por ejemplo h t t p :// w w w .clubdelphi.com//miarchivo.html/
El form debe contener una casilla Memo ( Donde se supone que se escribe el código ) o registre el código del ID del procesador puesto en HTML .
Y que mi form lea esta dirección si dentro del archivo URL ( h t t p :// w w w .clubdelphi.com//miarchivo.html/ ) -> esta escrito el ID del procesador que deje continuar la aplicación.
En el caso de que no este escrito que no la deje continuar y salga un " Mensaje de Error "

Aquí ya me he perdido.
¿No estarás hablando de Intraweb, en lugar de las Indy?
¿Puedes explicar lo que necesitas porque no se entiende lo que necesitas?

Intenta dedicarle un poco de tiempo a explicar bien, lo que debes hacer.

Revisa la Guia de estilo. Bienvenido a los foros.

AndresSalazer 11-06-2013 14:08:51

Cita:

Empezado por Casimiro Notevi (Mensaje 462056)
Bienvenido a clubdelphi, ¿ya leiste nuestra guía de estilo[/url]?, gracias por tu colaboración :)

Hola gracias por la bienvenida en un rato la leo disculpa ! saludos ^\||/ Gracias por tu colaboración !! .

Cita:

Empezado por Neftali (Mensaje 462057)
Hola.



¿Qué componente WMI utilizas?
Hasta aquí salvo la pregunta,más o menos entiendo lo que te han mandado y lo que has hecho.



Aquí ya me he perdido.
¿No estarás hablando de Intraweb, en lugar de las Indy?
¿Puedes explicar lo que necesitas porque no se entiende lo que necesitas?

Intenta dedicarle un poco de tiempo a explicar bien, lo que debes hacer.

Revisa la Guia de estilo[/url]. Bienvenido a los foros.

Hola como estas , un componente que descargue de tu Web o Blog no se si serás el mismo Neftali pero allí habia uno que desarrollo unas herramientas de la puta madre .. el componente descargado es llamado : GLibWMI_1.8beta_all

Bueno en base a este componente y viendo un poco el source En un Form , hice un pequeño archivo que reconoce el procesador ID nada más que eso .. en el form escribo lo siguiente :

Hasta aquí ya va perfecto porque mediante un Edit . Text puedo obtener el ID del procesador de mi maquina o de cualquiera digamos y funciona muy bien de hecho solamente eso necesitaba obtener en esta ocasión y lo pude lograr investigando un poco y hechando manos..

Este es el codigo que identifica el ID del CPU (Procesador ID) con el componente correspondiente : GLibWMI

Código Delphi [-]
procedure TForm1.FormCreate(Sender: TObject);
var
  dd:TProcessorInfo;
  ddProps:TProcessorProperties;
  InKB, InMB, InGB: Double;
  str:string;
begin
dd := ProcessorInfo1;
ddProps := dd.ProcessorProperties;
edtProcessorID.Text := ddProps.ProcessorId;
end;

Código:

Ejemplo : oi40.tinypic.com/2mms5lf.jpg
Bueno y aquí viene lo siguiente logre hacer que mi Form lea desde un sitio foro " digamos donde almacenare las HWID que quiero que lea "

En este caso leyendo un poco más y adentrandome e investigando logre colocar en un MEMO , y usando el Componente de Indy (IdHTTP1)

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var HTTPCLIENT1: TIdHTTP;
begin
  try
   try
     HTTPCLIENT1 := TIdHTTP.Create(nil);
     Memo1.Clear;
     with HTTPCLIENT1 do
     begin
          HandleRedirects := True;
          Request.UserAgent   := 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31';
          Memo1.Text := Get('Mi pagina donde tengo los HWID cargados');
          Caption := ResponseText;
     end;
   except
     On e: Exception do
     begin
          Memo1.Lines.Add('Exception: '+e.Message);
     end;
   end;
  finally
     HTTPCLIENT1.Free;
  end;
end;

Código:

Ejemplo : oi43.tinypic.com/nzoom1.jpg
Como veran en la imagen lee las HWID cargadas pero necesito hacer otra cosa ahora :P

Pero ahora lo que necesito es que al hacer click en el boton , identifique si esta cargado el HWID en la página y si esta que me permita acceder a un Form2 , que puedo agregar o bien que al hacer click en el boton identifique si el HWID de la pagina es el de mi maquina y me permita continuar con la aplicación y en caso de que no este cargado en la página que automaticamente me suelte un error.

Agradecería respuestas estoy bastante apurado con esto !!! :D

Neftali [Germán.Estévez] 11-06-2013 14:26:29

Cita:

Empezado por AndresSalazer (Mensaje 462058)
Hola como estas , un componente que descargue de tu Web o Blog no se si serás el mismo Neftali pero allí habia uno que desarrollo unas herramientas de la puta madre .. el componente descargado es llamado : GLibWMI_1.8beta_all

La verdad es que sí tienen buena pinta... ;-)

Cita:

Empezado por AndresSalazer (Mensaje 462058)
...aquí viene lo siguiente logre hacer que mi Form lea desde un sitio foro " digamos donde almacenare las HWID que quiero que lea "

El problema, y es lo que intento explicarte, es que no dejas claro "lo que necesitas hacer".
Me estás explicando lo que haces (que no entiendo), pero no lo que necesitas hacer.

Cita:

Empezado por AndresSalazer (Mensaje 462058)
...lo que necesito es que al hacer click en el boton , identifique si esta cargado el HWID en la página y si esta que me permita acceder a un Form2 , que puedo agregar o bien que al hacer click en el boton identifique si el HWID de la pagina es el de mi maquina y me permita continuar con la aplicación y en caso de que no este cargado en la página que automaticamente me suelte un error.

De verdad, que leo la frase y no lo entiendo.
No entiendo qué tiene que ver el componente de las Indy es esto.
¿Por qué necesitas acceder a internet para saber temas de hardware?
¿Quieres que al acceder a una página web te de el identificador del equipo?
¿?¿?¿

Cita:

Empezado por AndresSalazer (Mensaje 462058)
Como veran en la imagen lee las HWID cargadas pero necesito hacer otra cosa ahora :P

¿Qué estás leyendo ahí? ¿Un fichero de texto?
¿Esas HWID de las que hablas de dónde salen? ¿Dónde están almacenadas?

AndresSalazer 11-06-2013 14:45:12

Cita:

Empezado por Neftali (Mensaje 462059)
La verdad es que sí tienen buena pinta... ;-)



El problema, y es lo que intento explicarte, es que no dejas claro "lo que necesitas hacer".
Me estás explicando lo que haces (que no entiendo), pero no lo que necesitas hacer.



De verdad, que leo la frase y no lo entiendo.
No entiendo qué tiene que ver el componente de las Indy es esto.
¿Por qué necesitas acceder a internet para saber temas de hardware?
¿Quieres que al acceder a una página web te de el identificador del equipo?
¿?¿?¿

¿Qué estás leyendo ahí? ¿Un fichero de texto?
¿Esas HWID de las que hablas de dónde salen? ¿Dónde están almacenadas?

Estoy leyendo una url externa al form creado , lo que hace que lea los HWIDs cargados en esa pagina , esas HWIds que salen son las otras computadoras del HOGAR con las que hice pruebas con una aplicación de un amigo que también hizo la misma aplicación pero en diferente lenguaje .

No exactamente me detallare paso por paso , antes que nada quiero agradecerte por tu colaboración y las respuestas !!!

Ejemplo : Yo tengo un archivo el cual al abrirlo resulta ser un form con un edit , text y un buton

Bien hasta aqui vamos genial ahora al momento yo de " Verificar si ese archivo / programa " Haciendo Click en el boton me diga si esta validado para mi PC el cual hace que lea el Link de la pagina que agregue por Indy IdHTTP y verifique si el serial cargado en esa web es el que tiene este programa en su Edit , Texto. ( EN el caso de que sea así que me permita continuar la operación ) ejemplo puedo agregar un form 2 y que al decir que esta verificado continue al form 2 , en el caso de que no este cargado que me de un mensaje de error ..

Un ejemplo rapido que voy a hacer : un amigo hizo algo similar pero en vB 2010 Express - a todos nos toco distinto tipo de lenguajes..

Quizás no explique muy bien o no sirva para explicar en estos casos muchas veces me trabo con el tema de dar explicaciones no es mi fuerte , pero dejare algo mas detallado lo cual servirá como mi apoyo de explicación es un diseño similar a mi trabajo que me hizo un amigo en vB2010 que también conecta con el foro gratuito que cree para que lea las HWIDs ,

Código:

Ejemplo de lo que quiero hacer video Youtube  :
youtube.com/watch?v=g0R7cXQ_4-8


AndresSalazer 11-06-2013 18:23:06

Bueno eh conseguido el codigo de mi amigo y lo que me dio es esto me dijo que lo tradujera pero no entiendo mucho las syntaxis de vB para pasarlo a Delphi alguna mano ?

Aclaro la etiqueta no es código DELPHi esta programado en vB esto y necesitaría pasarlo a Delphi para que me funcione lo que intento hacer u.U !!

Código Delphi [-]
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
        txthwid.Text = GetHWID()
        Me.AcceptButton = btnconnect
    End Sub

    Function GetHWID()
        Dim mc As New ManagementClass("win32_processor")
        Dim moc As ManagementObjectCollection = mc.GetInstances
        For Each mo As ManagementObject In moc
            If cpuInfo = "" Then
                cpuInfo = mo.Properties("processorID").Value.ToString
                Exit For
            End If
        Next
        Return cpuInfo
    End Function

    Private Sub btnConnect_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnConnect.Click
        Dim Request As System.Net.HttpWebRequest = System.Net.HttpWebRequest.Create("TU LINK")
        Dim Response As System.Net.HttpWebResponse = Request.GetResponse()
        Dim SR As System.IO.StreamReader = New System.IO.StreamReader(Response.GetResponseStream)
        Dim HWIDAdded As String = SR.ReadToEnd
        Dim ThisHWID As String = GetHWID()
        If HWIDAdded.Contains(ThisHWID) Then
            Form2.Show()
            Me.Hide()
        Else
            Interaction.MsgBox("Not Licensed Yet.. @Contact your support", MsgBoxStyle.Critical, "Obtain your License")
        End If
    End Sub

    Private Sub Form1_Load_2(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        txtHWID.Text = GetHWID()
        Me.AcceptButton = btnconnect
    End Sub

Casimiro Notevi 11-06-2013 18:30:35

¿En qué necesitas ayuda exactamente para pasarlo a delphi?, ¿qué parte no entiendes?

AndresSalazer 11-06-2013 18:36:05

Cita:

Empezado por Casimiro Notevi (Mensaje 462076)
¿En qué necesitas ayuda exactamente para pasarlo a delphi?, ¿qué parte no entiendes?

Es que generalmente me estoy inicializando en lo que es programación no terminamos el primer año y ya nos estan matando con diferentes lenguajes nos dan apuntes y ejercicios pero relativamente no aprendemos del todo un lenguaje como para poder continuar con otro anteriormente tuvimos que presentar monografías en C++ y ahora salen con esta payasada no se que hacer!

No entiendo , " No comprendo la sintaxis de vB " como para traducirla a pascal estuve leyendo y orientandome en codigos encontrados en la web referentes o ejemplos pero no logro distinguir al momento de pasarlos o comprender como se orientan cada uno.

Yo necesitaría traducir " digamos ese código para que mi " ( Programa funcione ) " o bien hacer lo anterior a ese post .. >_< ^\||/

Gracias por tu respuesta y/o colaboración son apreciadas !

Al González 11-06-2013 18:39:59

¿Cuál es el objetivo, Andrés? ¿Que tu programa verifique si en cierta página aparece cierto valor y, dependiendo de ello, que permita continuar o que se cierre? :confused:

Cita:

Empezado por AndresSalazer (Mensaje 462078)
Es que generalmente me estoy inicializando en lo que es programación no terminamos el primer año y ya nos estan matando con diferentes lenguajes nos dan apuntes y ejercicios pero relativamente no aprendemos del todo un lenguaje como para poder continuar con otro [...]

Sólo por curiosidad, ¿qué escuela es y qué carrera estudias?

Con un poco más de calma (y comas) se te comprendería mejor, en buen plan. :)

AndresSalazer 11-06-2013 18:43:51

Cita:

Empezado por Al González (Mensaje 462081)
¿Cuál es el objetivo, Andrés?

¿Que tu programa verifique si en cierta página aparece cierto valor y, dependiendo de ello, que permita continuar o que se cierre? :confused:

Sólo por curiosidad, ¿qué escuela es y qué carrera estudias?

Con un poco más de calma (y comas) se te comprendería mejor, en buen plan. :)

Estudio en la UNLAM , la carrera es : Ingeniería en Informática , es mi primer año ..

Exactamente , eso ._. :mad: No logro entender que es lo que hizo mi compañero en vB porque segun todas las posibles traducciones que encontre tuve que Moldearme a viejos componentes de Pascal para poder sacar el Procesador ID primero haciendolo funcionar en Delphi6 y Pasandolo a Delphi7 y ahora , Luego tuve que usar un componente de Indy10 Para pascal y hacer la conexión IdHTTP para que lea en un Memo el " URL " ahora lo que necesito es lo siguiente :

" Que al apretar el botón " Me diga si esta validado o no , ejemplo ya esta hecha la conexión al servidor IdHTTP ahora solo queda verificar que sea cierto si esta el HWID cargado tiene que continuar a otro form que lo puedo agregar arriba y si no esta el HWID en el servidor que directamente salga un error!!

Lo que quiero hacer es que , al momento de "Chaskear el boton" me diga si el hwid cargado en la página "esta" ejemplo ,

Si esta el HWID cargado en la página que continue abriendo un Form2 continua -> "Abre un Form" ,

Si no esta cargado el HWID en la página que salga un "MsgBox Error"

Neftali [Germán.Estévez] 11-06-2013 19:02:53

Revisa este link, a ver si es lo que necesitas...
No estoy seguro de que sea eso.

Un saludo.

AndresSalazer 11-06-2013 19:06:23

Cita:

Empezado por Neftali (Mensaje 462086)
Revisa este link, a ver si es lo que necesitas...
No estoy seguro de que sea eso.

Un saludo.

No veo ningún Link .. :o

Neftali [Germán.Estévez] 11-06-2013 19:44:50

Perdón... :o

Obtener el contenido HTML de una página aweb

AndresSalazer 11-06-2013 19:48:48

Cita:

Empezado por Neftali (Mensaje 462092)
Perdón... :o

Obtener el contenido HTML de una página aweb

Gracias lo voy a revisar a ver como puedo implementarlo aunque estaba leyendo que puedo usar Tags para identificar y validar!

AndresSalazer 12-06-2013 13:26:39

Cita:

Empezado por Neftali (Mensaje 462092)
Perdón... :o

Obtener el contenido HTML de una página aweb

Bueno no me sirvio eso es lo mismo que estaba haciendo yo con el MEMO , pero se agradece el aporte no eh podido terminar mi proyecto saludos gracias a todos y en Especial a : [Al Gonzales] que luego de preguntarme mi vida me borro de Skype sin darme una respuesta ^\||/

Gracias neftali por querer ayudarme , !

ecfisa 12-06-2013 16:07:25

Hola.

Si no te entiendo mal habías logrado cargar la lista de HWIDs al memo, por lo que prácticamente ya lo tenías solucionado. Solo te faltó revisar si el el HWID existía en la lista obtenida.

Para ejemplificar, uso la dirección de tu mensaje número #4 y algunas palabras de su contenido:
Código Delphi [-]
...
uses  IdHTTP;

(* función que devolvería ProcessorId *)
function  GetHWID: string;
begin
  Result := 'estoy bastante apurado con esto !!!';
end;


function TForm1.TryConnect(const aURL: string; TS: TStrings): Boolean;
begin
   Result := True;
   with TidHTTP.Create(nil) do
   try
    try
      HandleRedirects := True;
      TS.Text := Get(aURL);
      Caption := ResponseText
    except
      on E: Exception do
      begin
        MessageBox(Handle, PChar(E.Message),'Error',MB_ICONERROR+MB_OK);
        Result := False
      end
    end;
  finally
    Free
  end;
end;

procedure TForm1.btnVerificarClick(Sender: TObject);
const
  URL_MSG = 'http://www.clubdelphi.com/foros/showpost.php?p=462058&postcount=4';
var
  TS: TStrings;
begin
  TS := TStringList.Create;
  try
    if TryConnect(URL_MSG, TS) then
      if Pos(GetHWID, TS.Text) = 0 then
        raise Exception.Create('Error: HWID no identificado');
    ShowMessage('Form2 continua -> "Abre un Form"');
    ...
  finally
    TS.Free;
  end;
end;
Si cambias algo del texto que devuelve la función GetHWID no será encontrado y lanzará la excepción.

Saludos :)

AndresSalazer 12-06-2013 20:23:42

Cita:

Empezado por ecfisa (Mensaje 462137)
Hola.

Si no te entiendo mal habías logrado cargar la lista de HWIDs al memo, por lo que prácticamente ya lo tenías solucionado. Solo te faltó revisar si el el HWID existía en la lista obtenida.

Para ejemplificar, uso la dirección de tu mensaje número #4 y algunas palabras de su contenido:
Código Delphi [-]
...
uses  IdHTTP;

(* función que devolvería ProcessorId *)
function  GetHWID: string;
begin
  Result := 'estoy bastante apurado con esto !!!';
end;


function TForm1.TryConnect(const aURL: string; TS: TStrings): Boolean;
begin
   Result := True;
   with TidHTTP.Create(nil) do
   try
    try
      HandleRedirects := True;
      TS.Text := Get(aURL);
      Caption := ResponseText
    except
      on E: Exception do
      begin
        MessageBox(Handle, PChar(E.Message),'Error',MB_ICONERROR+MB_OK);
        Result := False
      end
    end;
  finally
    Free
  end;
end;

procedure TForm1.btnVerificarClick(Sender: TObject);
const
  URL_MSG = 'el url del post4 no me permite poner links';
var
  TS: TStrings;
begin
  TS := TStringList.Create;
  try
    if TryConnect(URL_MSG, TS) then
      if Pos(GetHWID, TS.Text) = 0 then
        raise Exception.Create('Error: HWID no identificado');
    ShowMessage('Form2 continua -> "Abre un Form"');
    ...
  finally
    TS.Free;
  end;
end;
Si cambias algo del texto que devuelve la función GetHWID no será encontrado y lanzará la excepción.

Saludos :)

Hola muchas gracias por tomarte tu tiempo y poder explicar y/o entender que era lo que trataba de explicar y lo cual no encontraba soluciones de manera no , satisfactoria ayer era la entrega de Proyectos y no pude terminar el mío me tuve que integrar con un grupo que hicieron otro proyecto ..

Bueno en este caso revisando un poco el código que posteastes al momento de implementarlo y situar nuevamente en lo que es el code , me lanza algunos errores eh intentado cambiar de lugar algunas cosas y modificarlas pero aún así no logro terminar de declarar algunas funciones para que pueda compilar sin errores saludos y gracias por tu cooperación !

AndresSalazer 12-06-2013 20:54:34

no podia editar el de arriba ._. !!!!!!!
 
Cita:

Empezado por ecfisa (Mensaje 462137)
Hola.

Si no te entiendo mal habías logrado cargar la lista de HWIDs al memo, por lo que prácticamente ya lo tenías solucionado. Solo te faltó revisar si el el HWID existía en la lista obtenida.

Para ejemplificar, uso la dirección de tu mensaje número #4 y algunas palabras de su contenido:
Código Delphi [-]
...
uses  IdHTTP;

(* función que devolvería ProcessorId *)
function  GetHWID: string;
begin
  Result := 'estoy bastante apurado con esto !!!';
end;


function TForm1.TryConnect(const aURL: string; TS: TStrings): Boolean;
begin
   Result := True;
   with TidHTTP.Create(nil) do
   try
    try
      HandleRedirects := True;
      TS.Text := Get(aURL);
      Caption := ResponseText
    except
      on E: Exception do
      begin
        MessageBox(Handle, PChar(E.Message),'Error',MB_ICONERROR+MB_OK);
        Result := False
      end
    end;
  finally
    Free
  end;
end;

procedure TForm1.btnVerificarClick(Sender: TObject);
const
  URL_MSG = 'el url del post4 no me permite poner links';
var
  TS: TStrings;
begin
  TS := TStringList.Create;
  try
    if TryConnect(URL_MSG, TS) then
      if Pos(GetHWID, TS.Text) = 0 then
        raise Exception.Create('Error: HWID no identificado');
    ShowMessage('Form2 continua -> "Abre un Form"');
    ...
  finally
    TS.Free;
  end;
end;
Si cambias algo del texto que devuelve la función GetHWID no será encontrado y lanzará la excepción.

Saludos :)

Hola muchas gracias por tomarte tu tiempo y poder explicar y/o entender que era lo que trataba de explicar y lo cual no encontraba soluciones de manera no , satisfactoria ayer era la entrega de Proyectos y no pude terminar el mío me tuve que integrar con un grupo que hicieron otro proyecto ..

Bueno en este caso revisando un poco el código que posteastes al momento de implementarlo y situar nuevamente en lo que es el code , me lanza algunos errores eh intentado cambiar de lugar algunas cosas y modificarlas pero aún así no logro terminar de declarar algunas funciones para que pueda compilar sin errores saludos y gracias por tu cooperación !

Tras estar un rato mirandolo recibo un par de errores que me tienen loco si estan declaradas las strings porque me da estos errores ?

Cita:

[Error] Unit1.pas(40): Undeclared identifier: 'TryConnect'
[Error] Unit1.pas(40): '=' expected but ';' found
[Error] Unit1.pas(40): '=' expected but ')' found
[Error] Unit1.pas(41): Missing operator or semicolon
[Error] Unit1.pas(42): Undeclared identifier: 'Result'
[Error] Unit1.pas(48): Undeclared identifier: 'Caption'
[Error] Unit1.pas(52): Undeclared identifier: 'Handle'
[Error] Unit1.pas(108): Undeclared identifier: 'TryConnect'
[Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'

Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, CWMIBase, CProcessorInfo, IdBaseComponent,
  IdComponent, IdTCPConnection, IdTCPClient, IdHTTP;

type
   TGetValueFunction = Function: String of object;
   TForm1 = class(TForm)
    ProcessorInfo1: TProcessorInfo;
    edtProcessorID: TEdit;
    Label1: TLabel;
    Memo1: TMemo;
    IdHTTP1: TIdHTTP;
    Button1: TButton;
    btnVerificar: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure btnVerificarClick(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;


implementation

function  GetHWID: string;
begin
  Result := 'Probando a ver que pasará ..';
end;
function TForm1.TryConnect(const aURL: string; TS: TStrings): Boolean;
begin
   Result := True;
   with TidHTTP.Create(nil) do
   try
    try
      HandleRedirects := True;
      TS.Text := Get(aURL);
      Caption := ResponseText
    except
      on E: Exception do
      begin
        MessageBox(Handle, PChar(E.Message),'Error',MB_ICONERROR+MB_OK);
        Result := False
      end
    end;
  finally
    Free
  end;
end;

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var
  dd:TProcessorInfo;
  ddProps:TProcessorProperties;
  InKB, InMB, InGB:Double;
  str:string;
begin
dd := ProcessorInfo1;
ddProps := dd.ProcessorProperties;
edtProcessorID.Text := ddProps.ProcessorId;
end;


procedure TForm1.Button1Click(Sender: TObject);
var HTTPCLIENT1: TIdHTTP;
begin
try
try
HTTPCLIENT1 := TIdHTTP.Create(nil);
Memo1.Clear;
with HTTPCLIENT1 do
begin
HandleRedirects := True;
Request.UserAgent   := 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31';
Memo1.Text := Get('http://hdwid.foroargentina.net/h1-hdwid');
end;
except
On e: Exception do
begin
Memo1.Lines.Add('Exception: '+e.Message);
end;
end;
finally
HTTPCLIENT1.Free;
end;
end;

procedure TForm1.btnVerificarClick(Sender: TObject);
const
  URL_MSG = 'http://hdwid.foroargentina.net/h1-hdwid';
var
  TS: TStrings;
begin
  TS := TStringList.Create;
  try
    if TryConnect(URL_MSG, TS) then
      if Pos(GetHWID, TS.Text) = 0 then
        raise Exception.Create('Error: HWID no identificado');
    ShowMessage('Form2 continua -> "Abre un Form"');
  finally
    TS.Free;
  end;
end;

end.
:mad:

ecfisa 13-06-2013 00:13:29

Cita:

Empezado por AndresSalazer (Mensaje 462149)
Tras estar un rato mirandolo recibo un par de errores que me tienen loco si estan declaradas las strings porque me da estos errores ?
..

Hola Andres.

En principio te faltó declarar el método TryConnect. Por lo que veo, en tu código sólo está definido, los demás avisos se desprenden del mismo orígen.

Te adjunto los fuentes del ejemplo tál como está en mi mensaje anterior y funcionando, para que lo puedas revisar con tranquilidad.

Cualquier inconveniente no dudes en comunicarlo.

Saludos. :)

AndresSalazer 13-06-2013 07:35:09

Cita:

Empezado por ecfisa (Mensaje 462151)
Hola Andres.

En principio te faltó declarar el método TryConnect. Por lo que veo, en tu código sólo está definido, los demás avisos se desprenden del mismo orígen.

Te adjunto los fuentes del ejemplo tál como está en mi mensaje anterior y funcionando, para que lo puedas revisar con tranquilidad.

Cualquier inconveniente no dudes en comunicarlo.

Saludos. :)

Muchas gracias ecfisa no había declarado el TryConnect , ahora si compila sin errores lo único que me queda averiguar es como hacer que, Chequee los HWID de la página con la que tiene la maquina para que continue al form2 ya que puedo añadirle una Línea arriba Uses : unit2 .

AndresSalazer 13-06-2013 09:31:15

Cita:

Empezado por AndresSalazer (Mensaje 462156)
Muchas gracias ecfisa no había declarado el TryConnect , ahora si compila sin errores lo único que me queda averiguar es como hacer que, Chequee los HWID de la página con la que tiene la maquina para que continue al form2 ya que puedo añadirle una Línea arriba Uses : unit2 .

Hola ecfisa como estas te agradezco porque me hayas respondido mis preguntas en el thread que inicie y hayas podido aclarar todas las dudas y responder lo que las otras personas no pudieron o no quisieron ayudarme!

Quería antes que nada preguntarte si tenes Skype o Messenger o Facebook , ya que como estoy en mi primer año lo que hice en El formulario fue a base de tutoriales y guías sin tener el conocimiento que requiero para programar como nos cambiaron los lenguajes muchas veces de vB a C# de C# a Pascal y así , tengo una ensala de fruta en la cabeza y no me deja pensar bien y no me puedo explicar bien o entenderme a la hora de hacer que esto funcione.

Mi pequeña duda a todo esto es ya declarado el TryConnect y compila genial , lo unico que me resta es que siga al siguiente formulario ya que no "Chequea" el HWID en la página o yo no lo hago que compruebe no lo entiendo bien , pero me ayudarías con este temita ? serían un par de minutitos nada más.

Saludos y muchisimas gracias por todo!

ecfisa 13-06-2013 10:01:00

1 Archivos Adjunto(s)
Hola Andres.

Te pongo el ejemplo algo modificado con el agregado de un TListBox y un TEdit.

Lo leído de la página, además de almacenarlo temporalmente en TStrings(donde se busca el ProcessorId), se muestra en un TListBox para mayor claridad. Esta vez hice referencia a una página que tiene logarítmos del 1 al 100. Desde el edit, ingresa cualquier logarítmo que cumpla la condición vg: 1,397940 - 1,531479 - 1,579784 - etc. Y también otros que no lo hagan: 2,079181 - 2,017609 - 2,69897 - etc.

En el segundo caso mostrará el mensaje de error y en el primero permitirá la creación y visualización del form.

Si sigue dándote problemas sería muy útil conocer la dirección de la página contra la que efectuas la lectura y que pusieras algún valor HWID que hayas usado como prueba. De ese modo sería mas fácil hacerte un ejemplo sobre el caso específico.

Saludos. :)

Casimiro Notevi 13-06-2013 10:05:06

Cita:

Empezado por AndresSalazer (Mensaje 462162)
Hola ecfisa como estas te agradezco porque me hayas respondido mis preguntas en el thread que inicie y hayas podido aclarar todas las dudas y responder lo que las otras personas no pudieron o no quisieron ayudarme!

Nadie tiene ninguna obligación de responder nada, ninguno cobra por perder su tiempo ;)

AndresSalazer 13-06-2013 10:06:39

Cita:

Empezado por ecfisa (Mensaje 462163)
Hola Andres.

Te pongo el ejemplo algo modificado con el agregado de un TListBox y un TEdit.

Lo leído de la página, además de almacenarlo temporalmente en TStrings(donde se busca el ProcessorId), se muestra en un TListBox para mayor claridad. Esta vez hice referencia a una página que tiene logarítmos del 1 al 100. Desde el edit, ingresa cualquier logarítmo que cumpla la condición vg: 1,397940 - 1,531479 - 1,579784 - etc. Y también otros que no lo hagan: 2,079181 - 2,017609 - 2,69897 - etc.

En el segundo caso mostrará el mensaje de error y en el primero permitirá la creación y visualización del form.

Si sigue dándote problemas sería muy útil conocer la dirección de la página contra la que efectuas la lectura y que pusieras algún valor HWID que hayas usado como prueba. De ese modo sería mas fácil hacerte un ejemplo sobre el caso específico.

Saludos. :)

Muchisimas gracias ahora mismo voy a descargar el adjunto y probar a ver que pasa , el Link a donde hago referencia es el siguiente :

http://hdwid.foroargentina.net/h1-hdwid

Esa url es creada por un foro gratuito que me permite crear un Modulo .HTML donde al editar ese modulo asigno ahí los HWID cargados , y de esta manera desde el form que me da mi HWID lo lee y verifica y caso de que este en la página , me permite continuar digamos al Form2 , y en el caso de que no este en la página no me permitiría continuar ahora chequeo todo nuevamente muchisimas gracias.

Cita:

Empezado por Casimiro Notevi (Mensaje 462164)
Nadie tiene ninguna obligación de responder nada, ninguno cobra por perder su tiempo ;)

Disculpame pero en tal caso siendo moderador no me tendrías que dar esa respuesta estuve mirando muchos Threads y posts como para hacerme ideas yo siempre agradezco la colaboración de los users que ayudan a otros pero en este caso vos estarías haciendo Spamm, no es perder tiempo esto , ya que si se logra reparar quedaría un Ejemplo a futuro para una persona que venga con este mismo problema y el caso este resuelto . saludos gracias ...

Más perfecto que esto imposible!!



Pero en este caso , yo necesitaría que sea un ID por maquina , ¿ me explico ? porque yo en el edit.text puedo poner cualquier ID y continua , ahora le voy a agregar la lectura del processorID , para que me arroje el HWID de esta maquina , si lo pongo sobre la casilla de texto y verifico al "chasquear el botón" como esta cargado en la página me va a permitir continuar pero si yo en la "página edito un numero por decirte (178BFBFF00040F33) y le saco 2 Numeros (178BFBFF00040F) ("FALTA 33") me tendría que dar error veamos..

Perfecto ecfisa muchisimas gracias por todo funciona como quería !!

ecfisa 13-06-2013 10:41:02

Hola Andres.

Tengo que discrepar con vos, realmente no puedo imaginar a Casimiro haciendo spam por estos lares... :) El es uno de los que mas trabaja y derrocha su valioso tiempo para el foro.

Es que tu comentario: "... responder lo que las otras personas no pudieron o no quisieron ayudarme!" (aunque con seguridad sin ánimo de molestar a nadie) soslaya que hubo quién no quiso ayudarte. Mirá, llevo años trabajando y compartiendo con los que respondieron en este hilo y puedo asegurarte que no es así.

Si no han podido ayudarte es por que sus actividades personales en este momento no se lo permiten, pero bajo ningún punto de vista por falta de voluntad ¡y mucho menos por falta de conocimientos para hacerlo!

Es más, de haber podído, estoy convencido que cualquiera de ellos te habría dado sugerencias mas eficientes y elegantes que la mía.

Volviendo a tu consulta, de donde provenga el HWID es irrelevante, basta que reemplaces el valor del Edit por el valor que devuelve la función que desarrollo Neftalí. Valor que supongo será diferente para cada equipo.

Saludos. :)

AndresSalazer 13-06-2013 10:46:49

Cita:

Empezado por ecfisa (Mensaje 462169)
Hola Andres.

Tengo que discrepar con vos, realmente no puedo imaginar a Casimiro haciendo spam por estos lares... :) El es uno de los que mas trabaja y derrocha su valioso tiempo para el foro.

Es que tu comentario: "... responder lo que las otras personas no pudieron o no quisieron ayudarme!" (aunque con seguridad sin ánimo de molestar a nadie) soslaya que hubo quién no quiso ayudarte. Mirá, llevo años trabajando y compartiendo con los que respondieron en este hilo y puedo asegurarte que no es así.

Si no han podido ayudarte es por que sus actividades personales en este momento no se lo permiten, pero bajo ningún punto de vista por falta de voluntad ¡y mucho menos por falta de conocimientos para hacerlo!

Es más, de haber podído, estoy convencido que cualquiera de ellos te habrían dado sugerencias mas eficientes y elegantes que la mía.

Volviendo a tu consulta, de donde provenga el HWID es irrelevante, basta que reemplaces el valor del Edit por el valor que devuelve la función que desarrollo Neftalí. Valor que supongo será diferente para cada equipo.

Saludos. :)

Si pero no viene de ahí el tema comprendo que no todos tenemos tiempo para estar sentados en la computadora.

Y que la mayoria esta haciendo la rutina diaria de trabajar y encargarse de otros Proyectos personales .
Que algunos no tienen ese tiempo necesario pero me molesto la forma en que lo dijo al igual que Al Gonzales preguntandome sobre mi vida privada para eliminarme Luego y decirme no puedo chau , más facil hubiese sido no preguntarme nada y no aceptarme y decirme la verdad no te puedo ayudar lee mas guías hubiera bastado con solo eso, a cosas así me refiero nada más!

Yo que recien me inicio con esto y soy medio de Piedra por más que agarre tutoriales no es lo mismo que me enseñan en la UNI hay muchas cosas que no comprendo y si hay un lugar donde se pueden debatir temas para poder aprender y tener el minímo conocimiento o ayuda de otros siempre es bienvenida para poder avanzar y una vez obtenido eso seguir avanzando acorde a lo que uno tiene y poder aprender más y más! ..

Me surgió otra cuestion mi PC reconoce este HWID código unico de procesadorID "178BFBFF00040F33", pero ahora borrando desde el archivo HTML "33" y verificando la conexión da error perfecto , pero si yo pongo otro HWID va a continuar la aplicación como podría hacer para que no continue y solo sea un HWID por maquina ?




Casimiro Notevi 13-06-2013 10:49:27

Cita:

Empezado por AndresSalazer (Mensaje 462165)
Disculpame pero en tal caso siendo moderador no me tendrías que dar esa respuesta estuve mirando muchos Threads y posts como para hacerme ideas yo siempre agradezco la colaboración de los users que ayudan a otros pero en este caso vos estarías haciendo Spamm, no es perder tiempo esto , ya que si se logra reparar quedaría un Ejemplo a futuro para una persona que venga con este mismo problema y el caso este resuelto . saludos gracias ...

Estimado Andrés, deberías mirarte al espejo y analizar tu comportamiento. Comprenderías entonces las cosas que te ocurren con los demás.
Buena suerte en la vida.

AndresSalazer 13-06-2013 10:54:31

Cita:

Empezado por Casimiro Notevi (Mensaje 462171)
Estimado Andrés, deberías mirarte al espejo y analizar tu comportamiento. Comprenderías entonces las cosas que te ocurren con los demás.
Buena suerte en la vida.

Sos un moderador capo , dame una infracción o baneame no pierdas tiempo ambos estamos detrás de un Monitor que vamos a hacer estrellarnos la cabeza con él ? saludos...

No no comprendo el hecho de ayudar a un Usuario que este perdido o no este bien orientado .

La verdad que me es difícil preguntarte tu vida que haces que comes a que te dedicas que edad tenes , de donde sos , con quien vivis , y luego eliminarte .. :rolleyes:

Deberías de fijarte que siendo moderador tratar tus respuestas con otra expectativa estas no ayudan en nada constructivo solo incitan a que te siga contestando lo cual de hecho no seguire haciendo saludos .. Muchisima suerte en tu vida! ^\||/

Casimiro Notevi 13-06-2013 11:01:53

Cita:

Empezado por AndresSalazer (Mensaje 462173)
La verdad que me es difícil preguntarte tu vida que haces que comes a que te dedicas que edad tenes , de donde sos , con quien vivis , y luego eliminarte .. :rolleyes:

Estás confudiendo nombres, no sé de qué hablas :confused:

AndresSalazer 13-06-2013 11:07:37

Cita:

Empezado por Casimiro Notevi (Mensaje 462174)
Estás confudiendo nombres, no sé de qué hablas :confused:

No importa hazme el favor y cierra el thread saludos suerte no entraré más al foro me dedicare a leer guías! ^\||/

Casimiro Notevi 13-06-2013 11:31:05

Cita:

Empezado por AndresSalazer (Mensaje 462175)
No importa hazme el favor y cierra el thread saludos suerte no entraré más al foro me dedicare a leer guías! ^\||/

¿Las guías telefónicas? :D

Ya en serio, Andrés, y que conste que lo que voy a decir no es para criticarte ni reirme ni nada de eso, sino la percepción que transmites es la de ser un "aprovechado", conseguir lo que necesitas aunque para ello tengas que volverte molesto, fastidioso e inoportuno, lo que vulgarmente se conoce como un pelmazo.

Criticas en público a todo el que no ha actuado según tus intereses, aunque esa acción haya sido en modo privado (lo que has hecho con Al González, por ejemplo), y supongo que habrás escrito más mensajes privados a otras personas con el mismo tema, y por eso has confundido antes mi nombre con el de otro al decir no sé que cosas de tu vida.

Por eso te aconsejo, con la mayor humildad posible, que cambies un poco de actitud, los que te conocen en "la vida real" ya lo sabrán, pero en el "mundo virtual" lo dejas bien claro. Todo gira entorno a ti, tú eres lo primero, sólo importan tus problemas y tus necesidades.

Bien, eso es lo que aparentas. Ahora tú decides si quedarte o irte, en ambos casos te deseo lo mejor del mundo para ti y los tuyos :)


La franja horaria es GMT +2. Ahora son las 11:42:26.

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