Показать сообщение отдельно

  #15  
Старый 22.03.2010, 17:18
SpangeBoB
Познавший АНТИЧАТ
Регистрация: 12.07.2008
Сообщений: 1,705
С нами: 9384806

Репутация: 1350


По умолчанию

Известно,что PowerShell позволяет использовать WinApi функции в своих скриптах.Один из MVP Shay Levi продемонстировал ,как скрыть ярлыки рабочего стола с помощью функции ShowWindow ( http://blogs.microsoft.co.il/blogs/scriptfanatic/archive/2009/05/11/show-or-hide-your-desktop-icons-with-powershell.aspx).

Немного добавив в его скрипт ,мы можем скрывать и другие окна.Я думаю это полезный пример и просто совет на будущее.

#requires -Version 2.0 - указывает ,что требуется версия PowerShell 2.0.
Цитата:
#requires -Version 2.0

#Задаем процесс,окно которого будем скрывать.
param ([string]$pname = 'calc')

#Указываем какие WinApi функции будем импортировать,хороший сайт http://www.pinvoke.net/
$signature = @"
[DllImport("user32.dll")]
public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
[DllImport("user32.dll")]
public static extern bool ShowWindow(IntPtr hWnd,int nCmdShow);
"@

$win = Add-Type -MemberDefinition $signature -Name Window `
-Namespace UseWinAPI -passThru

#Получаем Handle окна процесса.
$hWnd = (Get-Process -Name $pname).MainWindowHandle

#Скрываем окно.
Function Hide-Window { $null = $win::ShowWindow($hWnd,0) }
#Восстанавливаем скрытое нами окно.
Function Show-Window { $null = $win::ShowWindow($hWnd,5) }

Последний раз редактировалось SpangeBoB; 22.03.2010 в 17:30..
 
Ответить с цитированием