utorok, 31 január 2012 14:24 Written by 3056 times
Rate this item
(1 Vote)

C# - Ako môžem aktivovať externe okno

Nasledujúci kód nám ukazuje ako môžeme jednoducho aktivovať okno externého programu. V prvom kroku musíme získať handle na okno externej aplikácie. Získame ho napr. tak, že prehľadáme všetky procesy  a ak nájdeme požadovaný proces, tak použitím MainWindowHandle získame handle. Ak už máme získany handle, dáme okno do popredia použitím SetForegroundWindow API , následne použitím ShowWindow API zobrazíme okno.

Kód v c#

 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Diagnostics;
using System.Runtime.InteropServices;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        [DllImportAttribute("User32.dll")]
        private static extern int ShowWindow(int hwnd, int nCmdShow);
        [DllImport("User32.dll")]
        public static extern Int32 SetForegroundWindow(int hWnd);


        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            var listprocess = Process.GetProcesses();

            foreach (var p in listprocess)
            {
                if (p.ProcessName == "notepad")
                {                    
                    var hWnd = p.MainWindowHandle;
                    SetForegroundWindow((int)hWnd);     
                    ShowWindow((int)hWnd, 1);
                    this.TopMost = false;
                }
            }
        }
      
    }
}

 

Last modified on pondelok, 19 december 2016 21:27
Ing.Jaroslav Vadel

Som zakladateľom www.projectik.eu.

Hrám sa na programátora, ktorý ovláda:

c#,cpp,java,unity3d,php,html,NI testand,NI Vision Builder,Cognex In-Sight,NI LabView

"Naprogramovať program, ktorý funguje vie každy. Ale to, že program funguje ešte neznamena, že je napísany správne "

Website: www.projectik.eu