Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
0 / 0 / 0
Регистрация: 13.01.2022
Сообщений: 8

Как получить параметры активного приложения windows

18.01.2023, 09:58. Показов 2557. Ответов 10

Студворк — интернет-сервис помощи студентам
Здравствуйте,
задача следующая, нужно получить данные открытого приложения по нажатию hotkey.
Т.е. я работаю с word файлом, нажимаю комбинацию клавиш, всплывает окно в котором уже есть путь текущего word файла, я дописываю какие-то примечания в форму и сохраняю по нажатию кнопки.
Сам механизм hotkey я сделал, а вот как получить данные от приложения(операционной системы) не знаю, подскажите, пожалуйста, в каком направлении искать.

Дополнение, приложения могут быть разными не только word.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.01.2023, 09:58
Ответы с готовыми решениями:

Как получить имя активного приложения переднего плана Android?
Использовались getRunningTasks(int) и getRunningAppProcesses(), которые после Android 5.0+ выдают только мое приложение. Также пробовала...

Получить имя активного приложения
Добрый день! Подскажите советом, мне нужно получить имя приложения активного в данный момент (т.е. того, с которым сейчас работает...

Получить параметры стороннего приложения
Всем привет! Мне нужно получить параметры запущенного приложения(стороннего) Заранее спасибо! Пример в диспетчере задач:

10
 Аватар для rim41
1045 / 313 / 78
Регистрация: 16.03.2020
Сообщений: 954
18.01.2023, 10:13
C4H9I, подробнее можно?

Добавлено через 25 секунд
Цитата Сообщение от C4H9I Посмотреть сообщение
я дописываю какие-то примечания в форму
Например?

Добавлено через 38 секунд
Изменяешь путь? Или что? Закрываешь окно? Покупаешь автоматически лицензию?

Добавлено через 18 секунд
Цитата Сообщение от C4H9I Посмотреть сообщение
нужно получить данные открытого приложения
Какие именно данные?
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
18.01.2023, 10:22
Цитата Сообщение от C4H9I Посмотреть сообщение
в каком направлении искать
WinAPI
0
0 / 0 / 0
Регистрация: 13.01.2022
Сообщений: 8
18.01.2023, 10:46  [ТС]
просто примечания для себя, какие-то теги, названия проектов, что бы в последующем искать по ним ...

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


ничего отключать и действий выполнять не нужно.

Добавлено через 2 минуты
Цитата Сообщение от iSmokeJC Посмотреть сообщение
WinAPI
Спасибо, буду смотреть
0
 Аватар для rim41
1045 / 313 / 78
Регистрация: 16.03.2020
Сообщений: 954
18.01.2023, 10:47
Цитата Сообщение от C4H9I Посмотреть сообщение
путь к текущему файлу
os - встроено в питон. Получаешь путь к текущему файлу, куда-то в свою папку сохраняешь (например, в текстовом документе) путь и тэги. Я бы делал .txt файл, которые хранит в первой строчке полный путь к файлу, на всех последующих строчках тэги
0
0 / 0 / 0
Регистрация: 13.01.2022
Сообщений: 8
18.01.2023, 15:27  [ТС]
Цитата Сообщение от iSmokeJC Посмотреть сообщение
WinAPI
С помощью win32gui получилось вытянуть текст текущего(активного) окна, находясь в котором, была нажата комбинация клавиш, также получилось получить tid и pid
Могу определить путь к исполняемому файлу (C:\Program Files (x86)\Microsoft Office\Office14\WINWORD.EXE)
Но вот путь к самому файл test.doc например, не нахожу.

Python
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
import pyautogui as pg
import keyboard
import pywin
from win32gui import GetWindowText, GetForegroundWindow
import win32process
import psutil
 
 
def pop_up_window():
    # Вызов различных всплывающих окон
    # pg.alert("Окно с информацией", "Название окна", button="Текст на кнопке")
    text = pg.prompt("Введите текст: ", "Название окна")
    print(text)
 
 
def winapi_current():
    winapp = GetWindowText(GetForegroundWindow())
    print(winapp)
 
    winfg = GetForegroundWindow()
    print(winfg)
 
    pid = win32process.GetWindowThreadProcessId(winfg)
    active_window_path = psutil.Process(pid[1]).exe()
    print(active_window_path)
 
if __name__ == '__main__':
    while True:
        keyboard.add_hotkey('ctrl+1', pop_up_window)
        keyboard.add_hotkey('ctrl+2', winapi_current)
        keyboard.wait()
0
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,321
18.01.2023, 15:51
имею мнение
для сего питон не обязательно тянуть-это костыль, средств ВБА не хватает?
0
0 / 0 / 0
Регистрация: 13.01.2022
Сообщений: 8
18.01.2023, 16:17  [ТС]
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
для сего питон не обязательно тянуть-это костыль, средств ВБА не хватает?
Кроме офиса нужно, что бы работало и с другими приложениями, блокнот, firefox, chrome? notepad++ и т.д.

поэтому wba не достаточно

Как-то через реестр по pid искать нужно... если кто имеет еще идеи пишите
0
740 / 622 / 151
Регистрация: 04.03.2022
Сообщений: 1,272
18.01.2023, 16:36
C4H9I, общего рецепта точно не найдешь. В случае с офисом - запиши макрос на VBA, потом его из своей программы можешь вызвать. Или посмотреть, что там написано и повторить в своей программе. Браузеры надо смотреть их API. Про блокнот - тут у меня сильные сомнения, что это вообще возможно. В общем - для каждой программы индивидуальный подход
0
0 / 0 / 0
Регистрация: 13.01.2022
Сообщений: 8
18.01.2023, 16:40  [ТС]
Цитата Сообщение от Parramon Посмотреть сообщение
В общем - для каждой программы индивидуальный подход
т.е. шары не будет

Спасибо, буду значит смотреть в эту сторону.
0
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,321
19.01.2023, 08:39
C4H9I, видели это обсуждение: https://stackoverflow.com/ques... ive-window
???
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
19.01.2023, 08:39
Помогаю со студенческими работами здесь

Получить параметры запуска приложения
Была такая хорошая штука в VB6.0 как COMMAND... она работала как переменная, если ее объявить при инициализации формы. то при...

Получить параметры запуска приложения
Подскажите как конвертировать строку из VB6: Private Sub Form_Load() MsgBox Command$ End Sub на другой язык - VB.net или...

Получить параметры запуска приложения
надо получить параметры запуска приложения а как? void main(int argv, char *argc) { /*Получаем из командной строки ряд...

Как реализовать PrintScreen активного приложения?
Не подскажет ли всезнающий All, как реализовать данную весчь? Получить весь экран не проблема (Robot.createScreenCapture(area);), а вот...

Доступ к пунктам меню -> Параметры -> Приложения по умолчанию. Windows 10
Windows 10. Подскажите, как можно получить доступ к пунктам меню: Параметры -> Приложения по умолчанию, с помощью PowerShell. Для того что...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru