【问题标题】:Recovering "lost" D2010 IDEs恢复“丢失”的 D2010 IDE
【发布时间】:2011-06-12 04:01:16
【问题描述】:

我在 Windows 7 上遇到了资源管理器崩溃(启用了 Aero 铃声和口哨功能)和(在资源管理器重新启动后)所有正在运行的 IDE 实例都无法再通过 Windows UI 访问,除了一个实例。进程仍然在这里,所以我想要我未保存的更改。我该怎么办?

不要建议内存转储,我将其作为最新的手段,因为从转储中恢复源代码需要大量的手动工作。

已经将 WM_ACTIVATE 消息发送到属于bds.exe 的所有顶级窗口 - 没有成功,除了几个“文件已更改,重新加载?”提示。


通过向所有进程窗口发送 WM_KEYDOWN 和 WM_KEYUP 解决。

删除此问题或保留更多想法? (老实说,我只遇到过一次这样的问题,不确定解决方案是否对任何人有用)。但是永远不要在所有窗口上使用 ShowWindow,BDS 有大量的窗口应该被隐藏。


可能的间接原因:我通过 Aero Peek 缩略图将文件从资源管理器拖到项目管理器上,其中一项操作以文件图标形式的奇怪工件结束,该文件图标永久卡在项目管理器所在的桌面上。

【问题讨论】:

  • 您不定期保存源代码编辑(我大约每 2-3 分钟保存一次)吗?
  • @Misha,作为旁注:作为此事件的后果,我编写了一个 OTA 向导来执行定时自动保存。这似乎是[超]经常保存混乱的修订历史。 (每 2 分钟保存一次。每个工作日可修改 240 次)
  • @user759588:每次编译/运行时都有一个自动保存选项(工具菜单>选项>环境选项。)这可能值得打开吗?
  • “每次编译/运行时都有一个自动保存选项” - 我猜编写 Delphi IDE 代码的人知道它的稳定性,所以他们添加了这个方便的功能:) :)跨度>
  • 只是一个想法:资源管理器是否在崩溃后自动(重新)启动?如果没有,请尝试按 control+R 键查看运行框并输入 explorer.exe

标签: delphi delphi-2010


【解决方案1】:

您认为 IDE 是否仍在运行且响应迅速?

您能否将按键 Ctrl-Shift-S 从另一个应用程序发送到 Delphi 以执行文件,全部保存命令?

汤姆

【讨论】:

  • 正在运行 - 是的。负责任 - IDE 没有发生任何事情,所以应该是,但我必须检查以确保。关于击键 - 我应该发送到哪些窗口(有很多)?
  • 属于bds.exe 的所有 380(!) 个窗口都有响应,因此所有实例都处于活动状态且健康。
  • 这种方式有效,不知道哪个窗口处理了 Ctrl+Shift+S,但调用了保存对话框。我希望我从一开始就这样做,因为尝试各种功能和消息会使两个实例崩溃。
  • Ctrl-Shft-S 在我的运动神经元中根深蒂固。我什至不经意间也经常在其他应用程序中使用它,并且经常对发生的事情感到惊讶......
  • 我80年代初开始用ZX81,机器经常“坦克”,所以从那时起我就经常、非常频繁地存钱,这是我从未离开过的习惯......
【解决方案2】:

转到任务管理器。如果资源管理器确实关闭,您可以使用 CTRL+ALT+DEL 进入任务管理器,如果您还有任务栏,则可以右键单击在任务栏上选择“启动任务管理器”。您将在应用程序窗格中看到所有应用程序。选择您想要的,然后按“切换到”。或者右键单击您的应用程序并选择“切换到”。

【讨论】:

  • 为什么不加评论就投反对票?如果您不再有任务栏或任务栏不再显示您的应用程序,我在这里描述的内容会非常有效。
  • +1,虽然这可能对 OP 有效,也可能无效(探索者崩溃有时会做一些奇怪的事情),但这是一个可能的答案。
  • @Cosmin Prund,“不再可通过 Windows UI 访问”。这是问题的关键。
  • 作为旁注,如果您的资源管理器仍在运行,只需按 CTRL+SHIFT+ESC 即可进入任务管理器。在 win32/com/thread 编程期间,我经常设法让任务栏无响应,但这仍然有效。
  • @user,您问题的另一个同样重要的部分是"I had explorer crash on Windows 7",我的解决方案适用于资源管理器崩溃。 "IDE instances are no longer accessible via Windows UI" 是模棱两可的,因为您毕竟使用的是 Windows UI - 还是您从 Linux 笔记本电脑发出 WM_KEYDOWN 和 WM_KEYUP 消息?您应该借此机会用评论来解释这一点,如果那是“您的风格”,则包括反对票,但没有评论的反对票是没有用的。
猜你喜欢
  • 2017-04-14
  • 1970-01-01
  • 2021-03-09
  • 1970-01-01
  • 1970-01-01
  • 2019-03-28
  • 2015-08-19
  • 2021-09-15
  • 1970-01-01
相关资源
最近更新 更多