Местный
Регистрация: 13.02.2011
Сообщений: 506
Сказал Спасибо: 121
Имеет 100 спасибок в 83 сообщенях
|
Ошибка в плагине.
Решыл я подключить к L2ph Icq
вот скачал сам компонент. http://rghost.ru/35927500
вот сам плагин
Оффтоп
delphi Код:
library ICQplugin;
uses
FastMM4 in 'fastmm\FastMM4.pas',
FastMM4Messages in 'fastmm\FastMM4Messages.pas',
usharedstructs in 'units\usharedstructs.pas',
Windows, Messages, SysUtils, Variants, Classes, Controls,
XPMan, StdCtrls, ICQClient, ExtCtrls, ComCtrls;
var
ps:TPluginStruct;
ICQ: TICQClient;
Procedure SENDICQMESSAGE(text:String);
begin
icq.SendMessage(Моя ася куда спамить,text);
end;
procedure OnLoad; stdcall;
begin
icq:=TICQClient.Create(nil);
icq.ICQPort:=5190;
icq.ICQPortViaHTTP:=80;
icq.ICQServer:='login.icq.com';
icq.ICQServerViaHTTP:='http.proxy.icq.com';
icq.Password:='********';//Пасс
icq.PortRangeFirst:=3000;
icq.PortRangeLast:=50000;
ICQ.UIN:=******;//Ид для авторизации
icq.Login();
end;
procedure OnFree; stdcall;
begin
icq.Disconnect;
icq.Destroy;
end;
function GetPluginInfo(const ver: cardinal): PChar; stdcall;
begin
Result:='ICQ_Plugin'+sLineBreak+
'Procedure SendICQMessage(text:String);';
end;
function SetStruct(const struct: PPluginStruct): Boolean; stdcall;
begin
ps:=struct^;
Result:=True;
end;
Procedure OnRefreshPrecompile; stdcall;
begin
ps.UserFuncs.Add('Procedure SENDICQMESSAGE(text:String)');
end;
function OnCallMethod(const ConnectId, ScriptId: integer;
const MethodName: String; // имя функции в верхнем регистре
var Params, // параметры функции
FuncResult: Variant // результат функции
): Boolean; stdcall; // если вернёт True то дальнейшая
// обработка функции прекратиться
begin
Result := false;
if MethodName='SENDICQMESSAGE' then
begin
SENDICQMESSAGE(params[0]);
Result:=true;
end;
end;
exports
GetPluginInfo,
SetStruct,
OnCallMethod,
OnRefreshPrecompile,
OnLoad,
OnFree;
begin
end.
проблема в том что плагин как бы пытается зайти в асю но невходит в чём тут можеть быть причина подскажыте.
А вот под этим кодом в Delphi 7 норм пашет:
Оффтоп
delphi Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, XPMan, StdCtrls, ICQClient, ExtCtrls, Buttons, ComCtrls;
type
TForm1 = class(TForm)
GroupBox1: TGroupBox;
XPManifest1: TXPManifest;
ICQClient1: TICQClient;
Button3: TButton;
Label6: TLabel;
Memo2: TMemo;
Timer1: TTimer;
Label1: TLabel;
Edit1: TEdit;
StatusBar1: TStatusBar;
procedure FormCreate(Sender: TObject);
procedure ICQClient1Login(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Button3Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure ICQClient1MessageRecv(Sender: TObject; Msg, UIN: String);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
f:TstringList;
MyUIN,MyTarget:Cardinal;
MyPass:String;
implementation
uses Unit2;
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
f:=Tstringlist.Create();
f.LoadFromFile('Options.ini');
MyUIN:=STRTOINT(f.Strings[0]);
MyPass:=f.Strings[1];
MyTarget:=STRTOINT(f.Strings[2]);
timer1.Enabled:=False;
timer1.Interval:=20000;
ICQClient1.UIN:=MyUIN;
ICQClient1.Password:='********';
ICQClient1.ConvertToPlaintext:=true;
ICQClient1.Login();
Timer1.Enabled:=True;
label1.Visible:=false;
button3.Enabled:=false;
edit1.Enabled:=false;
memo2.Enabled:=false;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
ICQClient1.Disconnect;
label1.Color:=clred;
label1.Caption:='Offline';
f.Free;
end;
procedure TForm1.ICQClient1Login(Sender: TObject);
begin
if ICQClient1.LoggedIn then
begin
Timer1.Enabled:=False;
label1.Visible:=True;
label1.Color:=cllime;
label1.Caption:='Online';
button3.Enabled:=True;
edit1.Enabled:=True;
memo2.Enabled:=True;
statusbar1.Panels.Items[0].Text:='Logined.OK..['+IntToStr(ICQClient1.UIN)+']';
end;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
If not ICQClient1.LoggedIn then
begin
label1.Visible:=True;
Timer1.Enabled:=False;
label1.Color:=clRed;
label1.Caption:='Offline';
end;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
icqclient1.SendMessage(MyTarget, ''+ edit1.Text+'' );
memo2.Lines.Add(IntToSTR(ICQClient1.UIN)+' :'+edit1.text);
edit1.Clear;
end;
procedure TForm1.ICQClient1MessageRecv(Sender: TObject; Msg, UIN: String);
var
icq: cardinal;
begin
icq := StrToInt(UIN);
Memo2.Lines.Add(UIN + ' :' + Msg);
end;
end.
__________________
---------------------------__--------__-----
---____- ___--____--- ___/'- /__ ___-(__)-____
--/-___-/-__-\/-__--\ /-__--'/--|-/--//---//--__--\
-/-/_/ -/-/_/--/-/_/--/-/_/--/|--|/--'//---//--/-/--/
-\___-/\____/\____/\____/-|____//__'//_'/-/__/
/_-__/
Последний раз редактировалось goodvin1709, 16.01.2012 в 01:22.
|