Kra*_*atz 19 c# invisible console-application
我正在为我的公共图书馆开发一个控制台应用程序作为学校项目.控制台应用程序将在用户登录后立即运行并执行一些后台工作.
问题是,我不希望控制台应用程序真正出现.我需要它隐形.我需要的最后一件事就是投诉,因为有些人因为CMD窗口打开和关闭而感到害怕,除了图书馆希望它尽可能不可见.
我试着按照这个帖子中的代码:http: //social.msdn.microsoft.com/Forums/en-US/csharpgeneral/thread/ea8b0fd5-a660-46f9-9dcb-d525cc22dcbd
但无济于事,我仍然可以看到控制台应用程序在完成所有工作后弹出和关闭.
有没有更好的方法来阻止控制台出现?谢谢.
Jos*_*osh 37
最好的办法就是不要将它编译为控制台应用程序!将其编译为Windows EXE,不会显示任何控制台.然后,您可以在Main方法中执行任何操作,而无需显示UI.
但无论如何,如果你必须隐藏/显示控制台窗口,我将避免使用FindWindow执行此任务,因为有一个更可靠的API:GetConsoleWindow.这将为您提供控制台窗口的HWND,您可以尝试将其传递给ShowWindow.
Sea*_*ock 16
正如Josh Einstein建议您可以使用ShowWindow Api隐藏窗口.
这是一个例子:
using System.Runtime.InteropServices
class CommandLine
{
[DllImport("user32.dll")]
static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
[DllImport("Kernel32")]
private static extern IntPtr GetConsoleWindow();
const int SW_HIDE=0;
const int SW_SHOW=5;
static void Main(string[] args)
{
IntPtr hwnd;
hwnd=GetConsoleWindow();
ShowWindow(hwnd,SW_HIDE);
//Your logic goes here
}
}
Run Code Online (Sandbox Code Playgroud)
我不确定这个代码,因为我还没有测试过.如果您遇到任何问题,请告诉我.
归档时间: |
|
查看次数: |
33128 次 |
最近记录: |