Rob van der Woude's Scripting Pages

News Archives 2007 Q2


[ Back to the current news page... ]


June 30, 2007 I corrected the website statistics/counter code for all my web pages, so you may expect to get "some" notifications from ChangeDetection if you subscribed to their service.
Sorry for the inconvenience.
June 29, 2007 I updated my IELogin dialog demo: it now disables AutoCompletion for the user name.

I also wrote a VBScript version of my Wallpaper script which, as the name suggests, can change Windows' wallpaper.
This version is the most versatile version I wrote so far. It has a load of command line switches, that enable delayed start, fixed or randomly selected bitmaps, filtering by (partial) file name, extension, file attributes, file size and/or last modified date.

Have fun.
June 21, 2007 As a spin-off of a project I'm working on, I added a new item to the VBScript Scripting Techniques section: PingSite, demonstrating how to use WinHTTP to check a web server's satus.
For a ready to use script complete with error handling look at this enhanced PingSite.vbs.

And I would like to share a quote from an e-mail message I received today:

When we are looking for advanced commands or code it is referred to as "vanderwoude-ing", as your site is invariably the first place we look.

Jeremy Hudson

Immortalized in language... 😉
June 19, 2007 I wrote ADSITest.hta a couple of months ago, while reviewing the manuscript for Don Jones' latest book "VBScript, WMI, and ADSI Unleashed: Using VBScript, WMI, and ADSI to Automate Windows Administration" (highly recommended). Now that the book is available in print I uploaded the HTA today.
This HTA combines several samples from the book and can assist in testing and debugging, or experimenting with, ADSI queries.
The fun part is, you don't need Active Directory to use ADSI queries, so you can use this HTA to practice with ADSI queries on your own computer at home.

Thanks Don Jones
June 17, 2007 Today I stumbled upon BinManager by Tim Tabor. BinManager is both a shell extension for the Recycle Bin, and a scriptable component for managing the Recycle Bin.
To test it I wrote DelTrash2.vbs, which looks a lot better than DelTrash.vbs. And while at it, I also converted it to KiXtart.

Thanks Tim Tabor

I admit I have been hesitant about publishing UnBlock.bat for a long time, because it effectively disables a safety mechanism in Windows XP SP2 and later.
However, since this subject is public knowledge, I don't think I'm teaching the "bad guys" anything new here.
Do be careful, and use this batch file only if you're 100% certain that a file is safe.

OK, what is it all about? It's about disabling, on a per file basis, the sometimes annoying dialog, telling you that you're about to run an unsafe program that was downloaded from the internet, and are you sure you want to proceed?
Though the warning is absolutely valid, I didn't want it to be displayed when deploying a software update downloaded from one of our vendors' website.

The message is displayed when a (program) file has an alternate file stream named Zone.Identifier "attached" to it, with the following content:


The ZoneID value of 3 tells Windows that the file was downloaded from the internet, and thus inherently unsafe, whereas a value of 1 tells Windows it was downloaded from the local intranet, and thus safe.
More info on Zone Identifiers can be found in the Microsoft Knowledge Base articles 883260, 889815 and 105763.

Well, as I said, I wrote UnBlock.bat to deploy a downloaded software update. This batch file reads and displays a file's current Zone.Identifier data, and then simply overwrites it to mark the file safe.
To get rid of the alternate file stream completely, I might just as well have burned the downloaded file on a CD, or copied it to a floppy disk or any other FAT file system (the FAT file system doesn't support alternate file streams, so these file streams are lost when a file is copied to a FAT drive).
However, just modifying it seemed more convenient and didn't require a FAT file system.
The batch file was based on an article in Windows Scripting Solutions by Bill Stewart.

Disclaimer: By manually marking a file safe you effectively disable the zone checking security mechanism for that file.
This is absolutely NOT recommended!!!
Use this batch file entirely at your own risk.
June 16, 2007 Today I got more than a little pi[BLEEP]ff when my weekly image backup sent me a message that it didn't have enough disk space to store the backup image. When I looked what went wrong, I noticed the Recycle Bin contained several GB of deleted TIFF files, which I use as temporary files when processing my photos. I should have emptied the Recycle Bin in time, but I forgot.
Not so clever So I searched the web for a script to empty the Recycle Bin without prompting for information, and when I couldn't find one, I wrote it myself: DelTrash.vbs.
I now schedule this script 5 minutes before the image backup is scheduled.
Do be carefull when using this script: when I use its /H switch, the Recycle Bin no longer shows its new content, and so cannot restore deleted files, untill it has been emptied manually once or twice, in which case any previously deleted files are gone forever.
Always test, test, test and test before relying on any script or tool.
June 15, 2007 Check out this TechNet webcast next week: Windows PowerShell in Windows Server 2008.
June 14, 2007 A new page in the VBScript Scripting Techniques section: Time Delays.

And I changed the HTA Examples page to a HTA & WSC Examples page.

I have postponed this for a while because of the website restyling, but here it is: the updated Whois (WSC) component.

It seems reorganized its site, and the uFREEDB ocx download became a victim of this reorganization.
Dead links on my VBScript Extensions and Multimedia Sample Script pages? No way!
After searching the web for an alternative download site (none that had the latest version), and after reading the license text, I decided to host this download on my own site, so it's available again.
June 11, 2007 The next couple of days I will be optimizing my web pages: correcting and adding keyword metatags, moving banners out of the main text area to the unused area below the menu, etcetera. So you may get some "false positives" from ChangeDetection if you subscribed to that service.
June 7, 2007 You can hardly have missed it. The new style for my website is final. No more framesets, so deeplinking should never again be a problem.

I have added an alternative stylesheet named "Large fonts", and I may add more alternate style sheets if necessary.
I also reorganized some pages, especially script samples. To prevent lots of 404 errors, I created redirections on the now obsolete pages, with automated "best guess" redirections to the script samples.

The choice of colors for the pages still doesn't work, I hope to fix that soon.
I'm also still working on the choice for the window where outward links should be opened. Again, I hope to fix it soon.

But first I'll have a look at the tips and suggestions I received for content, which is at least as important as style... 😉

Please let me know if there are any problems with the restyled pages.
June 6, 2007 Mark Minasi will be speaking at TechEd Orlando, tomorrow:
Command Microsoft Windows from C: Level... and Get Ready for Server Core!

Register here to follow this event live online.
June 4, 2007 Alexander Shapiro found an error in my DateDiff.bat. It has been corrected in the new version that has just been uploaded.

Thank you Alexander.

I also updated my ADSHelp.bat after testing the resulting HTML code with CSE HTML Validator. The new version no longer requires multiple files, except for a temporary VBScript file to correct the "fake tags".

Great PowerShell news from the Scripting Guys: the Windows PowerShell Owner's Manual and the Windows PowerShell Graphical Help File in searchable .CHM format are available right now!
May 29, 2007 I'm almost finished "restyling" this website. The existing pages have all been converted, now I only need to add some pages for a more consistent division into chapters.
I hope to make the new style final by the end of this week.

So if you expect problems with the new style, now would be a good time to tell me, before it becomes final.
May 14, 2007 By uploading every little change to my new test site, I made the What's New page more or less useless. Sorry. Please be patient, this may take a couple of weeks.
May 12, 2007 After days of modifying HTML files I uploaded the first "pre-alpha" version of my restyled website.
A lot of work still needs to be done, but I needed a real website for further testing, not a local copy.

Some of the changes:
  • I finally dropped the frameset in favor of a DHTML menu, so deeplinking will become a lot easier
  • A more consistent division into "chapters" and categories
  • I'm working on improved accessability by allowing visitors to choose from alternate stylesheets
  • While creating stylesheets, I added a separate style for elements that should not be printed (e.g. banners and menus)
  • In FireFox (and maybe other gecko based browsers too) the print style will also print the URLs of "outward links"
May 5, 2007 I just returned from another short vacation, which explains why there haven't been any updates last week 😉

Today I updated the Whois class: it now handles ".org" domains too. I also added some extra properties for debugging: Debug, ErrorNumber, ErrorDescription, ErrorSource and Version.
April 29, 2007 Register a WSC file
Though a class is definitely more versatile than a function, a true component is even better: when registered, it is available everywhere, for "all" scripting and/or programming environments.
To learn more about Windows Script Components I created Whois.wsc. The XML wrapper was created using Microsoft's Windows Script Component Wizard, and the internal code reuses much of the Whois class I wrote before (the most difficult part was generating a working time delay without WScript.Sleep; in the end I solved it the "quick-and-dirty" way: a DOS command, which seems the only way to get a delay without consuming 100% CPU capacity).
Now I just need to find a way to create a useful type library (no, "Generate Type Library" in the menu doesn't work, and the associated RUNDLL32 command only creates an "empty" type library).
April 28, 2007 Class members are shown in object browser
I didn't like the fixed output format of my NetSolWhoIs VBScript function. It would require another script or batch file to filter out specific properties.
I had heard of VBScript classes and it took only one Google search to find this excellent introduction to VBScript classes. It was enough to create my own Whois class.
What makes working with classes even more worthwhile is that my editor's object browser makes them almost self-explanatory, as is demonstrated in the screenshot at the right.

Thanks ActiveXperts
April 27, 2007 Whenever I need to look up information on the web, I check if the resulting URL contains my query. If it does, the query can probably be automated. That's how my NetSolWhoIs VBScript function was born. The function uses Network Solution's WhoIs page to retrieve domain registration information.
April 23, 2007 ActiveX Helper screenshot
And yet another new member of my VBScript dialogs collection: Change Default Printer Dialog.
It may be a little clumsy, as it requires you to click the "Print" button to confirm the change(s), but hey, it's quick-and-dirty and it uses native objects only.

Do you ever use MSInfo32 to inventory computers? Learn how to integrate MSInfo functionality in your VBScripts.

I found this great free tool: ActiveX Helper by Nir Sofer. It displays the most essential information about ActiveX components installed on your computer. I found the MSInfo functionality while testing ActiveX Helper.
And there's more great stuff on Nir Sofer's site.

Thanks Nir Sofer
April 18, 2007 Explorer context menu for DLLs
After testing several VBScript extensions, and thus sometimes registering and unregistering DLLs and OCXs, I decided it was time to automate this, or at least make it easier. That's why DLL_Menu.bat was created. Run it once to add "Register" and "Unregister" to Windows Explorer's context menus for DLLs and OCXs.

While on the subject, I also started compiling a list of useful shell extensions, including this new DLL_Menu.
April 17, 2007 I'm still trying to figure out why I the Shell Folders' CopyHere method fails to add files to ZIP files on my computer. However, while experimenting I found it can be used the other way around, i.e. to extract ZIP and CAB files. Besides that, the same code can be used to copy "normal" folders too, which may come in handy if a progress bar is required.

Thanks Gerald Gibson Jr., for putting me on the right track.

Thanks to a VBA script by Ron de Bruin I finally got CopyHere working correctly.
The result is ZipFolder, a function to ZIP entire folders.

Thanks Ron de Bruin
April 15, 2007 A wish come true: I finally found this free ChilkatFTP ActiveX component from Chilkat Software.
Guess what, I wrote a sample script to upload a single file using FTP.

Thanks, Chilkat Software
April 14, 2007 Yesterday I finally got this uFREEDB.ocx control (by Brian Weeres) working in VBScript, so I wrote a script to query the CD database.
The trick was the server no longer seems to assume the default values if properties are left out, and if the documentation mentions input parameters as integers, the parameters must be entered as CInt(var) instead of var to be accepted.

Thanks, Brian Weeres
April 12, 2007 I finally took some time to test the various X-ZIP functions, and as a result I removed the X-ZipFolders function. The Zip function is perfectly capable of recursing through folders, and saving the relative paths, so the ZipFolder function was utterly redundant.
April 11, 2007 More encoding/decoding routines: Base64 encode/decode files using Belus Technology's free X-Base64 component.
I also added a GetKey function to convert passwords or passphrases to "key" arrays to be used with my Encode function.

A demonstration of the 3 distinct Integer Divide methods.

Technet ScriptCenter Scripting Games MMVII Certificate of Excellence
Ladies and gentlemen, I proudly present the Certificate of Excellence I received in the mail today after participating in the TechNet Script Center's Scripting Games MMVII in February.
Thanks, Scripting Guys, until next year's Games.
April 10, 2007 A very basic encryption routine: encode/decode text using XOR.
April 9, 2007 A new member of my VBScript dialogs collection: Change Password Dialog.
April 7, 2007 two lambs chewing a branch
No news the last couple of days, as I enjoyed a short vacation on the beautiful island of Texel.
For those of you that don't know Texel: it is a Dutch island famous for its birds and its sheep (see the picture I took last week). It is a very popular tourist destination. In winter the official language is Dutch, but starting at Easter it changes to German because of the crowds of German tourists. 😉

OK, back to serious bussiness:

WordPerfect comes with built-in PDF support, as I demonstrated before.
For a while I was afraid it would require a PDF printer to automate conversion of MS Word documents to PDF, but then I found this Microsoft Save as PDF or XPS Add-in for 2007 Microsoft Office programs. Just download and install it (if you have Office 2007), and use my new sample to automate the conversion.
As the add-in name suggests, it also supports conversion to XPS, as is demonstrated in this sample.


Archived News pages
Archived news from 2007 Q1


page last modified: 2022-10-22