|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.
|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:
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. The batch file was based on an article in Windows Scripting Solutions by Bill Stewart.
|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.
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
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 freedb.org 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:
|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||
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
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||
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.
|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||
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||
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 freedb.org CD database.
The trick was the freedb.org 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
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.
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||
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 from 2007 Q1|