#python #internet-explorer-8
#python #internet-explorer-8
Вопрос:
Возможно ли в Python перечислить все пункты меню File (как показано на рисунке) Internet Explorer версии 8?
Это то, что я хочу перечислить:
Комментарии:
1. Вы можете использовать библиотеку ctypes для доступа к Windows API и создать такую функциональность самостоятельно. Эта функция — хороший способ начать.
Ответ №1:
Вам просто нужно знать заголовок целевого окна. Затем вы можете имитировать нажатие кнопки мыши или использовать Alt / MenuFсочетание клавиш , чтобы открыть меню.
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from ctypes import windll
def main():
find_window = windll.user32.FindWindowW
send_message = windll.user32.SendMessageW
window_name = u""
window_handle = find_window(0, window_name)
if window_handle > 0:
show_menu(handle)
else:
print("Window handle not found")
if __name__ == "__main__":
main()
Если вы хотите первое решение (щелчки мыши), затем добавьте:
WM_KEYDOWN = 0x0100
WM_KEYUP = 0x0101
def point_to_long(x, y):
return (y * 0x10000) x
def show_menu(handle):
target_pos = point_to_long(30, 40)
send_message(window_handle, WM_LBUTTONDOWN, 0, target_pos)
send_message(window_handle, WM_LBUTTONUP, 0, target_pos)
В противном случае (нажатие клавиши) используйте:
VK_MENU = 0x12
VK_F = 0x46
def show_menu(handle):
for key in (VK_MENU, VK_F):
send_message(window_handle, WM_KEYDOWN, key, 0)
send_message(window_handle, WM_KEYUP, key, 0)
Надеюсь, это поможет.
Комментарии:
1. Большое вам спасибо за вашу помощь. Если позволите, последний вопрос: могу ли я следовать той же схеме, которую вы мне дали, если я хочу рассчитать количество панелей инструментов, которые отображаются в браузере Internet Explorer? Или это другой завершенный процесс, для которого я должен задать новый вопрос вместо этого?
2. Пожалуйста. Я так не думаю, панель инструментов может располагаться в разных положениях в зависимости от предпочтений пользователя. Возможно, вы можете попробовать поиск в реестре установленных панелей инструментов.