2013-11-07 2 views
0

Как Flash FlashBar значок внешнего приложения? Я попробовал FlashWindowEx и проверил его onpInvoke.net, а также http://pietschsoft.com/post/2009/01/26/CSharp-Flash-Window-in-Taskbar-via-Win32-FlashWindowEx, но это касается только мигания текущей формы (этого). Однако я не могу сделать Flash Flash внешним.Вспышка внешнего окна

У меня есть hWnd (IntPtr), а также process.MainWindowHandle для внешнего приложения, которое я хочу выполнить, но я не знаю, как использовать FlashWindowEx для запуска внешнего окна.

ответ

0

Когда вы звоните FlashWindowEx, просто передайте MainWindowHandle другого приложения, которое хотите выполнить. Например, вы можете использовать функцию FlashOtherWindow, показанную ниже, проходящую в ручке.

[DllImport("user32.dll")] 
    [return: MarshalAs(UnmanagedType.Bool)] 
    static extern bool FlashWindowEx(ref FLASHWINFO pwfi); 

    [StructLayout(LayoutKind.Sequential)] 
    public struct FLASHWINFO 
    { 
     public UInt32 cbSize; 
     public IntPtr hwnd; 
     public UInt32 dwFlags; 
     public UInt32 uCount; 
     public UInt32 dwTimeout; 
    } 

    internal static void FlashOtherWindow(IntPtr windowHandle) 
    { 
     FLASHWINFO fInfo = new FLASHWINFO(); 
     fInfo.cbSize = Convert.ToUInt32(Marshal.SizeOf(fInfo)); 
     fInfo.dwFlags = 2; 
     fInfo.dwTimeout = 0; 
     fInfo.hwnd = windowHandle; 
     fInfo.uCount = 3; 

     FlashWindowEx(ref fInfo); 
    } 

    internal static void FlashApplicationWindow(string application) 
    { 
     foreach (Process process in Process.GetProcessesByName(application)) 
      FlashOtherWindow(process.MainWindowHandle); 
    } 

Я также включил FlashApplicationWindow, который принимает имя приложения. Вы можете использовать его так:

FlashApplicationWindow("firefox"); 
Смежные вопросы