How to Determine Window Names of 16-bit Apps from 32-bit WinBatch
Keywords: 16-bit apps
Question:
How do I unambiguously find all the existing windows that belong to a certain application, and be 100% sure I am not including anything not part of that app?NOTE: My app is 16-bit, so WinExeName gives me "(16-bit application)", instead of an actual app name.
Answer:
You could write a small 16 bit script to figure out the 16 bit windows for you. Otherwise no way.If you have 32 bit WinBatch then you probably have 16 bit Winbatch - just maybe not installed. If you have the 32 bit Compiler then you probably also have the 16 bit compiler - also probably not installed.
With WinBatch you can:
Runwait("wbat16i.exe","your.wbt")And that should work. With the compiler you just compile the script into an EXE with the 16 bit compiler.Question continued:
I tried the separate 16-bit archive and it told me that it failed opening "logfile", for APPEND.Answer:
Should more or less work. Try installing to a different directory... or just delete the LOG files in the WinBatch/System subdirectory. At least make sure they are not read-only.Question continued:
Okay, I specified a different directory and it installed. However, when I try:Runwait("wbat16i.exe","your.wbt")it tells me:Call(`your.wbt`,``) file not foundeven if I use full path names.I am considering just using the 16-bit application for everything. If the app we are controlling is itself 16-bit, then perhaps there is no advantage to using the 32-bit WinBatch anyway.
Answer:
- You need to use Full SHORT pathnames.
- 16 bit WinBatch can generally control 16 bit apps pretty well. Multitasking is horrible though...So RunWait and TimeDelay and stuff like that burn up nearly 100% cpu resources.
Article ID: W12721Filename: Determine Window Names of 16-bit Apps.txt