c# 控制台程序调用直接运行一个新程序和隐藏自己的窗体(转)
2008-07-22 04:21
1011 查看
using System;
using System.Runtime.InteropServices;
using System.Threading;
class TestClass
{
static void Main(string[] args)
{
new TestClass();
}
[DllImport("User32.dll", EntryPoint = "FindWindow")]
private static extern IntPtr FindWindow(string lpClassName,string lpWindowName);
[DllImport("user32.dll", EntryPoint = "FindWindowEx")] //找子窗体
private static extern IntPtr FindWindowEx(IntPtr hwndParent,IntPtr hwndChildAfter, string lpszClass, string lpszWindow);
[DllImport("User32.dll", EntryPoint = "SendMessage")] //用于发送信息给窗体
private static extern int SendMessage(IntPtr hWnd,int Msg, IntPtr wParam, string lParam);
[DllImport("User32.dll", EntryPoint = "ShowWindow")] //
private static extern bool ShowWindow(IntPtr hWnd, int type);
public TestClass()
{
System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.FileName = "NOTEPAD.EXE";//打开一个记事本程序
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardInput = true;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.RedirectStandardError = true;
p.StartInfo.CreateNoWindow = true;
p.Start();
p.Close();
Console.Title = "1111";
IntPtr ParenthWnd = new IntPtr(0);
IntPtr et = new IntPtr(0);
ParenthWnd = FindWindow(null, "1111");
if (!ParenthWnd.Equals(IntPtr.Zero))
Console.WriteLine("show");
else
Console.WriteLine("error");
ShowWindow(ParenthWnd, 0);//隐藏本dos窗体
Console.Read();
}
}
using System.Runtime.InteropServices;
using System.Threading;
class TestClass
{
static void Main(string[] args)
{
new TestClass();
}
[DllImport("User32.dll", EntryPoint = "FindWindow")]
private static extern IntPtr FindWindow(string lpClassName,string lpWindowName);
[DllImport("user32.dll", EntryPoint = "FindWindowEx")] //找子窗体
private static extern IntPtr FindWindowEx(IntPtr hwndParent,IntPtr hwndChildAfter, string lpszClass, string lpszWindow);
[DllImport("User32.dll", EntryPoint = "SendMessage")] //用于发送信息给窗体
private static extern int SendMessage(IntPtr hWnd,int Msg, IntPtr wParam, string lParam);
[DllImport("User32.dll", EntryPoint = "ShowWindow")] //
private static extern bool ShowWindow(IntPtr hWnd, int type);
public TestClass()
{
System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.FileName = "NOTEPAD.EXE";//打开一个记事本程序
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardInput = true;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.RedirectStandardError = true;
p.StartInfo.CreateNoWindow = true;
p.Start();
p.Close();
Console.Title = "1111";
IntPtr ParenthWnd = new IntPtr(0);
IntPtr et = new IntPtr(0);
ParenthWnd = FindWindow(null, "1111");
if (!ParenthWnd.Equals(IntPtr.Zero))
Console.WriteLine("show");
else
Console.WriteLine("error");
ShowWindow(ParenthWnd, 0);//隐藏本dos窗体
Console.Read();
}
}
相关文章推荐
- c#控制台程序运行时隐藏窗体方法
- 一个程序在后台运行(即隐藏了窗体), 如果再次点击exe时则显示出已运行的程序窗体。
- C#将exe运行程序嵌入到自己的winform窗体中
- 转:隐藏C#控制台程序运行时的窗口
- C#将exe运行程序嵌入到自己的winform窗体中
- C#将exe运行程序嵌入到自己的winform窗体中
- C# 自己写了一个windows服务程序,运行时错误: 错误 1053: 服务没有及时响应启动或控制请求。(推荐)
- C# 启动控制台程序直接隐藏后台
- 【C#】对异步请求处理程序IHttpAsyncHandler的理解和分享一个易用性封装 【手记】走近科学之为什么明明实现了IEnumerable<T>的类型却不能调用LINQ扩展方法 【手记】手机网页弹出层后屏蔽底层的滑动响应 【手记】ASP.NET提示“未能创建类型”处理 【Web】一个非常简单的移动web消息框 【手记】解决EXCEL跑SQL遇“查询无法运行或数据库表无法打开...”
- C#中调用控制台程序时隐藏控制台窗口
- C#中调用控制台程序时隐藏控制台窗口
- C#:控制台程序调用中间库创建窗体
- C# 调用控制台程序同时隐藏控制台窗口
- .NET调用Windows API隐藏控制台程序运行的窗口,并设置开机自启动
- C# 调用带参数的控制台程序 并将命令行输出的内容实时输出至窗体中的显示控件
- C# 只运行一个实例 ShowWindowAsync 窗体隐藏时失效 解决方案
- 将多个C#控制台程序整合到一个控制台程序中运行
- 自己写的一个mail发送组件,可以直接在程序中调用。
- C#支持控制台调用的窗体程序思路
- C#将exe运行程序嵌入到自己的winform窗体中