How to Open Internet Explorer and Other Browsers in KiXtart

I know I’ve been posting a lot of KiXtart stuff lately, and I don’t mean to have my blog become all about KiXtart but it seems to be a pretty popular topic. I’ve been watching my web stats and have seen a few users come by from searches looking for how to open a browser from KiXtart so I thought I’d post the answer.

Here’s a function to open the default web browser. An optional URL can be specified and it will be opened in the browser.

; Open the default browser
FUNCTION OpenDefaultBrowser (OPTIONAL $URL)
	; Get the command line to start the default browser
	$BrowserCommand = READVALUE ("HKEY_CLASSES_ROOT\HTTP\shell\open\command", "")
 
	; Check if there is a %1 in the command
	IF INSTR ($BrowserCommand, "%1")
		; Replace any occurences of %1 with the URL
		$BrowserCommand = JOIN (SPLIT ($BrowserCommand, "%1"), $URL)
	ELSE
		; Append the URL to the end of the command
		$BrowserCommand = "$BrowserCommand $URL"
	ENDIF
 
	; If no URL was specified, remove " -nohome" from the command line
	IF NOT $URL
		$BrowserCommand = JOIN (SPLIT ($BrowserCommand, " -nohome"), "")
	ENDIF
 
	; Open the default browser and return immediately
	RUN $BrowserCommand
ENDFUNCTION

With the above function, if Firefox or Opera or some other browser is installed and set as the default, it will be opened instead of Internet Explorer. If you need to be sure that Internet Explorer is opened, and not some other browser, here’s a function that will open Internet Explorer no matter what.

; Open Internet Explorer
FUNCTION OpenInternetExplorer (OPTIONAL $URL)
	; Get the path to Internet Explorer
	$BrowserCommand = READVALUE ("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\IEXPLORE.EXE", "")
 
	; Append the URL to the end of the command
	$BrowserCommand = "$BrowserCommand $URL"
 
	; Open Internet Explorer and return immediately
	RUN $BrowserCommand
ENDFUNCTION

Here are some examples for using these functions:

; Open the default browser and go to the home page
OpenDefaultBrowser
 
; Open the default browser and go to http://blog.glyff.net/
OpenDefaultBrowser ("http://blog.glyff.net/")
 
; Open Internet Explorer and go to the home page, even if it isn't the default browser
OpenInternetExplorer
 
; Open Internet Explorer and go to http://blog.glyff.net/, even if it isn't the default browser
OpenInternetExplorer ("http://blog.glyff.net/")

Add a Trusted Site in IE using KiXtart

At Ergotron, we have a browser based, third party application that works best when the server is added to the Trusted Sites Zone in Internet Explorer. In a perfect world, we could bug the developers to make it run correctly on the principle of least privilege, but that’s not likely to happen.

trusted_sites_details.png

So, I added code to our log on script, which is written in KiXtart, to add the servers for this application to the Trusted Sites Zone.

Here’s the main function:

; Add a site to the Trusted Sites Zone
FUNCTION AddTrustedSite ($Protocol, $Server, $Domain)
	$DomainsKey = "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains"
	$SiteKey = '$DomainsKey\$Domain\$Server\'
	$SiteValue = $Protocol
	$TrustedSitesZone = 2
 
	$Result = WRITEVALUE ($SiteKey, $SiteValue, $TrustedSitesZone, "REG_DWORD")
ENDFUNCTION

I also wanted a way to remove sites from the Trusted Sites Zone as well:

; Delete a site from the Trusted Sites Zone
FUNCTION DeleteTrustedSite ($Protocol, $Server, $Domain)
	$DomainsKey = "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains"
	$SiteKey = '$DomainsKey\$Domain\$Server\'
	$SiteValue = $Protocol
 
	$Result = DELVALUE ($SiteKey, $SiteValue)
ENDFUNCTION

Now, to use these functions:

; Add buggy application to the Trusted Sites Zone
AddTrustedSite ("http", "buggyapp", "example.com")
 
; Remove fixed application from the Trusted Sites Zone
DeleteTrustedSite ("http", "fixedapp", "example.com")

The value passed to $Protocol can be “http”, “https”, “file”, “ftp” or “*”. If “*” is used, the site will be trusted when it is accessed using any protocol. If anything other than “https” is specified, you must disable the “Require server verification (https) for sites in this zone” option.

This is how to disable the “Require server verification (https) for sites in this zone” option:

; Do not require https for sites in the Trusted Sites zone
$TrustedSitesFlags = VAL (READVALUE ("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2\", "Flags"))
$TrustedSitesFlags = $TrustedSitesFlags | 4
$Result = WRITEVALUE ("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2\", "Flags", $TrustedSitesFlags, "REG_DWORD")

Learn to Read Blogs in Just a Few Minutes

A lot of people don’t quite get blogs and this whole “Web 2.0” thing. At Ergotron, we’re trying to start getting into the spirit of Web 2.0 and joining the conversations that are going on out there. It’s been rather slow going, though, trying to help people get to the point where they “get it”. Web 2.0 is such a nebulous concept that it takes quite a while to wrap your head around it and see all the potential that is out there – even for those of us with a technical background.

I think the best way to start learning about Web 2.0, is to just get into it and start reading blogs. Manually reading a bunch of blogs can get extremely tedious though, so you really need to use an aggregator. Finding and using an aggregator can be a pretty big hurdle for some people, so I searched around the net and found a nice, short, 3-minute tutorial on how to use the built in tools in Internet Explorer 7. Even though its not the best aggregator out there, its definitely the easiest to get, since pretty much everyone has IE7 by now anyway.

Here’s the tutorial:

http://timeatlas.com/tutorials/ie7rss.htm

Once you’ve learned how to subscribe to a blog, you’ll need to find some blogs that interest you. An easy way to find blogs is to just search Google. For example, to find blogs related to quilting, just search for “quilting blog”.

http://www.google.com/

You can also try browsing through Technorati Blog Finder:

http://technorati.com/blogs/

Or the EatonWeb Blog Directory:

http://portal.eatonweb.com/

You’re sure to find some blogs that interest you. Once you’ve found some, keep checking your feed list in Internet Explorer. If you see a post that you have an opinion on, post a comment… get into the conversation. This is the heart of blogging and its power… it’s two-way… it’s interactive… you don’t just read, you participate.

Speaking of participation, click the “Comment” link below and join the conversation right here.