1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170
|
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,
IdHTTP, ExtCtrls, StrUtils;
type
TForm1 = class(TForm)
IdHTTP1: TIdHTTP;
Button1: TButton;
Timer1: TTimer;
procedure Timer1Timer(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Déclarations privées }
public
{ Déclarations publiques }
end;
var
Form1: TForm1;
NetPath : string;
implementation
{$R *.dfm}
//************************************
//Fonction pour telecharger un fichier
//++Ne pas oublier de modifier le message d'erreur en requete PHP
//************************************
procedure DownloadHTTP(const AUrl : string; out DestStream: TStream; const APort : integer = 80);
begin
with TIdHTTP.Create(Application) do
try
//Port := APort;
try
Get(AUrl,DestStream);
except
On e : Exception do
MessageDlg(Format('Erreur : %s',[e.Message]), mtInformation, [mbOK], 0);
end;
finally
Free;
end;
end;
//***************************************
//Fonction pour lire un fichier
//***************************************
function LireFichier(const chemin : string): string;
var contenu : string;
F : TextFile ;
begin
AssignFile(F,chemin);
Reset(F);
read(F,contenu);
CloseFile(F);
Result:=contenu
end;
//*************************************************************
//Fonction Trouve la Requete du Server
//++Attention : Ne pas oublier de regler le fichier de stockage!Et l'adresse internet de source
//**************************************************************
function GetRequest:string;
var
FS : TFileStream;
StockRequest : string ;
SourceRequest : string;
begin
NetPath := 'http://site.com/dossier/';
StockRequest := 'C:\test';
SourceRequest := NetPath+'requete.txt';
try
Fs := TFileStream.Create(StockRequest,fmCreate,fmShareDenyNone);
try
DownloadHTTP(SourceRequest,TStream(fs));
finally
FS.free;
Result := LireFichier(StockRequest);
//Libaration de la memoire
StockRequest := '';
SourceRequest := '';
end;
except
ShowMessage('erreur de création stream');
end;
end;
//temporaire : Activation de la recuperation
procedure TForm1.Button1Click(Sender: TObject);
begin
Timer1.Enabled := true
end;
//************************************************************************
//
//Definition des Fonction de toute les actions possibles!
//
//************************************************************************
//Vide pour l'instant
//************************************************************************
//
//Fin de la Definition des Fonction de toute les actions possibles!
//
//************************************************************************
procedure TForm1.Timer1Timer(Sender: TObject);
var
requete : string;
begin
//Definition du repertoire Net de travail
NetPath := 'http://site.com/dossier/';
//Recupere la requete
requete := GetRequest;
//***************************************************************************
//
// INSTRUCTION A EFFECTUER CELON LA REQUETE
//
//***************************************************************************
case AnsiIndexStr(requete, ['sleep', 'wakeup', 'rien']) of
0 : // Str = 'Chaîne1'
begin
//Timer1.Interval := 2000;
IdHttp1.Get(NetPath+'reponse.php?reponse=En_Hibernation2',nil);
end;
1 : // Str = 'Chaîne2'
begin
// Timer1.Interval := 1000;
IdHttp1.Get(NetPath+'reponse.php?reponse=Serveur_Actif',nil);
end;
2 : // Str = 'Chaîne3' - Action a programmer ulterireurement
begin
end;
-1 : // Str ne vaut aucune de ces trois chaînes
begin
IdHttp1.Get(NetPath+'reponse.php?reponse=Requete_Inconnue',nil);
end;
end;
//***************************************************************************
//
// FIN DES INSTRUCTION A EFFECTUER
//
//***************************************************************************
//Libere la memoire
requete := '';
free;
end;
end. |
Partager