Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|

07.07.2008, 16:38
|
|
Участник форума
Регистрация: 10.08.2006
Сообщений: 147
Провел на форуме: 404152
Репутация:
94
|
|
Сообщение от Nightmarе
Я конешн понимаю смешно звучит, но опять таки последний символ в пароле режется... я заметил не сразу. Как исправить?
Ну или вариант с TStringList, но как цикл установить по типу memo1.lines.count ???
ss.count не пашет, а других вариантов я не нашёл.
все там нормально пашет...
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
ss:Tstrings;
i:integer;
begin
ss:=TStringList.Create;
ss.LoadFromFile('uins.txt');
ss.NameValueSeparator:=';';
for i:=0 to ss.Count-1 do
begin
ICQClient1.UIN := StrToInt(ss.Names[i]);
ICQClient1.Password := ss.ValueFromIndex[i];
end;
end;
end.
|
|
|

07.07.2008, 22:05
|
|
Познавший АНТИЧАТ
Регистрация: 29.04.2007
Сообщений: 1,189
Провел на форуме: 5749763
Репутация:
1680
|
|
ICQClient1 - а ведь точно угодали что я под него пишу, хотя я про него не упомянал...
В общем я пытаюсь массовую смену паролей организовать для UIN`ов, вот мой код:
Код:
procedure TForm1.FlatButton7Click(Sender: TObject);
var
i,n:dword;
s,s2:string;
begin
uins.Lines.LoadFromFile(FlatEdit5.text);
for i:=0 to uins.Lines.Count-1 do
begin
n := pos(';',uins.Lines.Strings[i]);
If (n > 0) then
begin
masslogin.Clear;
masslogin.text := copy(uins.Lines.Strings[i],1,n-1);
//memo2.Lines.Add(s);
inc(n);
masspass.Clear;
masspass.text := copy(uins.Lines.Strings[i],n,length(uins.Lines.Strings[i]) - n+1);
//memo3.Lines.Add(s);
ICQClient1.ConvertToPlaintext := True; //Convert RTF text to plain (when you don't use TRichEdit)
ICQClient1.ICQServer := 'login.icq.com'; //Default login server
ICQClient1.ICQPort := 5190; //Default login port
ICQClient1.Password := masspass.text; //Set password
ICQClient1.UIN := StrToInt(masslogin.text); //Set UIN
ICQClient1.Login; //Login to server!
end;
end;
uins - это мемо в которое получаем список uin;pass
masslogin - сюда в цикле кидаем логин
masspass - сюда в цикле кидаем пасс
Далее функция авторизирования и смены паролей (ICQClient1.Login):
Код:
procedure TForm1.ICQClient1Login(Sender: TObject);
begin
if ICQClient1.LoggedIn then
begin
ICQClient1.ChangePassword('ну тут нужный пароль который будет') ;
Label1.Caption:='Успешно!!!';
end;
В итоге успешно меняется пасс тока у самого последнего ICQ номера в списке...
Понять не могу где же ошибка...
|
|
|

07.07.2008, 22:21
|
|
Banned
Регистрация: 16.07.2007
Сообщений: 79
Провел на форуме: 801879
Репутация:
337
|
|
Ну так ведь после того как ты распределил, к примеру 10 номеров и пасов, указатели в этих файлах(файл с номерами и файл с паролями) сохраняются на последних записях, т.е. у тебя идет смена пароля только последнего уина...
Можно сделать что-то типа: for i:=10 downto 1, либо закрыть и потом открыть файл, либо seek...
update:
А вообщем, я на твоем месте сделал бы типизированные файлы:
Код:
type NumberUin = record n: integer end;
var f1: file of NumberUin; // файл с номерами уинов
type PassUin = record p: string end;
var f2: file of PassUin; // файл с паролями уинов
С ними было бы по проще, да и представляются они в системе как двотчные...
Последний раз редактировалось Dober'man; 07.07.2008 в 22:29..
|
|
|

07.07.2008, 22:31
|
|
Познавший АНТИЧАТ
Регистрация: 29.04.2007
Сообщений: 1,189
Провел на форуме: 5749763
Репутация:
1680
|
|
ну это 2 текстовых файла один с логинами другой с паролями... несерёзно.
|
|
|

08.07.2008, 01:29
|
|
Познавший АНТИЧАТ
Регистрация: 29.04.2007
Сообщений: 1,189
Провел на форуме: 5749763
Репутация:
1680
|
|
Млин ни так ни эдак не получается, есть какие нить простые варианты?
Может procedure TForm1.ICQClient1Login обработать надо в цикле?
|
|
|

08.07.2008, 02:25
|
|
Banned
Регистрация: 15.12.2005
Сообщений: 95
Провел на форуме: 1509352
Репутация:
132
|
|
Че-то парни вы мудрите
вотъ набросал побыстрому как я вижу работу массового пассченжера:
Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ICQClient, ICQWorks, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Memo1: TMemo;
ICQClient1: TICQClient;
procedure Button1Click(Sender: TObject);
procedure Change;
procedure ICQClient1Login(Sender: TObject);
procedure ICQClient1Error(Sender: TObject; ErrorType: TErrorType;
ErrorMsg: String);
procedure ICQClient1InfoChanged(Sender: TObject; InfoType: TInfoType;
ChangedOk: Boolean);
procedure ICQClient1LogOff(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
source:TStringList;
tmp,uin,pass:string;
implementation
{$R *.dfm}
procedure TForm1.Change;
begin
if source.Count>0 then
begin
tmp:=source.Strings[0];
uin:=copy(tmp,1,pos(';',tmp)-1);
pass:=copy(tmp,pos(';',tmp)+1,length(tmp));
Memo1.Lines.Add(uin+' '+pass);
ICQClient1.Password:=pass;
ICQClient1.UIN:=StrToInt(uin);
ICQClient1.ScreenName:=uin;
ICQClient1.Login;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
source:=TStringList.Create;
source.LoadFromFile('source.txt');
ICQClient1.ConvertToPlaintext:=True;
ICQClient1.ICQServer:='login.icq.com';
ICQClient1.ICQPort:=5190;
Change;
end;
procedure TForm1.ICQClient1Login(Sender: TObject);
begin
Memo1.Lines.Add('con');
ICQClient1.ChangePassword('newpass');
end;
procedure TForm1.ICQClient1Error(Sender: TObject; ErrorType: TErrorType;
ErrorMsg: String);
begin
Memo1.Lines.Add(tmp+' Err: '+ErrorMsg);
ICQClient1.LogOff;
end;
procedure TForm1.ICQClient1InfoChanged(Sender: TObject;
InfoType: TInfoType; ChangedOk: Boolean);
var fil;
begin
assignfile(fil,'changed.txt');
if fileexists('changed.txt') then appendfile(fil)
else rewrite(fil);
writeln(fil,uin+';'+'newpass');
closefile(fil);
source.Delete(0);
Memo1.Lines.Add(tmp+' Changed');
ICQClient1.LogOff;
end;
procedure TForm1.ICQClient1LogOff(Sender: TObject);
begin
Memo1.Lines.Add('dis');
Change;
end;
end.
Последний раз редактировалось qPhoenix; 08.07.2008 в 02:41..
|
|
|

08.07.2008, 03:13
|
|
Познавший АНТИЧАТ
Регистрация: 29.04.2007
Сообщений: 1,189
Провел на форуме: 5749763
Репутация:
1680
|
|
qPhoenix спс.
ICQClient1.ScreenName:=uin; - ругается, типа ScreenName несуществующяя команда.
пришлось удалить.
var fil; - ???
Я поставил текстфайл. протестировал... в MEMO вывелся тока первый номер с паролем и всё... нигде пасс не сменился ;(
|
|
|

08.07.2008, 03:33
|
|
Banned
Регистрация: 15.12.2005
Сообщений: 95
Провел на форуме: 1509352
Репутация:
132
|
|
ScreenName убирай ) видать разные у нас TICQ
ты эвенты onInfoChanged и OnLogoff привязал к компоненту?
на всяк случай - юзал этот TICQ, старый напрочь отказывался работать - кричал "Версия клиента устарела"
|
|
|

08.07.2008, 19:48
|
|
Новичок
Регистрация: 17.04.2008
Сообщений: 3
Провел на форуме: 10831
Репутация:
0
|
|
Ребята, дайте пожалуйста ссылку, откудаможно скачать Delphi послебнюю версию. Заранее благодарен!!!
|
|
|

08.07.2008, 20:57
|
|
Новичок
Регистрация: 02.07.2008
Сообщений: 3
Провел на форуме: 6273
Репутация:
0
|
|
А нафига последняя? Качай 7-мую и будь доволен... По моему эта самая распространенная
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|