0

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

根据MSDN

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

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

[编辑] 好的,我觉得这个属性已经死了,因为我无法在仅包含带有 Sub Main 的标准 bas 模块的简单项目中实现它。此外,关于此属性的最后(最新鲜)在线评论大约有 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 上进行了测试,进程在所有这些设备中都是可见的。

[编辑]我以不同的形式重新提出这个问题,我已经得到了答案,所以这是我的问题的答案

4

3 回答 3

0

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

TaskVisible 属性

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

于 2013-01-06T18:03:22.760 回答
0

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

尝试在设计时设置它。

于 2013-01-19T08:35:15.887 回答
0

I have used App.TaskVisible=False very successfully in a standard VB6 EXE - I set it in the start-up module (Sub Main), after I've done some preliminary checks. The EXE - which, incidentally, does indeed have a user interface/main form - does not display in the applications column in Task Manager but is still listed under processes. This is fine, as I just want to make it that bit more difficult for users to terminate the application. There's nothing sinister in this requirement, it is simply a messaging application - if it's stopped, the messages stop.

于 2013-03-01T11:32:10.857 回答