Would be handy if GetWindowList could ...
i) Just return the lists in an array to avoid the need subsequent splitting.
ii) Even if it didn't, there should be a mechanism to get the names or handles
GetWindowList>winnamelist, [handlelist]
ie if the second (optional) variable (handlelist) is supplied it is poulated with the relevant handle - would allow the user to iterate over the synchroinsed returned lists to get a handle for a given window.
Or, if you really want to go nuts ...
GetWindowList>winnamelist, [regex], [handlelist]
where the regex filters the lists "returned".