C#控制台程序启动后最小化或者隐藏小黑板

最近在项目中用到的,实在没有兴趣去写成Windows Service方式,只能最简单的Console方式了!再在特定条件下启动后能够后台执行或者最小化到任务栏而不会挡在屏幕中央!基本思路是P/Invoke方式:

1 using System;
2  using System.Runtime.InteropServices;
3 using System.Threading;
4
5
6 class TestClass
7 {
8 static void Main(string[] args)
9 {
10 try
11 {
12 new TestClass();
13 }
14 catch (Exception)
15 {
16
17 throw;
18 }
19 }
20
21
22 [DllImport("User32.dll", EntryPoint = "FindWindow")]
23 private static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
24
25 [DllImport("user32.dll", EntryPoint = "FindWindowEx")] //找子窗体
26 private static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string lpszClass, string lpszWindow);
27
28 [DllImport("User32.dll", EntryPoint = "SendMessage")] //用于发送信息给窗体
29 private static extern int SendMessage(IntPtr hWnd, int Msg, IntPtr wParam, string lParam);
30
31 [DllImport("User32.dll", EntryPoint = "ShowWindow")] //
32 private static extern bool ShowWindow(IntPtr hWnd, int type);
33
34 public TestClass()
35 {
36 Console.Title = "MyConsoleApp";
37 IntPtr ParenthWnd = new IntPtr(0);
38 IntPtr et = new IntPtr(0);
39 ParenthWnd = FindWindow(null, "MyConsoleApp");
40
41 ShowWindow(ParenthWnd, 2);//隐藏本dos窗体, 0: 后台执行;1:正常启动;2:最小化到任务栏;3:最大化
42
43 //作自己的事情
44 Thread.Sleep(3000);
45
46 Console.Write("Exit");
47
48 }
49 }

__EOF__

本文作者pccai
本文链接https://www.cnblogs.com/pccai/archive/2011/03/08/1977692.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   pccai  阅读(13312)  评论(2编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示