NTFS Links minor update

I decided yo update NTFS Links to fix an annoying issue several people complained about. If you copy a directory and decide to, yes, copy and not create soft link, you will be still prompted with the same question for every subdirectory inside. Windows gove no option to learn this is actually a subdirectory and not a different operation so the workaround is not as simple as it seems.

The solution is the following: each of the dialogs currently is suppressible using a special check box, which if checked makes dialog don’t appear unless Control key is pressed. Since this version, if unchecked, the dialog box is still suppressible while you hold Shift down. Thus, hold shift and have subdirectories processed with default option without prompt.

The rest of the changes, significant amount of in fact, add no more features. The extension is changed to using Unicode version of APIs (you can expect it to work as much as 1% faster), compiled with new compiler, without dependencies and thus distributable became unexpectedly small, 251K as compared to previous 336K.

What’s new in this build?

  • New: Shift key being hold suppresses prompt dialogs

Application Name: Alax.Info NTFS Links
License: Free for personal use, request commercial licenses via email or contact form
Latest Version: 1.1.2
Download Link: Alax.Info NTFS Links 1.1.2 (251K)

NTFS Links: Alternate data streams

Another interesting feature of NTFS file system is alternate data streams, which basically means that a file may be attached extra data such as for example “slave files”. The tricky peculiarity is that data streams are almost invisible to Windows shell, though Windows uses stream to attach version information (Summary property page in file properties) and zone information to mark downloaded files from unsafe locations.

The idea I thought about was that alternate data streams may be useful to create a named copy of file contents, something similar to checkingin to version control system. The idea does not seem to be worth implementation though as it is unpredictable how software (such as word processors) is updating the files. If the file is re-created, the existing alternate data streams would get lost with saving of the new content.

Additionally, a good introduction into NTFS features, including hard links and streams (I am actually surprised I came across these only now):

MD5 and SHA-1 using CryptoAPI from JScript

Alax.Info Crypt Tools provides an interface to popular cryptography hash functions (AKA one-way functions) for scripting code, such as JScript/JavaScript, VBScript etc. Also might be used in other COM/OLE/ActiveX compatible environments, however this makes less sense due to presence of native API. The usage is rather simple:

function MD5(Text)
{
Hash = WScript.CreateObject(“AlaxInfo.CryptTools.Md5Hash”);
Hash.AddStringA(Text);
WScript.Echo(“MD5(\”” + Text + “\”): ” + Hash.GetHashString());
}
MD5(“”);
MD5(“a”);
MD5(“abc”);
MD5(“message digest”);
MD5(“abcdefghijklmnopqrstuvwxyz”);
MD5(“ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789”);
MD5(“12345678901234567890123456789012345678901234567890123456789012345678901234567890”);

MD5 and SHA-1 algorithms are implemented (more to appear when necessary).

Keywords: CryptoAPI, MD5 (Message-Digest algorithm 5; RFC 1321), SHA-1, CCryptProv, CCryptMD5Hash, CCryptSHAHash, CCryptSHA1Hash, HCRYPTHASH, CryptAcquireContext, CryptHashData

Application Name: Alax.Info Crypt Tools
License: Free for personal use, request commercial licenses via email or contact form
Latest Version: 1.0.0
Download Link: Alax.Info Crypt Tools 1.0.0 (225K)

ATLASSERT vs ATLASSUME

ATL of Visual Studio 2005 contains a new interesting macro, undocumented though, which seems to provide a better hint for detecting bugs. Unlike documented ATLASSERT, ATLASSUME not only asserts on failure, but also makes an infinite loop with __analysis_assume intrinsic inside for the code analysis tool. However it is also important that this intrinsic does not affect any compilation optimization, for which an __assume is to be used.

It is also quite interesting to find other new macros ATLENSURE_THROW, ATLENSURE, ATLENSURE_SUCCEEDED and ATLENSURE_RETURN_HR, for which we had an analog since Visual C++ 6.0 and ATL3 (different shorter names though as they are very much convenient and widely used).

Be informed on file system updates

Alax.Info Be Informed update is available.

What’s new in this build?

  • New: File system check activity; a check for file system changes in a specified directory and file name regular expression pattern with a notification on created, deteted file and file size changes according to configured granularity

05-image001.png

Keywords: FindFirstFile, FindNextFile, FindFirstChangeNotification, FindNextChangeNotification

Application Name: Alax.Info Be Informed
License: Free for personal use, request commercial licenses via email or contact form
Latest Version: 1.0.3
Download Link: Alax.Info Be Informed 1.0.3 (725K)

Be informed on exceeding pre-configured performance threshold

Alax.Info Be Informed update is available.

What’s new in this build?

  • New: System performance activity; a periodic poll for performance data and notification in case of exceeding pre-defined threshold

04-image002.png

Keywords: Performance, GetPerformanceInfo, PERFORMACE_INFORMATION, PERFORMANCE_INFORMATION, Memory, Commit Limit, Commited Bytes, Handle Count, Thread Count

Application Name: Alax.Info Be Informed
License: Free for personal use, request commercial licenses via email or contact form
Latest Version: 1.0.2
Download Link: Alax.Info Be Informed 1.0.2 (711K)

Be informed on remote host online availability using periodic ping

Alax.Info Be Informed update is available.

What’s new in this build?

  • New: Ping availability activity; periodic pings to remote host will send notifications on host going off and online
  • Minor fixes

04-image001.png

Keywords: Ping, ICMP, echo, notifications

Application Name: Alax.Info Be Informed
License: Free for personal use, request commercial licenses via email or contact form
Latest Version: 1.0.1
Download Link: Alax.Info Be Informed 1.0.1 (688K)