windows - Powershell形成全窗玻璃透明度

标签 windows forms powershell

我正在尝试使 powershell 窗口窗体全部透明,因为我能够使 aero 样式控件正常工作并隐藏 powershell 控制台窗口,这是唯一缺少的东西。 我试图在 powershell 中实现的教程是这样的: http://blogs.msdn.com/b/tims/archive/2006/04/18/578637.aspx但它在 C# 中,有帮助吗?

最佳答案

您可以使用 C# 示例本身,方法是在 PowerShell 中编译/加载它。样本(未经测试):

$def = @"
    [StructLayout(LayoutKind.Sequential)]
    public struct MARGINS
    {
       public int left; 
       public int right; 
       public int top; 
       public int bottom; 
    }

    [DllImport("dwmapi.dll")]
    public static extern bool DwmIsCompositionEnabled();

    [DllImport("dwmapi.dll")]
    public static extern void DwmExtendFrameIntoClientArea(IntPtr hwnd, ref MARGINS margins);
"@

#Load/Compile C# P/Invoke code
Add-Type -Namespace stackoverflow -Name Aero -MemberDefinition $def

#Check if Aero is enabled on this computer
If([stackoverflow.Aero]::DwmIsCompositionEnabled()) {

    #Get mainwindowhandle for powershell console process
    $hwnd = (Get-Process -Id $pid).MainWindowHandle

    #Define margins = how much extra space to make transparent
    $margins = New-Object -TypeName 'stackoverflow.Aero+MARGINS'
    $margins.top = 50
    $margins.bottom = 0
    $margins.left = 0
    $margins.right = 0

    #Make powershell-console partly aero.
    [stackoverflow.Aero]::DwmExtendFrameIntoClientArea($hwnd, $margins)
}

关于windows - Powershell形成全窗玻璃透明度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28651137/

相关文章:

c++ - gsl_complex 导致内存溢出

python - 将 Python 的 os.environ 重置为命令 shell 的默认值的正确方法

html - 将文本区域视为输入字段?

php - Symfony 表单 |动态集合类型值

powershell - 在 PowerShell 中区分不同类型的哈希表?

svn - 如何使用PowerShell递归删除所有SVN文件

windows - Windows 上的 Spark-shell 错误 "Illegal character in path at index 32"

c++ - 我想通过windows api制作一个时钟(GUI程序),但是时钟上的文字没有改变?

javascript - Angular Reactive Form 克隆值

svn - 获取 SVN 存储库版本号