Прозрачность чужого окна - C#

Узнай цену своей работы

Формулировка задачи:

Если не ошибаюсь на API есть возможность изменить прозрачность окна стороннего приложения. Как это можно реализовать на C# ? Заранее благодарен.

Решение задачи: «Прозрачность чужого окна»

textual
Листинг программы
using System;
using System.Runtime.InteropServices;
 
 
class Program
{
    [DllImport("user32.dll")]
    public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
 
    [DllImport("user32.dll")]
    static extern bool SetLayeredWindowAttributes(IntPtr hwnd, uint crKey, byte bAlpha, uint dwFlags);
 
    [DllImport("user32.dll")]
    public static extern long SetWindowLong(IntPtr hWnd, int nIndex, long dwNewLong);
 
    [DllImport("user32.dll")]
    public static extern long GetWindowLong(IntPtr hWnd, int nIndex);
 
    static void Main(string[] args)
    {
        const uint LWA_ALPHA = 0x00000002;
        const uint LWA_COLORKEY = 0x00000001;
        const int GWL_EXSTYLE = -20;
        const int GWL_HINSTANCE = -6;
        const int GWL_ID = -12;
        const int GWL_STYLE = -16;
        const int GWL_USERDATA = -21;
        const int GWL_WNDPROC = -4;
        const long WS_EX_LAYERED = 524288;
        IntPtr hWnd = FindWindow(null, "API");  //Ищем окно с заголовком API
        long dwStyle = GetWindowLong(hWnd, GWL_STYLE);
        SetWindowLong(hWnd, GWL_EXSTYLE, GetWindowLong(hWnd, GWL_EXSTYLE) | WS_EX_LAYERED);
        SetLayeredWindowAttributes(hWnd, 0, 128, LWA_ALPHA);
        Console.ReadKey(true);
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.357 из 5
Похожие ответы