![]() |
Firefox html code auslesen und setzen
Nabend...
also der Titel ist ja schon aussagekräftig genug...^^ Es geht darum aus der aktuellen Firefox instanz den html Quelltext setzen und lesen zu können... Das ganze hat den grund, weil man sich zu meinem Internetcafé Programm ein kleiner Seitenfilter drin ist. Für den Internetexplorer hab ich schon was erstellt, aber da ja Firefox kein ActiveX unterstützt ist der code für den IE quasi für die Tonne. Also in meinem Fall geht es um Firefox 2.* ganz stinknormal ohne addons und weiteren schnickschnack.... Habe es zwar schon mit fenstermessages versucht, funzt aber net so ganz. Und bitte keine Vorschläge machen, bau doch einen Proxy... Das ist nämlich leichter gesagt als geschrieben... Meine Proxy´s haben irgendwie immer das Problem, dass sie nicht transparent sind , streams (chats) nicht durchlassen und die youtube u. andere flashviedeos nicht mitgezogen werden... Andere externe Proxys sollen auch nicht eingesetzt werden, da die Kunden den Badwordfilter durch gültiger eingabe der Personalausweisnummer deaktivieren können müssten.. (find ich zwar hol, aber man wills so) und so wäre es das einfachste, wenn ich den code hole => auf badwords überprüfe => evtl. den "Sperre-Info-Code" an fifo zurücksenden. Hat jemand eine Idee sowas zu realsieren, oder nen code? MFG [EDIT] Eine idee hatte ich ja noch... die aktuelle Url aus dem dde dienst holen und dann per idHttp den html text holen..., aber wie leere ich dann das firefox fenster und schreib ein Badword hinweis hinein?? [/EDIT] |
Re: Firefox html code auslesen und setzen
*push*
hat keiner ne idee wie ich sowas realiesieren kann? |
Re: Firefox html code auslesen und setzen
Also, ich mach das so:
(Quelltext aus Firefox in ein SynEdit übernehmen)
Delphi-Quellcode:
Ich hoffe, ich konnte Dir ein wenig helfen.
function GetActiveBrowsersURL(Service: string): string;
var ClDDE: TDDEClientConv; zwi: PChar; begin ClDDE := TDDEClientConv.Create(nil); with ClDDE do begin SetLink(Service, 'WWW_GetWindowInfo'); zwi := RequestData('0xFFFFFFFF'); CloseLink; end; Result := StrPas(zwi); StrDispose(zwi); ClDDE.Free; end; Function GetHTML(AUrl: string): string; var databuffer : array[0..4095] of char; ResStr : string; hSession, hfile: hInternet; dwindex,dwcodelen,dwread,dwNumber: cardinal; dwcode : array[1..20] of char; res : pchar; Str : pchar; begin ResStr:=''; Result:=''; if pos('http://',lowercase(AUrl))=0 then AUrl:='http://'+AUrl; hSession:=InternetOpen('InetURL:/1.0', INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0); If assigned(hSession) Then Try hfile:=InternetOpenUrl( hsession, pchar(AUrl), nil, 0, INTERNET_FLAG_RELOAD, 0); if assigned(hfile) then Try dwIndex := 0; dwCodeLen := 10; HttpQueryInfo(hfile, HTTP_QUERY_STATUS_CODE, @dwcode, dwcodeLen, dwIndex); res := pchar(@dwcode); dwNumber := sizeof(databuffer)-1; if (res ='200') or (res ='302') then begin while (InternetReadfile(hfile,@databuffer,dwNumber,DwRead)) AND (dwRead <>0) do begin databuffer[dwread]:=#0; Str := pchar(@databuffer); resStr := resStr + Str; Application.ProcessMessages; end; end else ResStr := 'Status:'+res; Finally InternetCloseHandle(hfile); End; Finally InternetCloseHandle(hsession); End; Result := ResStr; end; procedure TFrameForm.FirefoxQuelltextbernehmen1Click(Sender: TObject); var s: string; i: integer; begin try Server := True; Url := GetActiveBrowsersURL('firefox'); if url = '' then exit; Delete(Url,1,1); i := Pos('"', Url); Delete(Url,i,Length(Url)-(i-1)); //ShowMessage(Url); FrameForm.New1Click(Sender); with ActiveMDIChild as TEditForm do begin SynEdit1.ClearAll; synEdit1.Lines.Add('****************************************'); SynEdit1.Lines.Add(Url); SynEdit1.Lines.Add('****************************************'); SynEdit1.Text := GetHTML(Url); SynEdit1.Text := StringReplace(SynEdit1.Text, '', #13#10, [rfReplaceAll]); Viewer.LoadStrings(SynEdit1.Lines, ''); SynEdit1.Modified := True; end; except ShowMessage('Fehler bei Übernahme des Quelltextes!'); end; end; |
Re: Firefox html code auslesen und setzen
Danke super^^
jetzt fehlt iurgendiwe noch was, womit ich den html code setzten kann^^ ich kann ja vorerst ja so machen, dass wenn ein badword aufgerufen wird, der browser geschlossen wird und eine nachricht per application.messagebox rauskommt^^ |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:15 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz