Seite 2 von 2

Verfasst: 14.10.2004 16:44
von bossi
stbi hat geschrieben: Wie ich bereits sagte, das Webgadget kennt die URL und die gerenderte Seite, aber nicht den HTML-Quellcode! D.h. der HTML-Quellcode steht somit nicht im Speicher.
Noch ne Alternative: lass einen http-proxy-Thread mitlaufen, über den sich das Webgadget versorgt und der die Dateien mitschneidet.

Das mit dem Paidmailer (wassollndassein?) und der Zeit im Frame und dem nächsten Seitenaufruf hab ich leider nicht kapiert.
also, ich bekomme von ein AMI-paidmailer 10 mails an tag in der 2-3 links die ich für ein paar cent besuchen soll.
diese seite muss eine bestimmte zeit geöffnet sein
frame1 der seite : ein javascript das nach der bestimmten zeit ne meldung zum server macht (seite besucht, auf konto gutschreiben) :roll:
frame2 der seite : die eigendliche seite die bewundert werden soll :lol:

mein programm durchsucht die mails nach paidlinks und fügt diese in eine liste ein.
die liste wird nun link für link abgearbeitet und dafür brauche ich die aufenthaltszeit.
die aufenthaltszeit steht in frame1, deshalb brauche ich von frame1 den quellcode oder textinhalt.
habe ich die aufenthaltszeit, weis das programm wann der nächste link am dransten ist.

Verfasst: 14.10.2004 17:16
von stbi
uff, auch ne Art, sein Geld zu verdienen ... :lol:

ok, habs kapiert.

Der HTML-Code für den Javascript-Frame nützt Dir nix, Du musst ja wissen, wann der Counter tatsächlich heruntergezählt hat, d.h. Du musst wirklich den Text aus dem WebGadget auslesen. Da gab es mal einen Thread im alten Forum (Pureboard-Archiv), wie man Text aus Fenstern ausliest, das geht, wenn man den Fenstertitel kennt relativ einfach, soweit ich das noch in Erinnerung habe. In den Thread ging es konkret darum, den Inhalt des PB-Debugger-Fensters in eine Datei zu speichern, vielleicht hilft das beim suchen. Wahrscheinlich hat das auch seinen Weg ins Codearchiv gefunden.
Im Codearchiv ist auch noch ein Beispiel drin, wie man den Inhalt des Webgadgets in die Zwischenablage kopiert, das könnte doch auch funktionieren, schau mal unter Gadgets/Webgadget.

Viel Erfolg!

Verfasst: 14.10.2004 17:23
von stbi
jetzt hab ich mir heute schon die Finger wundgetippt, jetzt musste ich es doch auch mal ausprobieren :D

so gehts mit der Zwischenablage:

Code: Alles auswählen

; English forum: http://purebasic.myforums.net/viewtopic.php?t=7337
; Author: Freak
; Date: 26. August 2003

; modified for PB3.80 by Freak on 07th September 2003

Enumeration 1 
  #OLECMDID_OPEN          
  #OLECMDID_NEW        
  #OLECMDID_SAVE          
  #OLECMDID_SAVEAS            
  #OLECMDID_SAVECOPYAS    
  #OLECMDID_PRINT        
  #OLECMDID_PRINTPREVIEW        
  #OLECMDID_PAGESETUP        
  #OLECMDID_SPELL            
  #OLECMDID_PROPERTIES  
  #OLECMDID_CUT          
  #OLECMDID_COPY        
  #OLECMDID_PASTE            
  #OLECMDID_PASTESPECIAL    
  #OLECMDID_UNDO            
  #OLECMDID_REDO          
  #OLECMDID_SELECTALL        
  #OLECMDID_CLEARSELECTION 
  #OLECMDID_ZOOM            
  #OLECMDID_GETZOOMRANGE      
  #OLECMDID_UPDATECOMMANDS  
  #OLECMDID_REFRESH            
  #OLECMDID_STOP              
  #OLECMDID_HIDETOOLBARS      
  #OLECMDID_SETPROGRESSMAX    
  #OLECMDID_SETPROGRESSPOS  
  #OLECMDID_SETPROGRESSTEXT    
  #OLECMDID_SETTITLE          
  #OLECMDID_SETDOWNLOADSTATE  
  #OLECMDID_STOPDOWNLOAD      
EndEnumeration 

Enumeration 0 
  #OLECMDEXECOPT_DODEFAULT      
  #OLECMDEXECOPT_PROMPTUSER        
  #OLECMDEXECOPT_DONTPROMPTUSER    
  #OLECMDEXECOPT_SHOWHELP        
EndEnumeration 

; ----------------------------------------------------- 

; Now the code 

#WebGadget = 1 
#Button = 2 

OpenWindow(0, 0, 0, 800, 600, #PB_Window_Screencentered|#PB_Window_SystemMenu, "WebBrowser") 
CreateGadgetList(WindowID()) 

WebGadget(#WebGadget, 10, 40, 780, 550, "www.purebasic.com") 
ButtonGadget(#Button, 10, 10, 60, 20, "Copy") 

; Fred the genius stored the Interface pointer to IWebBrowser2 in the DATA 
; member of the windowstructure of the WebGadget containerwindow, so we can get 
; that easily: 
WebObject.IWebBrowser2 = GetWindowLong_(GadgetID(#WebGadget), #GWL_USERDATA) 

Repeat 
  Event = WaitWindowEvent() 
  If Event = #PB_EventGadget And EventGadgetID() = #Button 
    
    ; Now here's the actual copy thing, not that complicated... 
    WebObject\ExecWB(#OLECMDID_SELECTALL, #OLECMDEXECOPT_DONTPROMPTUSER, 0, 0) 
    WebObject\ExecWB(#OLECMDID_COPY, #OLECMDEXECOPT_DONTPROMPTUSER, 0, 0) 
    
    ; little test: 
    MessageRequester("", GetClipboardText(), 0) 
    
  EndIf 
Until Event = #PB_EventCLoseWindow 

End
; ExecutableFormat=Windows
; FirstLine=1
; EnableXP
; EOF
Die Zeile mit dem _SelectAll habe ich ergänzt, damit der gesamte Inhalt des Webgagdets markiert ist.

Verfasst: 14.10.2004 17:44
von bossi
hi stbi,
das funz schon was du da machst, aber nicht bei frames :cry:
versuch dein code mal mit : http://de.selfhtml.org/html/frames/anzeige/frames.htm
dann ist die ablage leer und alter bestand :(

Verfasst: 15.10.2004 11:31
von stbi
ich sehe nur zwei Möglichkeiten:
1. beide Frames in unterschiedliche Webgadgets laden, dann kannst Du den Frame mit dem Javascript-Counter auslesen
2. die Aktivierung des gewünschten Frames erzwingen. Im IE springt man mit Strg-Tab zwischen den Frames bzw. mit einem Mausklick. Ersteres funktioniert im WegGadget aber nicht. Möglicherweise gibt es auch einen Befehl analog zum Selektieren und Kopieren in die Zwischenablage, da bin ich mit meinem Latein aber völlig am Ende.

Verfasst: 21.04.2006 20:04
von Mereep
srry, dass ich den alten Thread nach oben hole, aber ich brauche eine Möglichkeit den Text aus einem Frame zu kopieren, ohne Benutzerzutun.
Das mit dem automatischen markieren und kopieren klappt soweit prima, aber nur für das erste Frame.
Allerdings darf ich keine direkten Requests an den Server stellen(Wir wollen ja mal die Regeln beachten) deshalb auch erst der Umweg übers Webgadget.
Wie kann ich das anstellen, dass der mir den richtigen Frame ins Clipboard pushed? PlZ Help ;-)

MfG Mereep

Verfasst: 22.04.2006 12:15
von Eric
Im englischen Forum gab es dazu einen Thread:
http://www.purebasic.fr/english/viewtopic.php?t=16837

Und speziell diesen Post:
http://www.purebasic.fr/english/viewtop ... 506#103506