unit Visualizar; interface uses Windows, Messages, SysUtils, Variants, Classes, Controls, Forms, Menus, StrUtils, IniFiles, IdCookieManager, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdHTTP, pngimage, SHDocVw, AppEvnts, OleCtrls,MSHTML, ActiveX, ScktComp, StdCtrls; type TVisualizador = class(TForm) PopupMenu2: TPopupMenu; Copy1: TMenuItem; SelectAll1: TMenuItem; MainMenu1: TMainMenu; Sair1: TMenuItem; IdHTTP1: TIdHTTP; IdCookieManager1: TIdCookieManager; WebBrowser1: TWebBrowser; procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure FormShow(Sender: TObject); procedure WebBrowser1StatusTextChange(Sender: TObject; const Text: WideString); procedure Button2Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure Copy1Click(Sender: TObject); procedure SelectAll1Click(Sender: TObject); procedure PopupMenu2Popup(Sender: TObject); procedure WebBrowser1BeforeNavigate2(ASender: TObject; const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData, Headers: OleVariant; var Cancel: WordBool); private var Ini:TIniFile; procedure InitHtml(AWebBrower: TWebBrowser); procedure ShowHtml(content: string); { Private declarations } public { Public declarations } end; var Visualizador: TVisualizador; HTML_Head : TStringList; implementation uses Codhtml; {$R *.dfm} function Buscar(html,Inicio,fim: string): string; var i,f: integer; S: String; begin S := LowerCase(html); Inicio:=LowerCase(Inicio); Fim:=LowerCase(Fim); i:=Pos(Inicio,S)+Length(Inicio); f:=PosEx(fim,S, i); result:=trim(Copy(html,i,f-i)); end; procedure TVisualizador.InitHtml(AWebBrower: TWebBrowser); var URL: OleVariant; begin URL := 'about:blank'; AWebBrower.Navigate2(URL); end; procedure TVisualizador.ShowHtml(content: string); var v: Variant; HTMLDocument: IHTMLDocument2; begin v := VarArrayCreate([0, 0], varVariant); v[0] := content; HTMLDocument := WebBrowser1.Document as IHTMLDocument2; HTMLDocument.write(PSafeArray(TVarData(v).VArray)); HTMLDocument.close; HTMLDocument := nil; end; procedure TVisualizador.WebBrowser1BeforeNavigate2(ASender: TObject; const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData, Headers: OleVariant; var Cancel: WordBool); const hUrl = 'about:blank'; begin if string(URL) = hUrl + 'Close' then begin Close; end; if string(URL) = hUrl + 'Home' then begin ShowHtml(HTML_Head.Text); Cancel := True; //don't change page Exit; end; if string(URL) = hUrl + 'Help' then begin ShowHtml(HTML_Head.Text); Cancel := True; Exit; end; end; procedure TVisualizador.WebBrowser1StatusTextChange(Sender: TObject; const Text: WideString); begin Caption := Text; end; procedure TVisualizador.Button2Click(Sender: TObject); begin Close; end; procedure TVisualizador.FormClose(Sender: TObject; var Action: TCloseAction); begin idhttp1.Disconnect; end; procedure TVisualizador.FormCreate(Sender: TObject); var Params:TstringStream; html:string; begin Ini := TIniFile.Create(extractfilepath(paramstr(0)) + 'config.ini'); Params := TStringStream.create(''); Params.WriteString('st=0'); Params.WriteString('&act=Post'); Params.WriteString('&f=174'); Params.WriteString('&auth_key='+ini.ReadString('Informacoes', 'Info4', '')); Params.WriteString('&removeattachid=0'); Params.WriteString('&MAX_FILE_SIZE=5120000'); Params.WriteString('&CODE=01'); Params.WriteString('&TopicTitle='+Geradorhtml.titulopost.Lines.text); Params.WriteString('&TopicDesc='+Geradorhtml.descpost.Lines.text); Params.WriteString('&poll_question='); Params.WriteString('&ed-0_wysiwyg_used=0'); Params.WriteString('&editor_ids[]=ed-0'); Params.WriteString('&Post='+Geradorhtml.codigohtml.Lines.text); Params.WriteString('&post_htmlstatus=0'); Params.WriteString('&enableemo=yes'); Params.WriteString('&enablesig=yes'); Params.WriteString('&iconid=0'); Params.WriteString('&preview=Visualizar post'); with idhttp1 do begin Request.ContentType := 'application/x-www-form-urlencoded'; Request.Referer := 'http://www.brazukas.org/index.php?act=post'; CookieManager.Create(nil); CookieManager.AddCookie('rte-sidepanel=open', 'www.brazukas.org'); CookieManager.AddCookie('ipb_stronghold='+ini.ReadString('Informacoes', 'Info1', ''), 'www.brazukas.org'); CookieManager.AddCookie('pass_hash='+ini.ReadString('Informacoes', 'Info2', ''), 'www.brazukas.org'); CookieManager.AddCookie('member_id='+ini.ReadString('Informacoes', 'Info3', ''), 'www.brazukas.org'); try Response.KeepAlive := False; HTML := Post('http://www.brazukas.org/index.php?act=post', Params); html := Buscar(html, '
', '
' ); Add('' ); Add('Gerador de Post - Brazukas.org' ); Add('' ); Add('' ); Add(html); end; ShowHtml(HTML_Head.text); end; Idhttp1.CookieManager.Free; params.Free; Ini.free; end; procedure TVisualizador.FormShow(Sender: TObject); var Params:TstringStream; html:string; begin Ini := TIniFile.Create(extractfilepath(paramstr(0)) + 'config.ini'); Params := TStringStream.create(''); Html_Head := TStringLIst.Create; Params.WriteString('st=0'); Params.WriteString('&act=Post'); Params.WriteString('&f=174'); Params.WriteString('&auth_key='+ini.ReadString('Informacoes', 'Info4', '')); Params.WriteString('&removeattachid=0'); Params.WriteString('&MAX_FILE_SIZE=5120000'); Params.WriteString('&CODE=01'); Params.WriteString('&TopicTitle='+Geradorhtml.titulopost.Lines.text); Params.WriteString('&TopicDesc='+Geradorhtml.descpost.Lines.text); Params.WriteString('&poll_question='); Params.WriteString('&ed-0_wysiwyg_used=0'); Params.WriteString('&editor_ids[]=ed-0'); Params.WriteString('&Post='+Geradorhtml.codigohtml.Lines.text); Params.WriteString('&post_htmlstatus=0'); Params.WriteString('&enableemo=yes'); Params.WriteString('&enablesig=yes'); Params.WriteString('&iconid=0'); Params.WriteString('&preview=Visualizar post'); with idhttp1 do begin Request.ContentType := 'application/x-www-form-urlencoded'; Request.Referer := 'http://www.brazukas.org/index.php?act=post'; CookieManager.Create(nil); CookieManager.AddCookie('rte-sidepanel=open', 'www.brazukas.org'); CookieManager.AddCookie('ipb_stronghold='+ini.ReadString('Informacoes', 'Info1', ''), 'www.brazukas.org'); CookieManager.AddCookie('pass_hash='+ini.ReadString('Informacoes', 'Info2', ''), 'www.brazukas.org'); CookieManager.AddCookie('member_id='+ini.ReadString('Informacoes', 'Info3', ''), 'www.brazukas.org'); try Response.KeepAlive := False; HTML := Post('http://www.brazukas.org/index.php?act=post', Params); html := Buscar(html, '
', '
' ); Add('' ); Add('Gerador de Post - Brazukas.org' ); Add('' ); Add('' ); Add(html); Add('' ); Add('' ); Add('' ); end; ShowHtml(HTML_Head.Text); end; procedure TVisualizador.Copy1Click(Sender: TObject); begin //Copy try WebBrowser1.ExecWB(OLECMDID_COPY, OLECMDEXECOPT_PROMPTUSER); except end; end; procedure TVisualizador.SelectAll1Click(Sender: TObject); begin //Select All try WebBrowser1.ExecWB(OLECMDID_SELECTALL, OLECMDEXECOPT_PROMPTUSER); except end; end; procedure TVisualizador.PopupMenu2Popup(Sender: TObject); begin if WebBrowser1.OleObject.Document.queryCommandEnabled('Copy') then Copy1.Enabled := True else Copy1.Enabled := False; end; initialization OleInitialize(nil); finalization OleUninitialize; end.