我有一个在Windows XP下使用Delphi 6编译的exe文件,该文件使用EnumWindows和GetWindowText的组合来找到一个窗口(不属于exe本身)和一个特定的标题。在Vista上的Delphi 6 EXE:GetWindowText的问题
该行为与Windows XP下的预期相同。但是在Vista电脑上,它似乎没有工作。
由于上述Delphi版本不能在Vista上运行,因此我无法直接更改和测试此版本。
但是,我会尝试在XP计算机上创建一个修改后的exe,输出一些额外的数据并将其复制到Vista计算机。
我只想问问任何人是否有任何信息是否有具体的问题已知的exe文件编译与运行在Vista上的Delphi 6关于EnumWindows/GetWindowText。
exe使用EnumWindows和GetWindowText来查找某个窗口的句柄,以便随后在一个计时器事件中解析该窗口的标题。窗口标题是应用程序名称加上在该应用程序中打开的文件的名称(如果有任何文件被打开)。 Delphi exe分析/使用这个文件名,对它做某事并以某种方式表现。
在Vista上不会出现预期的行为,因此我认为窗口句柄没有找到,导致GetWindowText不知何故返回文本。另一个原因当然可能是EnumWindows无法正常工作,并且exe所查找窗口的窗口句柄永远不会发送到EnumWindowsProc。
德尔福7在Vista上运行(当然有管理员priviliges)。你确定Delphi 6没有运行吗? –
德尔福6在Vista上运行,并没有管理员权限 –
如果你在%PROGRAMFILES%以外的地方安装它,Delphi 6在Vista上运行良好(甚至没有管理员权限)。 –