【问题标题】:Is App.TaskVisible property applicable to Standard EXE?App.TaskVisible 属性是否适用于标准 EXE?
【发布时间】:2023-03-22 16:55:02
【问题描述】:

好吧,我的问题不是“如何隐藏”我的应用程序表单任务管理器应用程序选项卡,而是只有我可以使用 App.TaskVisible 属性和标准 EXE 来做到这一点?

MSDN

该属性通常用于防止用户关闭 设计为作为后台任务运行的应用程序。多数情况 在这种情况下,TaskVisible 属性与不支持的应用程序一起使用 显示用户界面。

这正是我的情况,但遗憾的是,这个属性对我没有任何作用。 也许它只适用于 ActiveX EXE?还是我错过了什么?

[编辑] 好的,我觉得这个属性已经死了,因为我无法在仅包含带有 Sub Main 的标准 bas 模块的简单项目中将其变为现实。此外,有关此属性的最新(最新鲜)在线 cmets 大约有 10 年历史。

很快,为了隔离这个问题......

  1. 创建新的标准 EXE 项目;
  2. 添加标准模块 (.bas);
  3. 移除 Form1;
  4. 将以下代码添加到您的 Module1;
  5. 从它的位置编译并运行您的 Project1.exe;
Private Declare Sub Sleep Lib "kernel32.dll" (ByVal dwMilliseconds As Long) 私人子主() App.TaskVisible = False 睡眠 4500 结束子

在 Win8、Win7 和 WinXP x64 SP2 上测试过,进程在所有这些设备中都是任务可见的。

[编辑]我以不同的形式重新询问这个问题,我已经得到了答案,所以这里是answer of my question

【问题讨论】:

    标签: syntax vb6


    【解决方案1】:

    这可能有助于回答您的问题(即,您应该访问源代码,即 VB6 文档,而不是某些 .Net 对现实的看法):

    TaskVisible Property

    TaskVisible 属性只能在不显示界面的应用程序中设置为 False,例如不包含或不显示 Form 对象的 ActiveX 组件。当应用程序显示一个界面时,TaskVisible 属性会自动设置为 True。

    【讨论】:

    • 感谢 VB6 文档的链接!恐怕那里的信息模棱两可。我的应用程序也“不显示界面”也没有“包含或显示表单对象”,我应该翻译“比如ActiveX组件”“仅 ActiveX 组件”?
    • 不,它不仅适用于 ActiveX 组件。我认为您需要开始另一个问题,更直接地询问您要完成的工作。
    【解决方案2】:

    我认为您只能在设计时设置它,而不是在运行时设置。

    尝试在设计时设置它。

    【讨论】:

    • 有趣...我想尝试,但我的项目只包含标准的 bas 模块。在设计时我可以在哪里执行此操作?
    • 创建一个空白表格。让它成为你的启动项目。然后设置它,然后调用你的模组。
    • 感谢您的建议,但结果仍然相同。我将编辑我的问题以发布我发现的内容。
    【解决方案3】:

    我在标准的 VB6 EXE 中非常成功地使用了 App.TaskVisible=False - 在我进行了一些初步检查之后,我在启动模块(Sub Main)中设置了它。 EXE - 顺便说一句,确实有一个用户界面/主窗体 - 不会显示在任务管理器的应用程序列中,但仍列在进程下。这很好,因为我只是想让用户更难终止应用程序。这个要求没有什么险恶的,它只是一个消息传递应用程序 - 如果它停止,消息就会停止。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-10-21
      • 1970-01-01
      • 2019-11-13
      • 1970-01-01
      • 2019-07-07
      • 1970-01-01
      • 2011-06-25
      相关资源
      最近更新 更多