是否有在第三方应用程序中禁用弹出菜单项的黑客攻击,例如视觉工作室?

时间:2011-03-19 23:46:28

标签: windows visual-studio

这个问题的动机是我对Visual Studio gui的不满,但它可能有更广泛的含义。

假设我右键单击当前文档的文件名选项卡。我将看到一个弹出菜单,其中包含我可能会使用的有用选项,例如关闭此文档,以及一些可能彻头彻尾的有害概念,例如关闭所有文档,但这样做。如果我不小心点击了错误的那个,我将不得不撤消损坏,这将很烦人。

好吧,我明白我不能指望微软(更不用说小公司)为每一个菜单项添加自定义。但是,也许有一个Windows hack可以允许我禁用这些菜单项和用户界面的其他元素?让我们说“关闭除此之外的所有内容”可以通过其不同的名称来检测,因此如果底层组件以某种方式可以进行黑客攻击,也许可以在显示此类文本时始终禁用它,除非用户跳过箍来撤消限制。

那么这些东西怎么运作?我们在多大程度上可以搞乱第三方Windows应用程序用户界面?什么可以做,不能做什么?

3 个答案:

答案 0 :(得分:2)

  

好吧,所以我明白我做不到   期待微软(更不用说了   小公司)补充   为每一个人定制   菜单项

嗯,他们做到了。无论如何,它们都像微软一样,在设计良好的用户界面中很常见,就像在Visual Studio中那样。您可以使用工具+自定义,命令选项卡,上下文菜单单选按钮,“其他上下文菜单|简易MDI文档窗口”。删除/添加您喜欢/喜欢的内容。

点击一下,看看你能做些什么。不要害怕菜单。

如果该功能不存在,则可以在菜单存储为本机资源时进行破解。文件+打开+文件,选择.exe并浏览菜单节点。这些天不再使用原生菜单并不常见。也有很多麻烦的机会。使用SetWindowsHookEx()设置的钩子来破解程序是另一个长距离镜头。

答案 1 :(得分:0)

Visual Studio(您尚未说明哪个版本)具有可扩展性SDK以及加载加载项和扩展程序的功能,这可能会让您这样做。

答案 2 :(得分:0)

我给你编写的代码,用于禁用MDI子窗体中MDI Parent的任何上下文菜单。 这是一段疯狂的代码,但它运行正常。

这是儿童表格:

private void Form2_Load(object sender, EventArgs e)
{
    MDI.MDIParent1.ActiveForm.MainMenuStrip.Items[0].ToolTipText = "Disable";
}

这是MID父代码:

定时器间隔为1000毫秒,并在MDIParent1_Load上启用。 fileMenu是MDI父级中的菜单条 aboutToolStripMenuItem是MDI父级中的上下文菜单。

private void timer1_Tick(object sender, EventArgs e)
{
    if (fileMenu.ToolTipText == "Disable")
    {
        aboutToolStripMenuItem.Enabled = false;
    }
}