Powershell, закрыть активное окно

#windows #powershell #key-bindings

Вопрос:

Я нашел фрагмент, который я изменил, чтобы найти активное окно и закрыть его с помощью скрипта ps1. Моя цель — сделать привязку моего ключа такой же, как в Linux, используя hotkeyD.

У меня есть три проблемы со сценарием. Во-первых, он не закрывает активное окно проводника, если я просматриваю файлы. Как бы мне это сделать?

Вторая проблема заключается в следующем. Я бы хотел, чтобы winfetch выполнялся в терминале, как только я его запускаю. Однако, если я добавлю его в свой профиль powershell. Из-за этого выполнение скрипта занимает больше времени. Как я могу заставить скрипты пропускать код, который у меня есть в моем профиле powershell в документах?

В-третьих, скорость. Сценарий не выполняется мгновенно. Как будто нажатие alt F4 было бы. Для его активации требуется секунда или две. Как бы мне ускорить его?

Спасибо. С нетерпением ждем ответов. Вот сценарий.

 [CmdletBinding()]            
Param(            
)            
Add-Type @"
  using System;
  using System.Runtime.InteropServices;
  public class UserWindows {
    [DllImport("user32.dll")]
    public static extern IntPtr GetForegroundWindow();
}
"@            
try {            
$ActiveHandle = [UserWindows]::GetForegroundWindow()
$Process = Get-Process | ? {$_.MainWindowHandle -eq $activeHandle}
$Process | Select ProcessName, @{Name="AppTitle";Expression= {($_.CloseMainWindow())}}
} catch {            
 Write-Error "Failed to get active Window details. More Info: $_"            
}
exit
 

Комментарии:

1. Вот ответ на ваш 1-й вопрос. Длительное выполнение может быть вызвано антивирусной системой.

2. К сожалению, нет. Закрытие Manlwarebytes занимает столько же времени. Вопрос первый. Скрипт не закрывает файловую систему Windows. Это закроет все остальное, но.

Ответ №1:

Этот тип задачи (т.Е. Создать горячую клавишу, которая закрывает активное окно) выглядит как задание, более подходящее для AutoHotkey, чем Powershell.


Например, это можно сделать в AutoHotkey с помощью:

 #d::WinClose A ;remaps Super d to a "close the Active Window" command
 

Если вам нужна дополнительная информация о том, как настроить AHK или как, в частности, работает этот скрипт, не стесняйтесь обращаться к lmk.

Комментарии:

1. Спасибо, но я хочу использовать hotkeyD. Проблема с AHK заключается в том, что большую часть времени. Оно обнаружено античитом игр. Я использую свой компьютер с Windows для игр.

2. Не могли бы вы пояснить, что вы имеете в виду hotkeyD ?

3. github.com/HikariKnight/hotkeyD

Ответ №2:

Проект github был обновлен, чтобы включить функцию закрытия окна. Кажется, эмулируя клавиши alt F4.