|
Сегодня участвовал в районной олимпиаде по программирования. Если хотите могу выложить задания. пишу прогу для работы с сайтом вконтакте, но у меня никак не проходит авторизация... вот мой код: [code delphi] procedure TForm1.Button1Click(Sender: TObject); var param,response:tstringlist; i:integer; begin param := TStringList.Create; response := TStringList.Create; param.Add('email='+edit1.Text); param.Add('pass='+edit2.Text); http1.Host:='http://login.vk.com'; http1.Request.URL:='http://login.vk.com'; response.Text := http1.Post('http://login.vk.com/?act=login', param); ////////////////////////////////////////////////////////////////////////////// if Pos('value=',response.Text)>0 then begin param.Clear; response.Text := Stringreplace(response.Text,'''',#13,[rfreplaceall,rfignorecase]); Memo1.Lines := response; for i := 0 to response.Count-1 do begin response[i]:=trim(response[i]); if response[i]='value=' then begin param.Add('s='+response[i+1]); end; end; //--- response.Text := http1.Post('http://vkontakte.ru/login.php?op=slogin&redirect=1', param); param.Free; end; Memo1.Lines := response; if Pos('<b>Online</b>',response.Text)>0 then showmessage('Заработало!'); if Pos('/login.php',response.Text)>0 then showmessage('Не удалось войти'); end; [/code] Сначала меня выбрасывало на страницу редиректа, потом я у компонента idHTTP свойство HandleRedirect выставил в True и меня стало выбрасывать на страницу ввода пароля с надписью "Чтобы просматривать эту страницу вам необходимо ввести пароль" Кто-нибудь может помочь? Я в совершенстве знаю треть турбо паскаля, и чуть чуть програмирую на бэйсике. Хочу научиться кодить на фортране! я самый хреновый програмист! Всем привет. Хочу освоить какой-либо язык программирования. Как ни странно, выбор пал на Delphi. Можете рассказать о возможностях Делфи, перспективах самого языка, написанных на нем продуктов, перспективы будущей работы (к примеру программером Делфи). Спасибо за понимание и ответы. допустим дана некая функция: function xxx(const S : PChar; var P1, P2 : PChar) : Boolean; ну или любая другая, которая имеет var-параметр. Стоит ли использовать такие функции? и если да, то с любыми типами данных или существуют ограничения? http://nnm.ru/blogs/sheeeezo/embarcadero_rad_studio_... Здесь версия архитект на 1 год. Пока кряка нет но думаю пока хватит и года. Эта часть кода где происходит ошибка. ------------------------------------------ with StartUpInfo do begin cb := SizeOf(TStartUpInfo); dwFlags:= STARTF_USESHOWWINDOW; wShowWindow := SW_HIDE; end; //запустить процесс CreateProcess('C:\name.exe', nil, nil, nil, false, HIGH_PRIORITY_CLASS, nil, nil, StartUpInfo, ProcessInfo);//запустить процесс with ProcessInfo do begin WaitForInputIdle(hProcess, INFINITE); // ждем завершения инициализации SetPrivilege('SeTakeOwnershipPrivilege', hProcess );//выдать права CloseHandle(hThread); // закрываем дескриптор процесса CloseHandle(hProcess); // закрываем дескриптор потока end; ---------------------------------------------- Эта функция выдаёт права ---------------------------------------------- Function SetPrivilege(aPrivilegeName: String; Hlink: THandle): Boolean; Var TPPrev, TP: TTokenPrivileges; Token: THandle; dwRetLen: DWord; aEnabled: Boolean; Begin Result:=False; aEnabled:=True;//включить привилегию OpenProcessToken(Hlink, TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, Token ); TP.PrivilegeCount:=1; IF (LookupPrivilegeValue(nil,PChar(aPrivilegeName),TP.Privileges[0].LUID )) then Begin IF aEnabled then TP.Privileges[0].Attributes:=SE_PRIVILEGE_ENABLED else TP.Privileges[0].Attributes:=0; dwRetLen:= 0; Result:=AdjustTokenPrivileges(Token,False,TP,SizeOf(TPPrev),TPPrev,dwRetLen); End; CloseHandle(Token); // End; ---------------------------------------------- Попытки поочерёдно камментить строки, гда появляется исключение приводит к абсурду, исключение появляется строкой выше и так далее... Подскажите, плз, что может быть не так, я уже весь день промаялся. |

