首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

200分求棘手問題解決方案.解决办法

2011-12-29 
200分求棘手問題解決方案.問題是這樣的.偶做一個winform程序.生成exe文件.當第一次Run程序的時候啟動程序,

200分求棘手問題解決方案.
問題是這樣的.偶做一個winform程序.生成exe文件.當第一次Run程序的時候啟動程序,當再次Run的時候(上次程序沒有結束),將上次Run的程序的主窗口提到最上層,
    [DllImport( "user32.dll ",   CharSet   =   CharSet.Auto)]
                public   static   extern   bool   BringWindowToTop(IntPtr   hwnd);
           
                ///   <summary>
                ///   應用程式的主要進入點。
                ///   </summary>
                [STAThread]
                static   void   Main()
                {
                        Application.EnableVisualStyles();
                        Application.SetCompatibleTextRenderingDefault(false);
                        Process   inst   =   RunningInstance();
                       
                        if   (inst   ==   null)
                        {
                                Application.Run(new   EIPNotify());
                        }
                        else
                        {
                                BringWindowToTop(inst.MainWindowHandle);
                        }
                       
                        //Application.Run(new   EIPNotify());
                }
                public   static   Process   RunningInstance()
                {
                        Process   current   =   Process.GetCurrentProcess();
                        Process[]   processes   =   Process.GetProcessesByName(current.ProcessName);
                       
                        foreach   (Process   process   in   processes)
                        {
                                if   (process.ProcessName   ==   current.ProcessName   &&   process.Id   !=   current.Id)


                                {
                                        return   process;
                                }
                        }
                        return   null;
                }

我是這麼做的,再次Run的時候,不能把主窗口提到最上層.請高手們看看,問題出在哪.有沒有其他的辦法解決.困擾我一天了.能解決的我願意另開新貼,給200分

[解决办法]
http://www.xrss.cn/Info/11748.Html
[解决办法]
试试这个API

SetForegroundWindow
[解决办法]
BringWindowToTop
VB声明
Declare Function BringWindowToTop Lib "user32 " Alias "BringWindowToTop " (ByVal hwnd As Long) As Long
说明
将指定的窗口带至窗口列表顶部。倘若它部分或全部隐藏于其他窗口下面,则将隐藏的部分完全显示出来。该函数也对弹出式窗口、顶级窗口以及MDI子窗口产生作用
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
参数表
参数 类型及说明
hwnd Long,欲带至顶部的那个窗口的句柄
注解
这个函数也许能随同子窗口使用。函数对一个特定的输入线程来说是“本地的”——换言之,倘若某窗口并非前台应用程序的一部分,那么一旦随同该窗口调用本函数,仍会将窗口带至它自己那个应用程序的窗口列表顶部。但是,不会同时使那个应用成为前台应用程序。这意味着在调用了本函数后,窗口仍会保持隐藏状态

热点排行