Lots of people (me amongst them) use Perl modules on Windows that interface with the Win32 API and the most usual problem is with Unicode since some modules call the Ansi functions and not their Unicode equivalent counterparts.
Not only this, but the actual job that they are after can be achieved much easier by using facilities readily provided and embedded within Windows itself.
Specifically the COM automation is a great tool for performing myriads of activities, be it monitoring all aspects of the system using WMI, monitoring an Active directory environment using ADSI, working with files (most Unicode related problems start here) with Filesystemobject or fiddling with the network and DCOM using WSH.
The automation abstracts the API , makes work easier and is more tolerant to errors in contrast to their API counterparts. All of that can be used through the Win32::OLE module.
I'm not saying not to use modules that interface with the API, there are many cool ones,and specialized tasks such as manipulating the printer queue or creating a GUI cannot be done otherwise, but sometimes the same thing can be achieved better by using preexisting infrastructure.
Not only this, but the actual job that they are after can be achieved much easier by using facilities readily provided and embedded within Windows itself.
Specifically the COM automation is a great tool for performing myriads of activities, be it monitoring all aspects of the system using WMI, monitoring an Active directory environment using ADSI, working with files (most Unicode related problems start here) with Filesystemobject or fiddling with the network and DCOM using WSH.
The automation abstracts the API , makes work easier and is more tolerant to errors in contrast to their API counterparts. All of that can be used through the Win32::OLE module.
I'm not saying not to use modules that interface with the API, there are many cool ones,and specialized tasks such as manipulating the printer queue or creating a GUI cannot be done otherwise, but sometimes the same thing can be achieved better by using preexisting infrastructure.
Comments