Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Сценарии для Windows

Модерирует : KLASS, IFkO

 Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

Открыть новую тему     Написать ответ в эту тему

westlife



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Переделал функции чутка, чтобы была понятна суть процессов этих.
У меня работают обе, с любым количеством процессов нотпада. но лучше знать наверно какой именно нотпад.
 
Первая  

Код:
 
function Set-WindowShow
{
    param
    (
        # Идентификатор окна
        [Parameter(ValueFromPipeline, ValueFromPipelineByPropertyName)]
        [ValidateScript( {$_ -ne 0} )]
        [Alias('MainWindowHandle')]
        [System.IntPtr]
        $hWnd,
 
        # Состояние окна
        [Parameter(Mandatory)]
        [CmdShow]
        $CmdShow
    )
 
    enum CmdShow
    {
        HIDE
        SHOWNORMAL
        SHOWMINIMIZED
        MAXIMIZE
        SHOWMAXIMIZED
        SHOWNOACTIVATE
        SHOW
        MINIMIZE
        SHOWMINNOACTIVE
        SHOWNA
        RESTORE
        SHOWDEFAULT
        FORCEMINIMIZE
    }
 
    if ( -not ( 'WindowShow' -as [type] ))
    {
        Add-Type @'
using System;
using System.Runtime.InteropServices;
 
public class WindowShow
{
    [DllImport("user32.dll")]
    [return: MarshalAs(UnmanagedType.Bool)]
        public static extern bool ShowWindowAsync(IntPtr hWnd, int nCmdShow);
}
'@
    }
 
    if ([WindowShow]::ShowWindowAsync($hWnd, $CmdShow))
    {
        $CmdShow
    }
}
 
$MainWindowHandle = (Get-Process -Name notepad).Where({ $_.MainWindowHandle -ne 0 },'First',1).MainWindowHandle
 
$MainWindowHandle | Set-WindowShow -CmdShow HIDE  
$MainWindowHandle | Set-WindowShow -CmdShow RESTORE  
 
$MainWindowHandle  
 
 

 
 
Вторая

Код:
 
 
function WindowState
{
    param(
        [Parameter( ValueFromPipeline = $true, Mandatory = $true,  Position = 0 )]
        [ValidateScript({ $_ -ne 0 })]
        [System.IntPtr] $MainWindowHandle
       ,
        [ValidateSet('FORCEMINIMIZE', 'HIDE', 'MAXIMIZE', 'MINIMIZE', 'RESTORE',
                    'SHOW', 'SHOWDEFAULT', 'SHOWMAXIMIZED', 'SHOWMINIMIZED',
                    'SHOWMINNOACTIVE', 'SHOWNA', 'SHOWNOACTIVATE', 'SHOWNORMAL')]
        [String] $State = 'SHOW'
    )
 
    $WindowStates = @{
        'FORCEMINIMIZE'   = 11
        'HIDE'            = 0
        'MAXIMIZE'        = 3
        'MINIMIZE'        = 6
        'RESTORE'         = 9
        'SHOW'            = 5
        'SHOWDEFAULT'     = 10
        'SHOWMAXIMIZED'   = 3
        'SHOWMINIMIZED'   = 2
        'SHOWMINNOACTIVE' = 7
        'SHOWNA'          = 8
        'SHOWNOACTIVATE'  = 4
        'SHOWNORMAL'      = 1
    }
    if ( -not ( "Win32Functions.Win32ShowWindowAsync" -as [Type] ))
    {
        Add-Type -MemberDefinition @"
[DllImport("user32.dll")]
    public static extern bool ShowWindowAsync(IntPtr hWnd, int nCmdShow);
"@  -Namespace 'Win32Functions' -Name 'Win32ShowWindowAsync'
    }
    [Win32Functions.Win32ShowWindowAsync]::ShowWindowAsync($MainWindowHandle , $WindowStates[$State]) > $null
}
 
 
$MainWindowHandle = (Get-Process -Name notepad).Where({ $_.MainWindowHandle -ne 0 },'First',1).MainWindowHandle
 
 
WindowState $MainWindowHandle -State HIDE
WindowState $MainWindowHandle -State SHOWNORMAL
 
$MainWindowHandle | WindowState -State HIDE
$MainWindowHandle | WindowState -State SHOWNORMAL
 
$MainWindowHandle
 
 

 

Всего записей: 1390 | Зарегистр. 12-12-2006 | Отправлено: 01:23 09-04-2019
Открыть новую тему     Написать ответ в эту тему

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Сценарии для Windows


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru