c# 控制台程序调用直接运行一个新程序和隐藏自己的窗体(转)

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

    }


}
posted @ 2008-07-22 04:21  zagelover  阅读(2389)  评论(1编辑  收藏  举报