How to disable all possible popup messages in CDHtmlDialog? - com

I use CDHtmlDialog to work with DOM of some HTML content from given URLs. I need to disable all possible popup messages (e.g Security alerts) that can appear as in case of InternetExplorer Browser. In JScript I can set property Silent to true
var oIE = WScript.CreateObject("InternetExplorer.Application","EventIE_");
oIE.Silent = true;
and that's work! How to get same behaviour in CDHtmlDialog?
Thanks

I found the solution!
m_pBrowserApp->put_Silent(VARIANT_TRUE);

Related

Can HTAs be used to automate web browsing?

I am new to HTAs. I just read https://msdn.microsoft.com/en-us/library/ms536496%28v=vs.85%29.aspx and am a bit confused.
Can I use HTAs to automate browsing? Say I want to download a web page and fill in a form automatically, i.e. from a script. How would an HTA help me do this, if at all? It's important that the JavaScript code in the downloaded page is run as usual. I should be able to enter somehow and fill in the form after it has finished initializing, just as if I were a human agent.
First, you need to open an IE window, as follows:
var IE = new ActiveXObject("InternetExplorer.Application");
Then navigate the IE window to the webpage you want:
IE.Navigate("www.example.com");
Wether your IE window is visible or invisible, it's up to you. Use Visible property to make it visible:
IE.Visible = true;
Then, you should wait until the webpage is completely loaded and then run a function that takes your desired actions. To do so, first, get the HTML document object from the webpage using Document property of IE object, then repeatedly check the readyState property of document object. In the code below, it is assumed that you have a function named myFunc, which takes your desired actions on the webpage. (For example, modifying the contents of the webpage.)
var doc = IE.Document;
interval = setInterval(function() {
try
{
if (doc.readyState == "complete")
{
myFunc();
clearInterval(interval);
}
}
catch (e) {}
}, 1000);
In the function myFunc, you can do anything you want with the webpage since you have HTML document object stored in doc variable. You can also use parentWindow property to get the HTML window object.

How to disable clicking Webbrowser, but still able to scroll WebBroswer

I have a WebBrowser in my VB.net form. I want to disable from users clicking links in the Webbrowser, but still able to scroll the Webbrowser.
I found this code but it locks up the whole WebBroswers so I can't click links or scroll, but I need to be able to scroll.
DirectCast(WebBrowser1, Control).Enabled = False
Just set the following property:
WebBrowser1.AllowNavigation = False
A hacky work-around to change the address from code would be to turn AllowNavigation on again, but it requires a BeginInvoke to allow the navigation to take place before turning it off again:
WebBrowser1.AllowNavigation = True
WebBrowser1.Navigate("new web address...")
Me.BeginInvoke(New Action(Sub() WebBrowser1.AllowNavigation = False))

VBA & HTML Objects - click invisible dropdown

I'm trying to trigger the event main.filaPopupV3_1.select('alta'); via VBA in IE8
The dropdown main.filaPopupV3_1 is invisible until another button is clicked. I can get the dropdown to become visible but i can't access any of the options in it.
'alta'
Is one of the options i want to click.
Thats my code which isn't working.
'IE References at start are
Set myIE = New InternetExplorerMedium
Set Document = myIE.Document
I skip the navigation etc.
Document.getElementById("BViewElementCSSIcon5").FireEvent ("onmouseover")
Document.getElementById("BViewElementCSSIcon5").FireEvent ("onclick")
Document.getElementById("main_filaPopupV3_1_main_filaPopupV3_1_root").FireEvent ("onmouseover")
Document.getElementById ("main.filaPopupV3_1._cancelHide=1;")
Document.getElementById ("main.filaPopupV3_1.hideMenu('alta');event.cancelBubble=true;")
Document.getElementById("main.filaPopupV3_1('alta')").FireEvent ("onmouseover")
Document.getElementById ("main.filaPopupV3_1.select('alta');")
Document.getElementById("alta").Click
I know that some lines are unnecassary. Thats just me trying so far
HTML source code
Here's the answer but if someone could explain why this is working, i'd be very happy. Thanks
myIE.Navigate ("javascript:main.filaPopupV3_1.select('alta');")

Proxy change on runtime in Awesomium

I've read bunch of Q&As but none helped me.
I'm using VB.net; added awesomium browser control on the form. I need to be able to change its proxy server on the fly (example: User clicks a button to change proxy IP & port). Would it be possible? If not maybe I could create a dynamic awesomium browser control and than add it to the form (also on button click). But still don't know how to initialize control with the proxy.
If I cannot change it while running that is fine. Can I read proxy from some file and than initialize control with that proxy?
Nevermind - below worked for me:
Dim prefs As WebPreferences = New WebPreferences()
prefs.ProxyConfig = txtProxy.Text
Dim session As WebSession = WebCore.CreateWebSession(prefs)
Dim webcontrol As WebControl = New WebControl()
webcontrol.WebSession = session
Me.panWeb.Controls.Add(webcontrol)
webcontrol.Dock = DockStyle.Fill
webcontrol.Source = New Uri(txtURL.Text)
webcontrol.Visible = True

Modify HTML in a Internet Explorer window using external.menuArguments

I've got a VB.NET class that is invoked with a context menu extension in Internet Explorer.
The code has access to the object model of the page, and reading data is not a problem. This is the code of a test function...it changes the status bar text (OK), prints the page HTML (OK), changes the HTML by adding a text and prints again the page HTML (OK, in the second pop-up my added text is in the HTML)
But the Internet Explorer window doesn't show it. Where am I doing wrong?
Public Sub CallingTest(ByRef Source As Object)
Dim D As mshtml.HTMLDocument = Source.document
Source.status = "Working..."
Dim H As String = D.documentElement.innerHTML()
MsgBox(H)
D.documentElement.insertAdjacentText("beforeEnd", "ThisIsATest")
H = D.documentElement.outerHTML()
MsgBox(H)
Source.status = ""
End Sub
The function is called like this from JavaScript:
<script>
var EB = new ActiveXObject("MyObject.MyClass");
EB.CallingTest(external.menuArguments);
</script>
To the best of my understanding, in order to use insertAdjacentText or any of the other editing methods, the document object should be in the design mode.
In design mode you can edit the document freely, and so can the user.
Check this site for more details
I do not think that Alex is right, something else is the matter.
When I tried to do something like that, insertBefore would not work for me, but appendChild worked just fine, so adding an element is possible.
I worked in Javascript, but I don't expect that makes a difference.