Jeg lavede engang noget lignende, ud fra en kode jeg fandt her på siden...
min unitkode ser sådan her ud:
(Indsæt følgende objekter på en form først:
TButton TClientSocket TLabel TEdit TLabel)
(Dobbeltklik på elementerne så fælgende procedure bliver oprettet
procedure Button1Click(Sender: TObject);
procedure ClientSocket1Error(Sender: TObject; Socket: TCustomWinSocket;
ErrorEvent: TErrorEvent; var ErrorCode: Integer);
procedure ClientSocket1Disconnect(Sender: TObject;
Socket: TCustomWinSocket);
procedure ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket);
procedure ClientSocket1Write(Sender: TObject;
Socket: TCustomWinSocket);
)
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ScktComp;
type
TForm1 = class(TForm)
Button1: TButton;
ClientSocket1: TClientSocket;
Label1: TLabel;
Edit1: TEdit;
Label2: TLabel;
procedure Button1Click(Sender: TObject);
procedure ClientSocket1Error(Sender: TObject; Socket: TCustomWinSocket;
ErrorEvent: TErrorEvent; var ErrorCode: Integer);
procedure ClientSocket1Disconnect(Sender: TObject;
Socket: TCustomWinSocket);
procedure ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket);
procedure ClientSocket1Write(Sender: TObject;
Socket: TCustomWinSocket);
procedure PostTheForm;
private
{ Private declarations }
HTTP_POST : String;
FContent : String;
FResult : String;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
Const
WebServer = '
www.msnemoticons.nl'; WebPort = 80;
PostAddr = '/webmasters/blockchecker/';
HTTP_Data =
'Content-Type: application/x-www-form-urlencoded'#10+
'User-Agent: Delphi ()'#10+
'Host:
www.msnemoticons.nl'#10+ 'Connection: Keep-Alive'#10;
function HTTPTran(St : String) : String;
var i : Integer;
begin
Result:='';
for i:=1 to length(St) do
if St[i] in ['a'..'z','A'..'Z','0','1'..'9'] then
Result:=Result+St[i]
else if St[i]=' ' then
Result:=Result+'+'
else
Result:=Result+'%'+IntToHex(Byte(St[i]),2);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Label1.caption := '';
PostTheForm;
end;
procedure TForm1.ClientSocket1Error(Sender: TObject;
Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
var ErrorCode: Integer);
begin
ErrorCode := 0;
end;
procedure TForm1.ClientSocket1Disconnect(Sender: TObject;
Socket: TCustomWinSocket);
var
i: Integer;
begin
// DET ER HER DU SKAL LAVE DIN STRING BEHANLING, FRESULT INDEHOLDER HTMLKODEN.
// DENNE KODE BRUGER EN MSN BLOCKTJEKKER PÅ NETTET, TIL AT TJEKKE OM BRUGER ER ONLINE
i := pos('<img src="', FResult);
FResult := copy(FResult, i, length(FResult));
i := pos('>', FResult);
FResult := copy(FResult, 0, i);
if pos('offline', FResult) > 0 then
Label1.caption := 'Brugeren er offline'
else
Label1.caption := 'Brugeren er online'
end;
procedure TForm1.ClientSocket1Read(Sender: TObject;
Socket: TCustomWinSocket);
begin
FResult:=FResult+Socket.ReceiveText;
end;
procedure TForm1.ClientSocket1Write(Sender: TObject;
Socket: TCustomWinSocket);
begin
Socket.SendText(HTTP_POST+FContent);
end;
procedure TForm1.PostTheForm;
begin
FResult:='';
FContent:=
'back=' + HTTPTran('nee') + '&' +
'submitBlock=' + HTTPTran('Check') + '&' +
'email=' + HTTPTran(edit1.text) + '&'+
'B1=Submit'+#10;
FContent := 'Content-Length: '+IntToStr(Length(FContent))+#10+#10+FContent;
ClientSocket1.Host := WebServer;
ClientSocket1.Port := WebPort;
HTTP_POST := 'POST '+PostAddr+' HTTP/1.0'#10;
HTTP_Post := HTTP_Post + HTTP_Data;
ClientSocket1.Open;
end;
end.