Форум программистов, компьютерный форум, киберфорум
PowerShell
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
 Аватар для DeCrinal
64 / 40 / 31
Регистрация: 15.04.2017
Сообщений: 176

PowerShell не видит процесс

21.01.2025, 21:36. Показов 1740. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Господа! Столкнулся с проблемой: на винде при использовании двух мониторов одно приложение (игруха-настолка) сворачивается при нажатии на другой экран. Поднадоела эта тема и решил взяться за скрипт авто-открытия (хотя хотелось бы не сокрытия) окна игры. Вместе с gpt написал что-то похоже, но так сам с виндой не работал почти (и тем более не администрировал) и powershell первый раз в жизни вижу, да и после работы основной еще и с чем-то новым разбираться - утомительно уж слишком.. В общем, подскажите, как поправить, пожалуйста, если не сложно.
PowerShell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
$appTitle = Get-Process -Name "CatanUniverse"
if ($process) {
    Write-Host "Process not found: $($process.Name)"
} else {
    Write-Host "Process not found."
}
 
$checkInterval = 500
 
function Get-WindowHandle {
    param([string]$title)
    Add-Type @"
    using System;
    using System.Runtime.InteropServices;
 
    public class User32 {
        [DllImport("user32.dll", SetLastError = true)]
        public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
 
        [DllImport("user32.dll")]
        [return: MarshalAs(UnmanagedType.Bool)]
        public static extern bool IsIconic(IntPtr hWnd);
 
        [DllImport("user32.dll", SetLastError = true)]
        public static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
    }
"@
 
    # Получаем дескриптор окна
    return [User32]::FindWindow($null, $title)
}
 
# Проверяем состояние окна и разворачиваем его
function Restore-MinimizedWindow {
    param([IntPtr]$windowHandle)
 
    if ([User32]::IsIconic($windowHandle)) {
        Write-Host "The window is hidden. Try to unhide this shit..."
        # Unhide window (SW_RESTORE = 9)
        [User32]::ShowWindow($windowHandle, 9)
    } else {
        Write-Host "The window is active."
    }
}
 
Write-Host "Starting and watching application: $appTitle"
while ($true) {
    $windowHandle = Get-WindowHandle -title $appTitle
 
    if ($windowHandle -ne [IntPtr]::Zero) {
        Restore-MinimizedWindow -windowHandle $windowHandle
    } else {
        Write-Host "An application with whis name've not been found."
    }
 
    Start-Sleep -Milliseconds $checkInterval
}
Ругается на отсутствие соответствующего приложения. Скрипт по детекту приложений (ниже)
PowerShell
1
Get-Process | Where-Object { $_.MainWindowTitle } | Select-Object Name, MainWindowTitle
выдал:
Name MainWindowTitle
------ ------------------
....... .......................
CatanUniverse CatanUniverse

Пробовал и "*CatanUniverse*" - тоже не находит.
P.S. За производительностью не гонюсь, пусть хоть раз в 10мс проверяет
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.01.2025, 21:36
Ответы с готовыми решениями:

Как запустить процесс, который будет запускать файл сценария PowerShell от имени другого пользователя?
подскажите пожалуйста как мне запустить процесс, который будет ранить скрит под другим пользователем $credential = Get-Credential ...

процесс PowerShell грузит процессор
Здравствуйте. Примерно раз в 5-10 мин появляется процесс PowerShell, нагружающий процессор, попытки его удалить ни к чему не приводят.

Процесс PowerShell.exe грузит процессор
Как понятно из заголовка,процесс PowerShell.exe грузит процессор на 80-100%, служба Центр обновления Window запускается только в ручном...

2
 Аватар для alhaos
1929 / 545 / 154
Регистрация: 20.02.2019
Сообщений: 2,664
Записей в блоге: 65
22.01.2025, 18:29
Лучший ответ Сообщение было отмечено DeCrinal как решение

Решение

DeCrinal,
PowerShell
1
2
3
4
5
6
$processName = "Notepad"
 
$null = [User32]::ShowWindow(
    (Get-Process -Name $processName).MainWindowHandle,
    9
)
Добавлено через 2 минуты
PowerShell
1
2
3
4
5
6
7
$processName = "Notepad"
while ($true) {
    $null = [User32]::ShowWindow(
    (Get-Process -Name $processName -ea Stop).MainWindowHandle,
        9
    ) 
}
Добавлено через 7 секунд
точнее

Добавлено через 1 минуту
PowerShell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Add-Type @"
using System;
using System.Runtime.InteropServices;
 
public class User32 {
    [DllImport("user32.dll", SetLastError = true)]
    public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
 
    [DllImport("user32.dll")]
    [return: MarshalAs(UnmanagedType.Bool)]
    public static extern bool IsIconic(IntPtr hWnd);
 
    [DllImport("user32.dll", SetLastError = true)]
    public static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
}
"@
 
$processName = "Notepad"
while ($true) {
    $null = [User32]::ShowWindow(
    (Get-Process -Name $processName -ea Stop).MainWindowHandle,
        9
    ) 
}
если уж совсем точно )))
1
 Аватар для DeCrinal
64 / 40 / 31
Регистрация: 15.04.2017
Сообщений: 176
22.01.2025, 23:22  [ТС]
Завелось! Спасибо огромное)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.01.2025, 23:22
Помогаю со студенческими работами здесь

Процесс Powershell.exe постоянно грузит процессор на 30-40%
Попросили посмотреть ноутбук с жалобами на подвисания. Из явных - процесс Powershell постоянно грузит процессор на 30-40%. Антивирусник...

PowerShell скрипт не видит переменную androidSDK заданную вручную
Я задаю переменную среды ANDROID в Windows7. Как я делаю Пуск - Панель управления - Система - Дополнительные параметры системы - Переменные...

Setpgid не видит процесс
#include <sys/signal.h> #include <stdio.h> #include <cstdlib> #include <sys/types.h> #include <unistd.h> #include <string.h> ...

Сторонний процесс не видит мьютекс
Добрый день. Мой процесс, используя манифест, запускается "как от Администратора". Затем он активирует встроенную админку и запускает...

Win 7 x64. GetProcessesByName не видит запущенный процесс
Добрый день. Имею Виндовс 7 64х битный. В списке запущенных процессов отображается процесс с именем someprocess.exe *32 Я хочу...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru