Forum | | | | Frank Tretter | be new here and this is my first question. I wanted to me yourself a small Browser basteln and I already plenty in the network for found. my Program using IWebBrowser2.ph. the demonstration the as example thereby was runs too well. now would like I but the Menu strain and the command How Mark, copy insert.
unfortunately can the begot Browserfenster neither The Tastenkompination STRG+A To. hope it can someone help and show How to the Menu extended. with the command AppendMenuBar komm I clear, but not the Procedure CallMethod The in the demonstration using we.
here the demonstration CompileMarkSeparation $H c:XProfan 8.0INCLUDEWindows.ph
$H c:XProfan 8.0INCLUDEIWebBrowser2.ph
Declare a$, a&, a#, b#, Error&, ATLdll&, WebControl&, IUnknown&, IWebBrowser&
Dim a#,1024
Dim b#,256
Def CLSIDFromString(2) !ole32,CLSIDFromString
Def AtlAxWinInit(0) !atl.dll,AtlAxWinInit
Def AtlAxGetControl(2) !atl.dll,AtlAxGetControl
Proc CallMethod-----------------------------------------------Interface-Methoden aufrufen
Parameters IFace&,Method&
Declare VTable&
VTable&=long(IFace&,0)
Method&=long(VTable&,Method&*4)
case %pcount=2:return call( Method&,IFace& )
case %pcount=3:return call( Method&,IFace&,&(3) )
case %pcount=4:return call( Method&,IFace&,&(3),$(4) )
case %pcount=5:return call( Method&,IFace&,&(3),&(4),&(5) )
case %pcount=6:return call( Method&,IFace&,&(3),&(4),&(5),&(6) )
case %pcount=7:return call( Method&,IFace&,&(3),&(4),&(5),&(6),&(7) )
case %pcount=8:return call( Method&,IFace&,&(3),&(4),&(5),&(6),&(7),&(8) )
EndProc
proc WebOpen-------------------------------------------------------------Irgendwas öffnen
Parameters X$
~RedrawWindow(%hwnd,0,0,$485)
casenot len(x$):return
~MultiByteToWideChar(0,0,addr(x$),-1,a#,250)
clear b#
CallMethod(IWebbrowser&,~Navigate,a#,b#,b#,b#,b#)
EndProc
*****************************************************************************************
windowstyle 16+8+4+2+1
window 10,10-700,500
usermessages 16
ATLdll&=usedll(atl.dll)
AtlAxWinInit()
WebControl&=control(AtlAxWin,Shell.Explorer.1,$50000000,0,0,0,0,%hwnd,0,0,$200)
~GetClientRect(%hwnd,b#)
setwindowpos WebControl&=0,0-long(b#,8),long(b#,12)
Werte von Error& und IUnknown& im Fehlerfall ausgeben lassen!
Error&=AtlAxGetControl(WebControl&,addr(IUnknown&))
IWebBrowser2-Interface ermöglicht Kontrolle über das WebControl
clear a#,b#
a$=~IID_IWebBrowser2
~MultiByteToWideChar(1,1,addr(a$),-1,a#,80)-------------ANSI zu WideChar
CLSIDFromString(a#,b#)----------------------------------String zu Interface-ID
Error&=CallMethod(IUnknown&,~QueryInterface,b#,addr(IWebBrowser&))
--damit es beim Start nicht so leer aussieht
CallMethod(IWebBrowser&,~GoHome)
--------------------------------------------------------------------FensterMenü
appendmenubar 101,Zurück
appendmenubar 102,Vorwärts
appendmenubar 103,Abbrechen
appendmenubar 104,Aktualisieren
appendmenubar 105,Startseite
appendmenubar 106,Suchen
appendmenubar 107,Datei öffnen
appendmenubar 108,Ordner öffnen
appendmenubar 109,URL öffnen
--------------------------------------------------------------------Eingabeschleife
while 1
if %key=4----------------------------------------------Grössenänderung des Fensters
~GetClientRect(%hwnd,b#)
setwindowpos WebControl&=0,0-long(b#,8),long(b#,12)
elseif menuitem(101)-----------------------------------Zurück
CallMethod(IWebBrowser&,~GoBack)
elseif menuitem(102)-----------------------------------Vorwärts
CallMethod(IWebBrowser&,~GoForward)
elseif menuitem(103)-----------------------------------Abbrechen
CallMethod(IWebBrowser&,~Stop)
elseif menuitem(104)-----------------------------------Aktualisieren
CallMethod(IWebBrowser&,~Refresh)
elseif menuitem(105)-----------------------------------Startseite
CallMethod(IWebBrowser&,~GoHome)
elseif menuitem(106)-----------------------------------Suchen
CallMethod(IWebBrowser&,~GoSearch)
elseif menuitem(107)-----------------------------------Datei öffnen
a$=loadfile$(Bitte Bild oder HTML-Datei wählen,*.*)
WebOpen a$
elseif menuitem(108)-----------------------------------Ordner öffnen
a$=choosedir$(Bitte Ordner wählen)
WebOpen a$
elseif menuitem(109)-----------------------------------URL öffnen
a$=input$(Bitte Web-Adresse eingeben:,URL:,)
WebOpen a$
endif----------------------------------------------------------------------
while 1----------------------------Warten, bis Aktion ausgeführt ist
sleep 200
CallMethod(IWebBrowser&,~get_Busy,addr(a&))
casenot a&:break
endwhile------------------------------------------------------------
waitinput
case %umessage=16:break-----------Ende
endwhile-----------------------------------------------------------------Ende Eingabeschleife
destroywindow(WebControl&)
case ATLdll&:freedll ATLdll&
End
Greeting Fränki |
| | | Seit 2008 endlich XProfan 10, ist einfach klasse | 02/19/07 ▲ |
| |
| | | means to that first should You your Source too with CompileMarkSeparation ummanteln (this is in all Forums normally) - Codes with Smilies drin will none look at. You can your Posting Yes Edit. And then would it yet helpful if you The additional PH too as DateiAnhang beifügst - because these heard not to that XProfanumfang.
we knoe neither which XProfanversion You uses (have Yes nothing indicated) - the could You but too in your Signatur write.
The reaches a# and b# go not disposed .
To denne.
@Admins: I find these Postingform comes in last Time very often to - we should to the Post one Vorstellungsgespräch lead - inform of/ one Erklärungsseite howTo mail. I werd the time zusammenbasteln. |
| | | | |
| | | | |
| | Frank Tretter | Sorry, know me there not yet so from. I have XProfan 8. iwebbrowser2.ph watts from you already here displayed, thanks.
now attempt I with the the code once more. CompileMarkSeparation $H c:XProfan 8.0INCLUDEWindows.ph
$H c:XProfan 8.0INCLUDEIWebBrowser2.ph
Declare a$, a&, a#, b#, Error&, ATLdll&, WebControl&, IUnknown&, IWebBrowser&
Dim a#,1024
Dim b#,256
Def CLSIDFromString(2) !ole32,CLSIDFromString
Def AtlAxWinInit(0) !atl.dll,AtlAxWinInit
Def AtlAxGetControl(2) !atl.dll,AtlAxGetControl
Proc CallMethod-----------------------------------------------Interface-Methoden aufrufen
Parameters IFace&,Method&
Declare VTable&
VTable&=long(IFace&,0)
Method&=long(VTable&,Method&*4)
case %pcount=2:return call( Method&,IFace& )
case %pcount=3:return call( Method&,IFace&,&(3) )
case %pcount=4:return call( Method&,IFace&,&(3),$(4) )
case %pcount=5:return call( Method&,IFace&,&(3),&(4),&(5) )
case %pcount=6:return call( Method&,IFace&,&(3),&(4),&(5),&(6) )
case %pcount=7:return call( Method&,IFace&,&(3),&(4),&(5),&(6),&(7) )
case %pcount=8:return call( Method&,IFace&,&(3),&(4),&(5),&(6),&(7),&(8) )
EndProc
proc WebOpen-------------------------------------------------------------Irgendwas öffnen
Parameters X$
~RedrawWindow(%hwnd,0,0,$485)
casenot len(x$):return
~MultiByteToWideChar(0,0,addr(x$),-1,a#,250)
clear b#
CallMethod(IWebbrowser&,~Navigate,a#,b#,b#,b#,b#)
EndProc
*****************************************************************************************
*****************************************************************************************
windowstyle 16+8+4+2+1
window 10,10-700,500
usermessages 16
ATLdll&=usedll(atl.dll)
AtlAxWinInit()
WebControl&=control(AtlAxWin,Shell.Explorer.1,$50000000,0,0,0,0,%hwnd,0,0,$200)
~GetClientRect(%hwnd,b#)
setwindowpos WebControl&=0,0-long(b#,8),long(b#,12)
Werte von Error& und IUnknown& im Fehlerfall ausgeben lassen!
Error&=AtlAxGetControl(WebControl&,addr(IUnknown&))
IWebBrowser2-Interface ermöglicht Kontrolle über das WebControl
clear a#,b#
a$=~IID_IWebBrowser2
~MultiByteToWideChar(1,1,addr(a$),-1,a#,80)-------------ANSI zu WideChar
CLSIDFromString(a#,b#)----------------------------------String zu Interface-ID
Error&=CallMethod(IUnknown&,~QueryInterface,b#,addr(IWebBrowser&))
--damit es beim Start nicht so leer aussieht
CallMethod(IWebBrowser&,~GoHome)
--------------------------------------------------------------------FensterMenü
appendmenubar 101,Zurück
appendmenubar 102,Vorwärts
appendmenubar 103,Abbrechen
appendmenubar 104,Aktualisieren
appendmenubar 105,Startseite
appendmenubar 106,Suchen
appendmenubar 107,Datei öffnen
appendmenubar 108,Ordner öffnen
appendmenubar 109,URL öffnen
--------------------------------------------------------------------Eingabeschleife
while 1
if %key=4----------------------------------------------Grössenänderung des Fensters
~GetClientRect(%hwnd,b#)
setwindowpos WebControl&=0,0-long(b#,8),long(b#,12)
elseif menuitem(101)-----------------------------------Zurück
CallMethod(IWebBrowser&,~GoBack)
elseif menuitem(102)-----------------------------------Vorwärts
CallMethod(IWebBrowser&,~GoForward)
elseif menuitem(103)-----------------------------------Abbrechen
CallMethod(IWebBrowser&,~Stop)
elseif menuitem(104)-----------------------------------Aktualisieren
CallMethod(IWebBrowser&,~Refresh)
elseif menuitem(105)-----------------------------------Startseite
CallMethod(IWebBrowser&,~GoHome)
elseif menuitem(106)-----------------------------------Suchen
CallMethod(IWebBrowser&,~GoSearch)
elseif menuitem(107)-----------------------------------Datei öffnen
a$=loadfile$(Bitte Bild oder HTML-Datei wählen,*.*)
WebOpen a$
elseif menuitem(108)-----------------------------------Ordner öffnen
a$=choosedir$(Bitte Ordner wählen)
WebOpen a$
elseif menuitem(109)-----------------------------------URL öffnen
a$=input$(Bitte Web-Adresse eingeben:,URL:,)
WebOpen a$
endif----------------------------------------------------------------------
while 1----------------------------Warten, bis Aktion ausgeführt ist
sleep 200
CallMethod(IWebBrowser&,~get_Busy,addr(a&))
casenot a&:break
endwhile------------------------------------------------------------
waitinput
case %umessage=16:break-----------Ende
endwhile-----------------------------------------------------------------Ende Eingabeschleife
destroywindow(WebControl&)
case ATLdll&:freedll ATLdll&
End
|
| | | Seit 2008 endlich XProfan 10, ist einfach klasse | 02/19/07 ▲ |
| |
| | Uwe ''Pascal'' Niemeier | Hello Frank!
the WebBrowser-Control becomes complete over so-called COM-Interfaces gesteuert; the counts even for Clipboard-activities. with Messages (How with Edits) is there nothing To machen; for must even one new interface called go. These procedure ought to help: CompileMarkSeparation
proc CopyToClipBoard----------------------------------------------------------
declare IOleCommandTarget&,CLSID$
CLSID$={b722bccb-4e68-101b-a2bc-00aa00404770}--IID_IOleCommandTarget
~MultiByteToWideChar(1,1,addr(CLSID$),-1,a#,80)--ANSI zu WideChar
CLSIDFromString(a#,b#)---------------------------String zu Interface-ID
CallMethod(IWebBrowser&,~QueryInterface,b#,addr(IOleCommandTarget&))
CLSID$={de4ba900-59ca-11cf-9592-444553540000}--CGID_MSHTML (Kommandomodus)
~MultiByteToWideChar(1,1,addr(CLSID$),-1,a#,80)--ANSI zu WideChar
CLSIDFromString(a#,b#)---------------------------String zu Interface-ID
CallMethod(IOleCommandTarget&,4,b#,15,0,0,0)-----Exec : IDM_COPY
CallMethod(IOleCommandTarget&,~Release)----------Interface freigeben
endproc----------------------------------------------------------------------
an routine to that Mark wealthy I yet to!
@ iF: are you sure, that DISPOSE on the End of program so wichig is?
HTH Pascal |
| | | | |
| | RGH | Uwe Pascal Niemeier
@ iF: are you sure, that DISPOSE on the End of program so wichig is?
with Win9x (moreover heard too Win ME) fundamentally Yes, there otherwise the memory oiftmals not till the next Neustart released becomes. Win2000/XP/Vista regelt the Betriebssystem with End of program The release in all rule if need be self.
but for all that ought to one itself accustom with DIM reserved memory fundamentally through DISPOSE again freizugeben. ought to one this z.B. time in a procedure forget, has one very quick Problems ...
Greeting Roland |
| | | Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 02/20/07 ▲ |
| |
| | Frank Tretter | Vielen Thanks first for speedy Help. the bring me already moreover. If I still The routine for the Markiern bekomm be I happy and it has me very helped.
can unfortunately not always same Answer, be not always on the PC and to that program missing as The Time.
Greeting Fränki |
| | | Seit 2008 endlich XProfan 10, ist einfach klasse | 02/21/07 ▲ |
| |
|
AnswerThemeninformationenthis Topic has 4 subscriber: |