您的位置:首页 > 编程语言 > C#

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();

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐