当程序在调试器中运行时按 F12 应该会中断执行并打开调试器。这在 Windows XP(用 D2007 和 XE2 测试)上正常工作,但在 Windows 7 和 8 上失败(也用 D2007 和 XE2 测试;在三台计算机上测试)。
注册表设置正确(Windows 7):
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug] "UserDebuggerHotKey"=dword:00000000 "Debugger"="\"C:\Windows\system32\vsjitdebugger.exe\" -p %ld -e %ld"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug\AutoExclusionList] "DWM.exe"=dword:00000001
XP 安装还设置了“Auto”=“1”并省略了 AutoExclusionList,但在 Windows 7 机器上复制这些更改没有任何效果。
奇怪的是,Delphi 似乎意识到 F12 被按下了。当我在 Windows 7 机器上的调试器中运行程序并按 F12 时,Delphi 中的事件日志窗口显示
线程开始:线程 ID:4080。处理 Project73.exe (7108)
线程退出:线程 ID:4080。处理 Project73.exe (7108)
只是没有触发断点并且应用程序继续运行。
有人知道如何在 Windows 7/8 中恢复此功能吗?