Как найти все видимые окна в системе


Download Article


Download Article

When you’re working with multiple apps on your computer, it’s easy to lose track of which windows you have open. Fortunately, Windows 11, Windows 10, and macOS all have easy keyboard shortcuts and utilities that make multitasking a breeze. This wikiHow article will teach you how to quickly show all of your open windows and apps on your PC or Mac.

  1. Image titled See All Open Windows Step 1

    1

    Use Task View to show all windows on the same screen

    Windows Taskview

    . The Task View icon is on your taskbar by default, and it looks like three rectangular windows with a slider on the right side. This displays all open windows on a single screen and is the most straightforward way to see all open windows.

    • If you don’t see the Task View button on the taskbar, right-click the taskbar and select Show Task View Button. You can also open Task View by pressing Windows key + Tab.
    • If you’ve created virtual desktops on which you’re running different apps, click each virtual desktop in the bar at the top of Task View to view the open windows on that desktop.
  2. Image titled See All Open Windows Step 2

    2

    Cascade, stack, or show windows side by side. Another way to see all open windows on the same screen is to align them using options on the taskbar. Right-click the taskbar, and then choose any of these options to display all open windows:

    • Select Cascade windows to show open windows cascaded, with each window’s title bar visible.
    • Select Show windows stacked to display all open windows in one or more vertical stacks. The number of stacks depends on how many windows are open.
    • Select Show windows side by side is similar to the stacked feature but displays them horizontally rather than vertically.

    Advertisement

  3. Image titled See All Open Windows Step 3

    3

    Try Alt+Tab to view and switch between apps. Release the Tab key while continuing to hold down Alt to display all open windows. This shortcut is great for quickly switching between open apps using keyboard keys instead of your mouse, but it’s also a quick way to see which windows are open.

    • To switch to another window, use the Tab key (while continuing to hold down Alt) to navigate through the open apps. When you get to the one you want to bring into view, release both keys.
  4. Image titled See All Open Windows Step 4

    4

    View all open apps and processes with Task Manager. Task Manager displays all apps and background processes that are running on your PC. You can open it quickly by pressing Control + Shift + Esc at the same time, or by right-clicking the taskbar and selecting Task Manager.

    • When Task Manager opens, you’ll see a brief list of open apps. Click More details to view more information, including a list of processes running in the background.
    • The apps in the “Apps” area of the Processes tab are the ones that have windows open or minimized.
  5. Advertisement

  1. Image titled See All Open Windows Step 5

    1

    Use Task View to show all windows on the same screen. The Task View icon looks like two overlapping squares—one white and one gray—and you’ll find it on the taskbar at the bottom of the screen. This displays all windows on a single screen and is the simplest way to see all open windows. You can also open Task View by pressing Windows key + Tab.

    • If you don’t see the Task View icon on the taskbar, right-click the Taskbar, select Taskbar settings, and then click the switch next to “Task View” to turn it on.
    • If you’re using virtual desktops to run different sets of apps, you’ll see each desktop at the bottom of Task View. Click a desktop to view the windows open on that desktop.[1]
  2. Image titled See All Open Windows Step 6

    2

    Hover your cursor over the taskbar icons for a quick glance. When you open an app on Windows 11, its icon stays visible on the taskbar. Apps that have open windows have white underlines on the taskbar. Hover your mouse cursor over any of the icons with a white underline to see thumbnails of its open window(s). You can then click one of the thumbnails to bring that window into view.

    • Hovering your cursor over the Task View icon to see all open desktops. You can then click one of the open desktops to switch to that desktop.
  3. Image titled See All Open Windows Step 7

    3

    Try Alt+Tab to view and switch between apps. Release the Tab key while continuing to hold down Alt to display all open windows. This shortcut is great for quickly switching between open apps using keyboard keys instead of your mouse, but it’s also a quick way to see which windows are open.

    • To switch to another window, use the Tab key (while continuing to hold down Alt) to navigate through the open apps. When you get to the one you want to bring into view, release both keys.
  4. Image titled See All Open Windows Step 8

    4

    View all open apps and processes with Task Manager. Task Manager displays all apps and background processes that are running on your PC. You can open it quickly by pressing Control + Shift + Esc at the same time, or by right-clicking the taskbar and selecting Task Manager.

    • When Task Manager opens, you’ll see a brief list of open apps. Click More details to view more information, including a list of processes running in the background.
    • The apps in the “Apps” area of the Processes tab are the ones that have windows open or minimized.
  5. Advertisement

  1. Image titled See All Open Windows Step 9

    1

    Use Mission Control to see all open windows on one screen. This is the easiest way to see which apps are open on your Mac.[2]
    If you created Spaces for running different apps, you’ll see each Space at the top of Mission Control. Click a Space to view the windows that are open on that space. To open Mission Control, do any of the following:

    • On an Apple keyboard, press the Mission Control key (F3) in the top row of keys. It has an icon of a rectangle containing three smaller rectangles.
    • If you’re using a MacBook, swipe up on the trackpad with three fingers.
    • If your MacBook has a Touch Bar, tap the icon with three rectangles.
    • If you have a Magic Mouse, double-tap its surface with two fingers.
    • Press Control + Up Arrow on the keyboard at the same time.
    • Double-click the Mission Control app in your Applications folder.
  2. Image titled See All Open Windows Step 10

    2

    Try Command+Tab to view and switch between apps. This shortcut is great for quickly displaying all open apps. When you press this combination, release the Tab key while continuing to hold down the Command key to keep the open apps in view.[3]

    • To switch to one of the open windows: While continuing to hold down Command, use the left and right arrow keys to select the app you want to use, and then release the Command key to bring it into view.
  3. Image titled See All Open Windows Step 11

    3

    Open the Force Quit menu to see and close open apps. The Force Quit exists to help you quickly close apps, but you can also use it to quickly see which windows are open on your Mac—even those that are minimized.[4]
    To open this menu, press Command + Option + Esc at the same time.

    • You can close an app on this window by selecting it and clicking Force Quit.
  4. Image titled See All Open Windows Step 12

    4

    View all open apps and processes with Activity Monitor. Activity Monitor not only shows you which apps are open, but also tells you how much memory, energy, and CPU power each app is using.[5]
    To open Activity Monitor, go to your Applications folder in Finder, double-click the Utilities folder, and then double-click Activity Monitor.

    • Activity Monitor also displays information about processes running in the background, not just apps that have windows open on your desktop.
    • Click through the tabs at the top of Activity Monitor to learn about the resources each open app or process consumes.
  5. Advertisement

Ask a Question

200 characters left

Include your email address to get a message when this question is answered.

Submit

Advertisement

  • Want to reduce the number of open windows for a single app on your Mac? With any of the app’s windows open, click the Window menu and select Merge All Windows. To move a combined tab back to its own window, select the tab, click the Window menu, and then choose Move Tab to New Window.

  • If you’re using a Mac app that has multiple open windows and you want to close them all at once, press Command + Option + W.

  • You can manage the behavior of Alt + Tab on Windows 11 in Settings > Systems > Multitasking> Alt Tab.

Advertisement

About This Article

Article SummaryX

1. Press Windows key + Tab on a PC to display open windows in Task View.
2. Press F3 or the Mission Control key to display open Mac apps in Mission Control.

Did this summary help you?

Thanks to all authors for creating a page that has been read 114,886 times.

Is this article up to date?

Содержание

  1. Получить список открытых окон программ
  2. Фишки Windows 10: как просто взаимодействовать с окнами и рабочими столами
  3. Содержание
  4. Содержание
  5. Работа с окнами
  6. Работа с рабочими столами
  7. Окна на чистом WinAPI. Или просто о сложном
  8. Почему о WinAPI сейчас?
  9. О проблеме
  10. Tutorials?
  11. IsDialogMessage
  12. Делаем красиво
  13. А что там еще об одной строчке в коде обработчика WM_COMMAND?
  14. Список окон в windows

Получить список открытых окон программ

Задача: получить список всех окон, и через SprPos прогнать каждое на наличие слова (hack к примеру).
Далее по имени окна вычислить PID и выгрузить процесс меняется кол-во элементов.

Прошу помочь мне со списком этих чёртовых окон, замучился уже ужОс как. Ни гугл ни яндекс толком ничего мне не помогли найти.

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Список всех открытых окон в Windows
Как вывести в ListBox список всех открытых окон в Windows? Вот этот код выводит все процессы. Как.

Как получить список открытых окон?
А как получить список открытых окон. (В listBox)(заранее спасибо)

tickКак получить список открытых окон?
Всем привет!:senor: Мне нужно получить список открытых окон на данный момент в системе. Как это.

Как получить список открытых окон?
На windows я нашел это: Как на linux? Добавлено через 29 минут я получил список открытых.

Слегка подправил, убрал вывод имён классов, соответственно появившихся пустых строк и убрал вывод каких-то системных значений, типа Default IME и MSCTFIME UI.

Ещё такой вопрос: я использую цикл for, совершая его столько раз, сколько строк в листбоксе со списком окон, после чего очищаю всё, снова получаю список окон, проверяю и так далее.
Как вы думаете стоит оставить так, или такой метод может сильно загрузить компьютер?

Ну я просто не так выразился. маловато терминов знаю просто))

— то может и есть smoke

Добавлено через 4 минуты
попалось на глаза smile3

Добавлено через 2 минуты

Ещё такой вопрос: TcpServer может получить IP адрес от TcpClient? Без Indy (рановато мне), и прочих заморочек, типа сервиса WhoIs?

Источник

Фишки Windows 10: как просто взаимодействовать с окнами и рабочими столами

q93 3898499f8631c836dd61c882e5dec0ab9befd3b7398b8173db9fe780eebe7640

q93 51946f9cca854c1530f212dea6efe3cc4c8b58fd81616921ba2dee82327db1f2

Содержание

Содержание

В статье мы расскажем о практичности работы в операционной системе Windows 10 по сравнению с предыдущими версиями.

Работа с окнами

Windows 10 предлагает гибкий инструмент работы с окнами для тех, кто работает в нескольких окнах одновременно. При этом функция доступна независимо от того, какой у вас монитор и сколько их вы используете. Неважно также, какие характеристики у вашего ПК или ноутбука. Работа с окнами доступна бесплатно и включается парой нажатий на клавиатуру. Единственным ограничением является количество окон на один экран — это 4 окна при условии, что вы доверили ОС определить их расположение. В ручном же режиме подобных окон можно открыть в несколько раз больше (но нужно ли?).

Для примера, окна трех приложений можно расположить таким образом:

q93 6ce6ea524a349605b90f2f56913f1fc6a2233762824e2106ba543af1fa051fe9

Чтобы воспользоваться данным функционалом, сперва необходимо запустить все необходимые приложения в любом порядке. Рекомендуем открывать не более четырех окон.

После этого вам необходимо сделать окно активным, просто нажав на него. Теперь с помощью комбинации клавиши Win и клавиш-стрелок выбрать направление, в котором окно должно «прилипнуть».

q93 b187ddc9200a16c22b06332ed368ec2aaab5adf789f5f4d269d28c1aaf4fbef7

Для примера: комбинация «Win + ←» расположила окно слева на всю высоту экрана.

q93 d2e6e3f3b98dc331cefb675f5412810c84714c8e89a9ec2347840db3a1010e0b

Если хотите, чтобы окно заняло четверть рабочего стола, то комбинация «Win + ↓» или «Win + ↑» разместит окно снизу или сверху соответственно.

q93 98735e8d7fe59a225949a05e23a27821d50665291373304087fae6b9fc87b8e4

Следующий пример был получен сначала нажатием «Win + →», а затем «Win + ↓», что «прилепило» окно снизу и справа соответственно.

q93 4492a78d3a9edbe3b096ac8b7ba3f7b8efed2be53b1f2b1c9c589ba89d061c0a

Такими же комбинациями можно настроить оптимальное расположение и размер остальных окон, переключаясь между ними. Все окна можно расположить в том порядке, который вам необходим.

q93 cb4de050308a1db37a823692892f3eaa62d1becf8a3d8122c7b746dac66a4a72

Если у вас есть еще один монитор, вы можете таким же образом расположить окна в нем, расширив работу до 8 окон одновременно. Вероятно, такой способ кому-то покажется нагруженным и непрактичным, но тем, кто не хочет постоянно переключаться между окнами, он будет в самый раз.

Работа с рабочими столами

Работа с виртуальными рабочими столами повысит продуктивность и расширит понятие многозадачности при работе в Windows 10. Этот инструмент позволит увеличить кол-во окон, в которых можно работать одновременно, и отделить одну группу окон от другой. Например, если в одной группе окон вы работаете с текстом, а в другой — с фото. Как уже говорилось ранее, завышенных требований к характеристикам вашего ПК нет, платить за это тоже не надо.

Как только вам необходимо дополнительное пространство — новый рабочий стол для работы с необходимыми приложениями или даже играми, — нажмите комбинацию «Win + Tab».

q93 e954e47302090e262da81e1f702ec000000549534cf2b9103e2851f595a6d2bc

Вы увидите менеджер работы с окнами и рабочими столами.

q93 c105183e833d5b45c1ee12760f703afd8d73f16fa88c5bc8cc5a9cd147a045c2

В верхнем левом углу, в блоке рабочих столов, вы можете создать необходимое количество рабочих столов.

q93 012e92e4d4eec9f13b4d08b2b98c540d3ec4957f0b92a10fdbdcf6338149b847

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

Если вам необходимо переключиться на предыдущий или следующий рабочий стол, воспользуйтесь комбинациями «Ctrl+Win+←» или «Ctrl+Win+→» соответственно. Переключение происходит почти мгновенно, нет необходимости ждать загрузки.

q93 fed22b026212b540096b9316fa0ad5a08a37ca5bf4aae2c110d56675c81ad450

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

Используя полученный опыт использования «многооконности» и «мультизадачности», вы можете приумножить скорость и удобство работы в приложениях. Это применимо к работе, общению, играм, разработке и так далее.

Источник

Окна на чистом WinAPI. Или просто о сложном

Казалось бы, что WinAPI уходит в прошлое. Давно уже существует огромное количество кросс-платформенных фреймфорков, Windows не только на десктопах, да и сами Microsoft в свой магазин не жалуют приложения, которые используют этого монстра. Помимо этого статей о том, как создать окошки на WinAPI, не только здесь, но и по всему интернету, исчисляется тысячами по уровню от дошколят и выше. Весь этот процесс разобран уже даже не по атомам, а по субатомным частицам. Что может быть проще и понятнее? А тут я еще…

Но не все так просто, как кажется.

Почему о WinAPI сейчас?

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

Здесь я не зря дал ссылку на репозиторий, т.к. видно, что ребята столкнулись с проблемой, о которой речь пойдет ниже, но так и не решили ее.

О чем это я? А вот об этом кусочке кода:

Таким образом, авторы хотели добавить поддержку клавиатуры, но суровая реальность недр архитектуры диалоговых окон в Windows жестко пресекла такую самодеятельность. Те, кто пользовался эмулятором и отладчиком в нем, хоть раз видели это сообщение?
В чем же проблема?

Ответ такой: так делать нельзя!

И, возвращаясь, к изначальному вопросу о WinAPI: очень много популярных, и не очень, проектов продолжают его использовать и в настоящее время, т.к. лучше, чем на чистом API многие вещи не сделать (тут можно бесконечно приводить аналогии вроде сравнения высокоуровневых языков и ассемблера, но сейчас не об этом). Да и мало ли почему? Просто используют и все тут.

О проблеме

Диалоговые окна упрощают работу с GUI, одновременно лишая нас возможности сделать что-то самостоятельно. Например, сообщения WM_KEYDOWN/WM_KEYUP, приходящие в оконную процедуру, «съедаются» в недрах DefDlgProc, беря на себя такие вещи, как: Навигация по Tab, обработка клавиш Esc, Enter, и т.д. Кроме того, диалоги не нужно создавать вручную: проще, ведь, набросать кнопок, списков, в редакторе ресурсов, вызвать в WinMain CreateDialog/DialogBox и все готово.

Обойти такие мелкие неприятности просто. Есть, как минимум, два вполне легальных способа:

Tutorials?

Не побоюсь сказать, что все туториалы по созданию окон через WinAPI начинаются с такого незамысловатого кода, обозначая его, как «цикл обработки сообщений» (опущу детали по подготовке класса окна и прочую обвязку):

Здесь действительно все просто:

И ниже приводится пример правильного цикла.

Стоит сказать, что в шаблонах VS для Win32 приложений, написан именно такой неправильный цикл. И это очень печально. Ведь мало кто будет вникать в то, что сделали сами авторы, ведь это априори правильно. И неправильный код множится вместе с багами, которые очень сложно отловить.

После этого фрагмента кода, как правило, следует рассказ про акселераторы, и добавляется пара новых строчек (учитывая замечание в MSDN, предлагаю сразу писать правильный цикл):

Этот вариант я видел чаще всего. И он (та-дам) снова неправильный!

Сперва о том, что изменилось (потом о проблемах этого кода):

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

Собственно TranslateAccelerator этим и занимается: если видит WM_KEYDOWN и код клавиши, которые есть в этом списке, то (опять же ключевой момент) будет формировать сообщение WM_COMMAND (MAKEWPARAM(id, 1)) и отправлять в соответствующую для дескриптора окна, указанного в первом аргументе, процедуру обработки.

Из последней фразы, думаю, стало понятно, в чем проблема предыдущего кода.
Поясню: GetMessage выхватывает сообщения для ВСЕХ объектов типа «окно» (в число которых входят и дочерние: кнопки, списки и прочее), а TranslateAccelerator будет отправлять сформированную WM_COMMAND куда? Правильно: обратно в кнопку/список и т.д. Но мы обрабатываем WM_COMMAND в своей процедуре, а значит нам интересно ее получать в ней же.

Ясно, что TranslateAccelerator надо вызывать для нашего созданного окна:

И вроде все хорошо и замечательно теперь: мы разобрали все детально и все должно работать идеально.

И снова нет. 🙂 Это будет работать правильно, пока у нас ровно одно окно — наше. Как только появится немодальное новое окно (диалог), все клавиши, которые будут в нем нажаты оттранслируются в WM_COMMAND и отправляться куда? И опять же правильно: в наше главное окно.

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

IsDialogMessage

По названию этой функции можно подумать, что она зачем-то определяет: относится данное сообщение диалогу или нет. Но, во-первых, зачем нам это знать? А во-вторых, что с этой информацией нам делать дальше?

На самом деле, делает она чуть больше, чем следует из названия. А именно:

Во-вторых, она нам облегчит жизнь по всем остальным пунктам, перечисленным в списке (и даже немного больше).

Вообще, она используется где-то в недрах Windows для обеспечения работы модальных диалоговых окон, а программистам дана, чтобы вызывать ее для немодальных диалогов. Однако мы ее можем использовать где угодно:

Although the IsDialogMessage function is intended for modeless dialog boxes, you can use it with any window that contains controls, enabling the windows to provide the same keyboard selection as is used in a dialog box.

Т.е. теперь, если мы оформим цикл так:

То наше окошко будет иметь навигацию, как в родном диалоге Windows. Но теперь мы получили два недостатка:

Пора поговорить о том, чего нет в туториалах и ответах.

Как правило (как правило! Если кому-то захочется большего, то можно регистрировать свой класс для диалогов и работать так. И, если же, кому-то это интересно, я могу дополнить этим статью) WM_KEYDOWN хотят тогда, когда хотят обработать нажатие на клавишу, которая выполнит функцию в независимости от выбранного контрола в окне — т.е. некая общая функция для всего данного конкретного диалога. А раз так, то почему бы не воспользоваться богатыми возможностями, которые нам сама WinAPI и предлагает: TranslateAccelerator.

Везде используют ровно одну таблицу акселераторов, и только для главного окна. Ну действительно: цикл GetMessage-loop один, значит и таблица одна. Куда еще их девать?

На самом деле, циклы GetMessage-loop могут быть вложенными. Давайте еще раз посмотрим описание PostQuitMessage:

The PostQuitMessage function posts a WM_QUIT message to the thread’s message queue and returns immediately; the function simply indicates to the system that the thread is requesting to quit at some time in the future.

If the function retrieves the WM_QUIT message, the return value is zero.

Таким образом, выход из GetMessage-loop осуществится, если мы вызовем PostQuitMessage в процедуре окна. Что это значит?

Мы можем для каждого немодального окна в нашей программе создавать свой собственный подобный цикл. В данном случае DialogBoxParam нам не подходит, т.к. оно крутит свой собственный цикл и повлиять мы на него не можем. Однако если создадим диалог через CreateDialogBoxParam или окно через CreateWindow, то можно закрутить еще один цикл. При этом в каждом таком окне и диалоге мы должны вызывать PostQuitMessage:

Обратите внимание: теперь для каждого нового окна в нашей программе мы можем добавить в обработку собственную таблицу акселераторов. WM_QUIT будет выхватывать GetMessage из цикла для диалога, а внешний цикл его даже не увидит. Почему так происходит?

Дело в том, что внешний цикл «встал» на вызове DispatchMessage, который вызвал нашу процедуру, которая крутит свой собственный внутренний цикл GetMessage с таким же DispatchMessage. Классический вложенный вызов (в данном случае DispatchMessage). Посему внешний цикл не получит WM_QUIT и не завершится на этом этапе. Все будет работать стройно.

Но и тут есть свои недостатки:
Каждый такой цикл будет обрабатывать сообщения только для «своего» окна. Про другие-то мы здесь не знаем. А значит, если где-то объявится еще один цикл, то все остальные окна не будут получать нужной обработки своих сообщений парой TranslateAccelerator/IsDialogMessage.

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

Делаем красиво

Т.к. правильная постановка задачи является половиной решения, то сперва надо эту самую задачу правильно же и поставить.

Во-первых, было бы логично, что только активное окно принимает сообщения. Т.е. для неактивного окна мы не будем транслировать акселераторы и передавать сообщения в IsDialogMessage.

Во-вторых, если для окна не задана таблица акселераторов, то транслировать нечего, будем просто отдавать сообщение в IsDialogMessage.

Создадим простой std::map, который будет мапить дескриптор окна в дескриптор таблицы акселераторов. Вот так:

И по мере создания окон будем в него добавлять новые окна с дескриптором на свою любимую таблицу (или нуль, если такая обработка не требуется).

Ну и после закрытия окна удалять. Вот так:

Теперь, как создаем новый диалог/окно, вызываем AddAccelerators( hNewDialog, IDR_MY_ACCEL_TABLE ). Как закрываем: DelAccel( hNewDialog ).

Список окон с нужными дескрипторами у нас есть. Немного модифицируем наш основной цикл обработки сообщений:

Значительно лучше! Что же там в HandleAccelArray и зачем там GetActiveWindow()?

Есть две функции, возвращающих дескриптор активного окна GetForegroundWindow и GetActiveWindow. Отличие первой от второй вполне доходчиво описано в описании второй:

The return value is the handle to the active window attached to the calling thread’s message queue. Otherwise, the return value is NULL.

Если первая будет возвращать дескриптор любого окна в системе, то последняя только того, которое использует очередь сообщений нашего потока. Т.к. нас интересуют окна только нашего потока (а значит те, которые будут попадать в нашу очередь сообщений), то и возьмем последнюю.

Так вот HandleAccelArray, руководствуясь переданным ей дескриптором на активное окно, ищет это самое окно в нашей мапе, и если оно там есть, отдает это сообщение на трансляцию в TranslateAccelerator, а затем (если первый не увидел нужного) в IsDialogMessage. Если и последняя не обработала сообщение, то возвращаем FALSE, чтобы пройти по стандартной процедуре TranslateMessage/DispatchMessage.

Теперь каждое дочернее окно вправе добавить себе любимую таблицу акселераторов и спокойно ловить и обрабатывать WM_COMMAND с нужным кодом.

А что там еще об одной строчке в коде обработчика WM_COMMAND?

To differentiate the message that this function sends from messages sent by menus or controls, the high-order word of the wParam parameter of the WM_COMMAND or WM_SYSCOMMAND message contains the value 1.

Обычно код обработки WM_COMMAND выглядит так:

Теперь можно написать так:

И теперь, возвращаясь к тому же fceux, добавив всего одну строчку в код обработки команд от кнопок, мы получим желаемое: управлять дебагером с клавиатуры. Достаточно добавить небольшую обертку вокруг главного цикла сообщений и новую таблицу акселераторов с нужными соответствиями VK_KEY => IDC_DEBUGGER_BUTTON.

P.S.: Мало кто знает, но можно создавать свою собственную таблицу акселераторов, а теперь и применять ее прямо налету.

P.P.S.: Т.к. DialogBox/DialogBoxParam крутит собственный цикл, то от при вызове диалога через них акселераторы работать не будут и наш цикл (или циклы) будет «простаивать».

P.P.P.S.: После вызова HandleAccelWindow мап l_mAccelTable может измениться, т.к. TranslateAccelerator или IsDialogMessage вызывают DispatchMessage, а там может встретиться AddAccelerators или DelAccel в наших обработчиках! Поэтому лучше его после этой функции не трогать.

Пощупать код можно здесь. За основу был взят код, генерируемый из стандартного шаблона MS VS 2017.

Источник

Список окон в windows

AutoIt Window Info

AutoITv3Info screen

Следующая информация может быть получена:
• Заголовок окна
• Текст в окне (видимый и скрытый)
• Размеры окна и его позиция
• Содержимое строки состояния
• Положение курсора
• Цвет пикселя, находящегося под курсором
• Информация об элементе управления, находящемся под курсором

AutoIt является простым инструментом, который может имитировать нажатия клавиш, движения мыши и команды окна для того, чтобы автоматизировать любые окна на основе задачи. В AutoIt есть BASIC-подобный синтаксис который может быть использован в качестве общего назначения скриптового языка.

Домашняя страница: http://www.autoitscript.com

zero Dump v0.1

zeroDump screen

Набор функций доступных в zero Dump позволяют изменить заголовок, позицию табуляции, возможно включить и отключить различные свойств объекта, имеется несколько вкладок с стилями, различные параметры для включения и отключения элементов, таких как строки заголовка, системного меню или кнопок свернуть и развернуть окно. Во вкладке с расширенными стилями доступны гибкие настройки окна, где можно задать порядок чтения справа налево или определить выравнивание текста справа, установить прозрачность, встроить полосу прокрутки и многое другое.

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

Домашняя страница: http://yodap.cjb.net

Скачать: zeroDump v0.1

ShoWin v2.0

ShoWin screen

Домашняя страница: http://www.foundstone.com

Скачать: ShoWin v2.0

Syn Spy v3.1

SynSpy screen

*Примечание: Сканер паролей не работает на Windows 2000 и более поздних версиях операционной системы!*

Домашняя страница: http://synvb.com

Скачать: Syn Spy v3.1

Spy & Capture v2.70

SpyAndCapture screen

Также включены:
— Система активных окон.
— Система активных процессов, с зависимостями модулей.
— Захват окна (включена область захвата).
— Цветовой шпион (поддерживает формат HTML цвета).
— Граббинг полей пароля («***» поля).
— Поддержка веб-обновлений.

Домашняя страница: http://come.to/kobik

Window Hack v3.0

WindowHack screen

Домашняя страница: http://geocities.com/asmfreesoft

InqSoft Window Scanner v1.7

InqSoftWindowScanner screen

Версия 1.7:
— Добавлена возможность сохранения скриншотов в форматах GIF, JPG и PNG с регулировкой качества;
— Возможность извлечения текстовых данных из окон с древовидными списками (таких, как в RegEdit или Справке Windows);
— Реализована возможность в два клика переместить выбранное окно в любой угол экрана;
— В редактор памяти процесса добавлены возможности просмотра численных данных и перехода по указателю;
— Реализован режим просмотра хэндлов в десятичном виде, сообщения можно вызывать в виде.

Домашняя страница: http://kickme.to/inqsoft

WinID v3.1

WinID screen

Домашняя страница: http://www.dennisbabkin.com/winid/

Скачать: WinID v3.1 / II / Portable (pass: Unpack)

WinDowzer v1.2

WinDowzer screen

Версия 1.2:
— Добавлена поддержка юникода.

Версия 1.3:
— Добавлены возможности Microsoft Active Accessibility.
— Улучшен интерфейс и поведение при закрытии/сворачивании.
— Сделаны всякие мелкие улучшения.

Домашняя страница: http://www.manhunter.ru/releases/150_windowzer_1_1.html (v1.2) (v1.3)

Скачать: WinDowzer v1.1-PCL / WinDowzer v1.2-PCL / WinDowzer v1.3-PCL / II

WinCheat v1.7 (build 4680)

WinCheat screen

Особенности программы:
• Выбор видимых окон с помощью мыши для просмотра информации о них.
• Исследование иерархии окон для текущего рабочего стола.
• Позволяет просматривать и изменять стили выбранного окна.
• Отправить/поместить сообщение окну, включить/отключить/показать/скрыть его.
• Захват текста из окон (также работает для полей с паролем на WinNT / Win2000 / WinXP)
• Захват/сохранение содержимого окна в качестве растрового изображения.
• Увеличение прямоугольной области на экране по движению (выделению) мыши.

Примечание: для запуска WinCheat, может потребоваться загрузить и установить пакет: Visual C++ Redistributable for Visual Studio 2012. На странице загрузки выберите x86 версию распространяемого пакета (WinCheat является 32-bit приложением).

Домашняя страница: http://www.alinconstantin.com/Download/WinCheat

WinSpy++ v1.7

WinSpy screen

WinSpy ++ может получить следующие свойства окна:
• Класс окна и имя.
• Адрес процедуры окна.
• Все стили окна включая расширенные стили.
• Свойства окна (устанавливается с помощью вызова API SetProp).
• Выполнение дочерних и родительских оконных соотношений.
• Полоса прокрутки позиционной информации.
• Полные сведения о классах окна.

Новое в версии 1.7!
— Поддержка операционной системы Windows Vista.
— Дерево иерархического списка группируется по запущенным процессам.

Домашняя страница: http://www.catch22.net/software/winspy

Скачать: WinSpy++ v1.6 / WinSpy++ v1.7 / WinSpy Src

WinSpy v1.0.3

WinSpyAlguimist screen

Программа собрана для x86 и x64, в комплекте имеются исходники (сценарий AHK).

Версия 1.0.3:
— На вкладке Extra отображается больше информации об элементах управления Scintilla.
— Исправлены мелкие ошибки.

Версия 1.0.2:
— Исправлен поиск окна по PID
— Исправлена вкладка сообщений
— Добавлены сообщения Scintilla
— Добавлены RichEdit сообщения и стили
— Небольшие улучшение в меню просмотра
— F1 показывает сочетания клавиш

Домашняя страница: http://sourceforge.net/projects/winspyex/

Скачать: WinSpy v1.0.2 / WinSpy v1.0.3

Microsoft Spy++ v14

MicrosoftSpy screen

Домашняя страница: http://microsoft.com

Скачать: Microsoft Spy++ v14

Control Viewer v1.1

ControlViewer screen

Основные отличия Control Viewer от AutoIt Window Info:

• Отображение полного списка всех существующих элементов GUI для интересующего окна (видимые, скрытые и удаленные элементы отображаются разными цветами, которые можно изменить на любые другие).
• Динамическое изменение информации для окон и их элементов в процессе поиска.
• Возможность быстрого переключения между элементами в списке.
• Возможность скрыть/показать любой элемент из списка (полезно, когда два или более элементов перекрывают друг друга).
• Информация для параметров Style и ExStyle отображается как в виде шестнадцатиричных значений, так и в виде составляющих его констант.
• Добавлены параметры PID и Path во вкладке Window и возможность быстрого перехода в папку, содержащую файл процесса.
• Добавлена система координат относительно выделенного элемента.
• Отображение цвета пикселя в форматах RGB и BGR.
• Пример заливки выбранным цветом.
• Возможность выбора кодировки текста (влияет на параметр Text во вкладке Control).
• Полное изменение внешнего вида всплывающей рамки для выбора элементов.
• Простой и удобный инструмент для получения скриншота интересующей части экрана для последующей публикации на форуме (вкладка Capture).
• Создание отчета в буфере обмена или текстовом файле для последующей публикации на форуме.
• Поиск всех запущенных AutoIt скриптов и созданных ими окон в системе (вкладка AutoIt).
• Приятный интерфейс.

Используемые горячие клавиши:

Цветовая индикация состояния элементов:

Последнее обновление 19.05.2012:

— Добавлена 64-битная версия программы.
— Добавлена цифровая подпись (сертификат) в CV.exe и CV_x64.exe.
— Небольшие изменения в коде.

Поддерживаются бинарные файлы x86 и x64 (Binary file support x86 and x64)
В комплекте есть исходники AutoIt скриптов программы и файлы локализации.

Домашняя страница: http://autoit-script.ru/index.php?topic=4579.0

Скачать: ControlViewer v1.1 / Control Viewer / RU-EN / ATT / WinAPIEx (pass: Unpack)

Property Edit v2.5.0.0

PropertyEdit screen

Домашняя страница: http://mh-nexus.de/en/programs.php

Window Detective v3.5.1

WindowDetective screen

Особенности программы:
— Просмотр свойств окон, например: текст/название, размеры и стили.
— Просмотр всех окон в дереве иерархии: родительские/дочерние окна.
— Захват активных окон (элементов окон) для просмотра с помощью мыши.
— Расширенный поиск элементов окон, по соответствующим заданным критериям.
— Прием команд для отправленных оконных сообщений в окно.
— Предустановки пользовательских параметров, чтобы запоминать позиции окон.

Домашняя страница: http://sourceforge.net/projects/windowdetective/

WinDowse v5.3

WinDowse screen

Основная информация окна:
— Текст, заголовок и идентификатор ресурса
— Идентификатор процесса
— Экземпляр приложения
— Дескриптор окна
— Дескриптор родительского окна
— Функция адреса окна
— Дескриптор меню окна
— Координаты в родителе
— Координаты на экране
— Размер окна
— Размер клиентской области окна
— Стиль окна и расширенный стиль

Широкий набор функций и полнота предоставляемой информации, позволяет вам быстро узнать все необходимые данные о нужной вам функции или элементе окна. Все параметры могут быть показаны в шестнадцатеричном, десятичном или бинарном формате. После запуска WinDowse, он ведет непрерывный отсчет, пока пользователь перемещает мышь по экрану. Непрерывная индикация может быть остановлена в любой момент по щелчку мышкой «Stop». WinDowse также позволяет копировать результаты в буфер обмена.

Домашняя страница: http://www.greatis.com/delphicb/windowse/

Скачать: WinDowse v5.3 / II / III

XWinspector v1.0

XWinspector screen

Домашняя страница: http://freesoft80.com/products/xwinspector-1-0.html

WinInfo v1.0.3

WinInfo screen

Домашняя страница: http://www.pazera-software.com/products/wininfo/

Скачать: WinInfo v1.0.3 / WinInfo v1.0.3 fix

Aezay Window Hacker 2 v16.06.28 (2016 Jun 28)

AezayWindowHacker screen

— Программа является переписанной версией «Window Hacker», который ранее назывался «hWnd Monitor».

Домашняя страница: http://www.aezay.dk/aezay/wndhack/

Ranorex Spy Pro v1.5

RanorexSpy screen

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

Утилита Ranorex Spy Pro поставляется в комплекте с программным обеспечением Ranorex, также с оф-сайта можно скачать обычную версию Ranorex Spy.

Домашняя страница: http://www.ranorex.com/

Скачать: RanorexSpyPro v1.5 / Ranorex v1.5.0 / Ranorex v1.5.1

Spy++ Lite v2.4

SpyLite screen

Домашняя страница: http://www.asanscape.com

Скачать: SpyLite v2.4

ViewWizard v3.5.2 (句柄查看精灵)

ViewWizard screen

Перетащите значок увеличительного стекла на окно целевой программа, когда объект окна подсветиться черным прямоугольником, в окне ViewWizard будет отображена вся информация об выбранном элементе. Можно воспользоваться методом непосредственного поиска по вводу дескриптора окна. Кроме сканера атрибутов оконных форм, программа позволяет делать снимки рабочего стола и определять цвет пикселей на экране в форматах RGB, HSL, HTML и HEX.

Особенности:
— Редактор стилей окна: позволяет изменять стиль окна и расширенный стиль.
— Окно мониторинга: мониторинг создания и уничтожения окон верхнего уровня.
— Список системных окон: посмотр всех системных окон, включая невидимые и скрытые окна ядра.
— Отображение скрытого управления: отображаются скрытые элементы управления для активного окна.
— Пипетка: инструмент пипетка для выбора цвета на экране по наведению курсора.
— Захват экрана: создание снимков рабочего стола (скриншоты), захват окон программ.

Домашняя страница: http://zzmzzff.blog.163.com

Скачать: ViewFont v1.0 / ViewWizard v2.8 / ViewWizard v3.5.2 (pass: Unpack)

Источник

4 / 4 / 4

Регистрация: 21.04.2014

Сообщений: 139

1

Получить дескрипторы всех окон в системе

21.04.2014, 18:06. Показов 4518. Ответов 1


Студворк — интернет-сервис помощи студентам

Как получить дескрипторы всех окон в системе



0



Nikfel

59 / 31 / 15

Регистрация: 30.05.2009

Сообщений: 234

21.04.2014, 21:44

2

Лучший ответ Сообщение было отмечено A_N_A_N_A_S как решение

Решение

Для перечисления всех окон можно использовать EnumWindows. Получает хэндлы всех окон как x86 так и x64. Лучше её использовать чем другие варианты. Далее GetWindowText для получения заголовка окна.

Добавлено через 22 минуты
Примерно так можно получить список всех видимых окон

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <Windows.h>
 
BOOL CALLBACK EnumWindowsProc( HWND hwnd, LPARAM lParam )
{
    WCHAR str [ 255 ];
    if ( GetWindowTextW ( hwnd, str, 255 ) ) {
        if ( IsWindowVisible ( hwnd ) && ( !GetWindow (hwnd, GW_OWNER) ) ) MessageBoxW ( 0, str, L"", 0);   
    }
    return 1;
}
 
int main ()
{
    EnumWindows( &EnumWindowsProc, 0);
    return 0;
}



1



Содержание

  1. Фишки Windows 10: как просто взаимодействовать с окнами и рабочими столами
  2. Содержание
  3. Содержание
  4. Работа с окнами
  5. Работа с рабочими столами
  6. 40 горячих клавиш для Windows
  7. Содержание
  8. Содержание
  9. Набор новичка
  10. Клавиши для Windows 10 и не только
  11. Боевая готовность браузера
  12. Гроза документов
  13. Горячие клавиши для работы с окнами в Windows
  14. Переключение между окнами в Windows
  15. Как свернуть и развернуть окна в Windows при помощи «горячих» клавиш
  16. Как привязать окна к половине или четверти рабочего стола в Windows
  17. Точное перемещение окна в Windows
  18. Перемещение окон между дисплеями в Windows
  19. Шпаргалка по управлению окнами в Windows
  20. Как быстро переключаться между окнами
  21. Опубликовано Михаил Непомнящий в 22.03.2017
  22. Переключение клавишами
  23. Удобное расположение окон
  24. Переключение между офисными документами

Фишки Windows 10: как просто взаимодействовать с окнами и рабочими столами

q93 3898499f8631c836dd61c882e5dec0ab9befd3b7398b8173db9fe780eebe7640

q93 51946f9cca854c1530f212dea6efe3cc4c8b58fd81616921ba2dee82327db1f2

Содержание

Содержание

В статье мы расскажем о практичности работы в операционной системе Windows 10 по сравнению с предыдущими версиями.

Работа с окнами

Windows 10 предлагает гибкий инструмент работы с окнами для тех, кто работает в нескольких окнах одновременно. При этом функция доступна независимо от того, какой у вас монитор и сколько их вы используете. Неважно также, какие характеристики у вашего ПК или ноутбука. Работа с окнами доступна бесплатно и включается парой нажатий на клавиатуру. Единственным ограничением является количество окон на один экран — это 4 окна при условии, что вы доверили ОС определить их расположение. В ручном же режиме подобных окон можно открыть в несколько раз больше (но нужно ли?).

Для примера, окна трех приложений можно расположить таким образом:

q93 6ce6ea524a349605b90f2f56913f1fc6a2233762824e2106ba543af1fa051fe9

Чтобы воспользоваться данным функционалом, сперва необходимо запустить все необходимые приложения в любом порядке. Рекомендуем открывать не более четырех окон.

После этого вам необходимо сделать окно активным, просто нажав на него. Теперь с помощью комбинации клавиши Win и клавиш-стрелок выбрать направление, в котором окно должно «прилипнуть».

q93 b187ddc9200a16c22b06332ed368ec2aaab5adf789f5f4d269d28c1aaf4fbef7

Для примера: комбинация «Win + ←» расположила окно слева на всю высоту экрана.

q93 d2e6e3f3b98dc331cefb675f5412810c84714c8e89a9ec2347840db3a1010e0b

Если хотите, чтобы окно заняло четверть рабочего стола, то комбинация «Win + ↓» или «Win + ↑» разместит окно снизу или сверху соответственно.

q93 98735e8d7fe59a225949a05e23a27821d50665291373304087fae6b9fc87b8e4

Следующий пример был получен сначала нажатием «Win + →», а затем «Win + ↓», что «прилепило» окно снизу и справа соответственно.

q93 4492a78d3a9edbe3b096ac8b7ba3f7b8efed2be53b1f2b1c9c589ba89d061c0a

Такими же комбинациями можно настроить оптимальное расположение и размер остальных окон, переключаясь между ними. Все окна можно расположить в том порядке, который вам необходим.

q93 cb4de050308a1db37a823692892f3eaa62d1becf8a3d8122c7b746dac66a4a72

Если у вас есть еще один монитор, вы можете таким же образом расположить окна в нем, расширив работу до 8 окон одновременно. Вероятно, такой способ кому-то покажется нагруженным и непрактичным, но тем, кто не хочет постоянно переключаться между окнами, он будет в самый раз.

Работа с рабочими столами

Работа с виртуальными рабочими столами повысит продуктивность и расширит понятие многозадачности при работе в Windows 10. Этот инструмент позволит увеличить кол-во окон, в которых можно работать одновременно, и отделить одну группу окон от другой. Например, если в одной группе окон вы работаете с текстом, а в другой — с фото. Как уже говорилось ранее, завышенных требований к характеристикам вашего ПК нет, платить за это тоже не надо.

Как только вам необходимо дополнительное пространство — новый рабочий стол для работы с необходимыми приложениями или даже играми, — нажмите комбинацию «Win + Tab».

q93 e954e47302090e262da81e1f702ec000000549534cf2b9103e2851f595a6d2bc

Вы увидите менеджер работы с окнами и рабочими столами.

q93 c105183e833d5b45c1ee12760f703afd8d73f16fa88c5bc8cc5a9cd147a045c2

В верхнем левом углу, в блоке рабочих столов, вы можете создать необходимое количество рабочих столов.

q93 012e92e4d4eec9f13b4d08b2b98c540d3ec4957f0b92a10fdbdcf6338149b847

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

Если вам необходимо переключиться на предыдущий или следующий рабочий стол, воспользуйтесь комбинациями «Ctrl+Win+←» или «Ctrl+Win+→» соответственно. Переключение происходит почти мгновенно, нет необходимости ждать загрузки.

q93 fed22b026212b540096b9316fa0ad5a08a37ca5bf4aae2c110d56675c81ad450

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

Используя полученный опыт использования «многооконности» и «мультизадачности», вы можете приумножить скорость и удобство работы в приложениях. Это применимо к работе, общению, играм, разработке и так далее.

Источник

40 горячих клавиш для Windows

q93 277c5e84904207c75f0b14384dff4e5578f7f7e8c529667aa9bee42de87077de

Содержание

Содержание

Если вы точно знаете, как на компьютере перенести текст двумя кнопками — вместо этой статьи лучше почитайте наш ностальгический материал про историю Windows. А вот если вы по старинке жмете правую кнопку мышки и ищете в выпавшем списке заветное «Копировать» — сохраняйте материал в закладки. Мы научим вас всем горячим клавишам и докажем, что Ваш компьютер умеет гораздо больше, чем вы думали.

Горячие клавиши — это комбинации на клавиатуре, которые выполняют то или иное действие. А еще это невероятная экономия времени и сил. Сделать большинство офисных операций с помощью пары нажатий в разы проще и быстрее, чем вручную выискивать нужные кнопки. Представьте, что вам нужно перенести по отдельности кучу данных из одного файла в другой. Или к вашему столу приближается начальник, а на вашем мониторе развернуты 15 окон и все с чем угодно, но только не с работой. Вот тут-то горячие клавиши вам и помогут.

Набор новичка

Начнем с самых азов. При работе с перемещением, копированием и вставкой файлов или символов можно использовать сочетания клавиш Ctrl + Х, Ctrl + C и Ctrl + V, полностью игнорируя правую кнопку мыши и аналогичные в ней пункты. А если потребуется отменить последние действия — Ctrl + Z к вашим услугам. Создать папку с помощью горячих клавиш также можно — для этого нажмите Ctrl + Shift + N, а чтобы переименовать ее просто нажмите F2. Эта возможность доступна для любых файлов. Чтобы просмотреть буфер обмена в данный момент нажмите Win + V — особенно полезна эта функция при синхронизированном буфере с вашим смартфоном. Ах да, быстро открыть проводник можно, выполнив комбинацию Windows (далее Win) + E, а закрыть — Ctrl + W, и эта функция работает абсолютно с любым окном, помимо привычного всем Alt + F4. А одновременное нажатие Win + D сворачивает все открытые окна на рабочем столе.

Для тех, кто очищает корзину после каждого удаления, есть клавиша Shift. Зажмите ее перед удалением, игнорируя тем самым перемещение файлов корзину. А для забывчивых полезной может оказаться клавиша F3 — нажмите ее в окне проводника, чтобы воспользоваться поиском. Ctrl + P служит универсальной командой для перехода к окну печати выбранного файла, текста или страницы в браузере.

Ctrl + Х вырезать файл или текст для перемещения
Ctrl + C скопировать файл или текст
Ctrl + V вставка вырезанного или скопированного файла
Ctrl + Z отменить действие
Ctrl + Shift + N создать папку
F2 переименовать папку
Win + V открыть буфер обмена
Win + E открыть проводник
Ctrl + W, Alt + F4 закрыть текущее окно
Shift безвозвратное удаление файлов
Ctrl + P окно печати
Win + D свернуть все окна на рабочем столе

Клавиши для Windows 10 и не только

Следующий набор горячих клавиш уже для более редких операций. Некоторые из них, кстати, доступны только на Windows 10. Win + A для открытия центра уведомлений, Win + Alt + D для показа календаря, времени и ближайших событий, если они, конечно, есть. Win + G для открытия игрового режима и настроек захвата, Win + I для быстрого перехода к Параметрам, Win + S для открытия поиска на панели задач и Win + L для выхода из системы и блокировки компьютера. Отдельно стоит упомянуть такие функции, как переключение между оконным и полноэкранным режимами в играх — Alt + Enter и создание снимка выделенной части экрана — Win + Shift + S. Для создания обычного скриншота есть клавиша Print Screen. Для тех, кто не хочет использовать мышку для перемещения между открытыми окнами, можно воспользоваться сочетанием Win + 1-9, в зависимости от порядкового номера необходимого окна. Или же обратиться к одной из самых популярных среди геймеров горячей клавише — Alt + Tab.

Win + A открыть центр уведомлений Win10
Win + Alt + D открыть календарь и события Win10
Win + G открыть игровой режим Win10
Win + I переход к параметрам Win10
Win + S поиск на панели задач Win10
Win + L выход из системы, блокировка компьютеры
Alt + Enter переключение режимов отображения игры
Win + Shift + S создание скриншота части экрана Win10
Print Screen скриншот всего экрана
Win + 1-9, Alt + Tab переключение между окнами на рабочем столе

Боевая готовность браузера

Как часто вы пользуетесь браузером, постоянно? Что ж, для вас, разумеется, также существует несколько очень даже полезных сочетаний. Прежде всего, самая важная комбинация, Ctrl + Shift + T, открывает последние закрытые вкладки — спасение для случайно закрытых, важных страниц. Если же, наоборот, требуется закрыть активную вкладку — с Ctrl + W это можно сделать ощутимо быстрее. Для создания новой вкладки воспользуйтесь сочетанием Ctrl + T. При работе с большим количеством открытых вкладок приятной находкой может стать возможность перемещения между ними путем нажатия Ctrl + 1-9, в зависимости от номера нужной вкладки в последовательном порядке. Тут же может пригодиться поиск на странице, который можно быстро вызвать нажатием клавиши F3. С помощью Ctrl + N можно открыть новое окно браузера, а при переходе по ссылке с зажатым Ctrl или Shift вы откроете страницу в новом окне или новой вкладке соответственно. Также можно открыть и новое окно в режиме инкогнито, выполнив комбинацию Ctrl + Shift + N. Если все же забыли перейти в режим инкогнито — очистить историю быстро и просто можно нажав Ctrl + H. Для просмотра окна загрузок нажмите Ctrl + J. Все вышеупомянутые горячие клавиши актуальны для любого браузера для Windows.

Ctrl + Shift + T открыть последние закрытые вкладки
Ctrl + W закрыть вкладку
Ctrl + T создать новую вкладку
Ctrl + 1-9 перемещение между вкладками
F3 окно поиска по странице
Ctrl + N новое окно браузера
Ctrl + Shift + N новое окно в режиме инкогнито
Ctrl + H очистить историю
Ctrl + J окно загрузок

Гроза документов

Закончим материал самыми крутыми горячими клавишами для работы с Microsoft Office, Google Docs и их аналогами. Также эти команды работают в WEB-версиях необходимых офисных инструментов. Всегда важно вовремя сохранять важный проект, и если в онлайн-версиях это почти всегда происходит автоматически, то в том же Microsoft Word вы рискуете полностью потерять несохраненный вручную документ в случае отключения света, например. Выполнить быстрое сохранение можно, нажав Ctrl + S. Данная команда, на заметку, работает практически в любом приложении с возможностью сохранения проекта. При работе с текстом можно переключаться между жирным, курсивом и подчеркнутым шрифтами комбинациями Ctrl + B, Ctrl + I и Ctrl + U соответственно. Уменьшить или увеличить шрифт на один пункт можно путем нажатия клавиш Ctrl +[ или Ctrl +]. Разумеется, эти функции актуальны и для уже напечатанного текста — просто выделите нужную часть символов и выполните необходимое сочетание клавиш. Также, используя горячие клавиши, можно моментально переключать режим выравнивания текста: для левой стороны — Ctrl + L, для правой, как несложно догадаться —Ctrl + R, а для середины — Ctrl + E. И напоследок — перемещение курсора в начало или конец строчки путем использования клавиш Home и End. А ведь некоторые о них даже и не знают.

Ctrl + S быстрое сохранение документа
Ctrl + B жирный шрифт
Ctrl + I курсив
Ctrl + U подчеркнутый шрифт
Ctrl +[, Ctrl +] уменьшение/увеличение шрифта
Ctrl + L выравнивание текста по левой стороне
Ctrl + R выравнивание текста по правой стороне
Ctrl + E выравнивание текста посередине

Это были самые полезные горячие клавиши в Windows, которые вам точно пригодятся. Помните, что во многих специализированных программах типа фотошопа есть свои наборы горячих клавиш, и, если вы постоянно работаете с их функционалом, стоит расширить свой «словарный запас» комбинаций еще больше.

Источник

Горячие клавиши для работы с окнами в Windows

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

windows in windows

Переключение между окнами в Windows

Windows 10 имеет очень удобный инструмент, часто называемый «переключатель задач». Он позволяет использовать клавиатуру для быстрого переключения между активными окнами. Просто нажмите Alt + Tab в любое время работы с Windows и на экране появятся миниатюры всех открытых окон.

Для циклического перехода между вариантами нажмите и удерживайте Alt и нажимайте клавишу Tab, пока не будет выделено нужное окно. Отпустите обе клавиши, и окно будет выведено на передний план.

windows in windows hot keys how to

Вы также можете нажать Ctrl + Alt + Tab, чтобы открыть переключатель задач. При вводе такой комбинации окно с задачами остается постоянно висеть даже после отпускания клавиш. Вам остается лишь с помощью кнопок курсора выбрать нужное окно и нажать «Ввод». Переключатель исчезнет.

Более сложным способом переключения между окнами является Представление задач. Оно занимает практически весь экран и показывает большие превью всех открытых окон. Чтобы открыть Представление задач, нажмите Windows + Tab.

windows in windows hot keys how to

С помощью клавиш курсора выберите окно, которое вы хотите просмотреть, а затем нажмите «Ввод». Выбранное вами окно выведется на передний план. В Представлении задач можно создавать новые рабочие столы и сортировать по ним программы.

Как свернуть и развернуть окна в Windows при помощи «горячих» клавиш

Оказывается, в Windows легко можно свернуть или развернуть окно, используя лишь клавиатуру. При сворачивании окно исчезает из поля зрения, а разворачивание окна делает его таким, чтобы оно занимало максимально возможную область на экране. Вы также можете свернуть все окна одновременно, что позволит увидеть весь Рабочий стол.

Используйте следующие сочетания клавиш:

Вы также можете увеличить окно, не полностью его разворачивая. Если вы хотите растянуть высоту (но не ширину) текущего окна до верха и низа экрана, нажмите Windows + Shift + Стрелка вверх. Обратите внимание, что эта комбинация не работает, если окно привязано к четверти экрана, о чем мы расскажем ниже.

Как привязать окна к половине или четверти рабочего стола в Windows

Если вы работаете с несколькими окнами и хотите использовать сочетания клавиш для удобного расположения элементов на экране, то вам повезло! Легко расположить два окна в идеальные половины или четыре окна по четвертям на экране.

Сначала нажмите Alt + Tab или используйте мышь, чтобы открыть окно, требуемое для помещения в фокус окно. Сразу решите, какую часть экрана вы хотите занять этим окном.

Затем вы можете использовать следующие сочетания клавиш, чтобы расположить два окна пополам:

Развернуть слева: Windows + Стрелка влево.

windows in windows hot keys how to

Развернуть справа: Windows + Стрелка вправо.

windows in windows hot keys how to

Чтобы расположить четыре окна по четвертям (каждое будет занимать 1/4 экрана), вы можете использовать последовательность из двух комбинаций клавиш. Эти последовательности предполагают, что окно еще не было привязано к левой или правой половине экрана.

Вот что нужно сделать:

Верхняя левая четверть: Windows + Стрелка влево, а затем Windows + Стрелка вверх.

Нижняя левая четверть: Windows + Стрелка влево, а затем Windows + Стрелка вниз.

windows in windows hot keys how to

Верхняя правая четверть: Windows + Стрелка вправо, а затем Windows + Стрелка вверх.

windows in windows hot keys how to

Нижняя правая четверть: Windows + Стрелка вправо, а затем Windows + Стрелка вниз.

Точное перемещение окна в Windows

Вы можете использовать клавиатуру, чтобы переместить определенное окно в нужное место на экране. Сначала нажмите Alt + Tab, чтобы выбрать окно, которое вы хотите переместить.

Когда окно выбрано, нажмите Alt + Пробел, чтобы открыть небольшое меню в верхнем левом углу. Нажмите клавишу курсора Вниз, чтобы перейти на «Переместить», а затем нажмите «Ввод».

Используйте клавиши курсора со стрелками, чтобы переместить окно туда, где оно должно расположиться в конечном счете на экране, а затем нажмите «Ввод».

Этот прием работает, даже если окно, которое вы хотите переместить, скрыто или оказалось за пределами экрана, и вы не можете найти его с помощью мыши.

Перемещение окон между дисплеями в Windows

Если вы используете несколько мониторов и развернули рабочий стол между ними, вы можете быстро перемещать активное окно между экранами. Для этого нажмите Windows + Shift + Стрелку влево или Windows + Shift + Стрелку вправо.

Шпаргалка по управлению окнами в Windows

Вот удобная шпаргалка на основе всего, что мы рассмотрели выше. Попробуйте эти сочетания, и вы скоро сможете виртуозно управляться с окнами Windows.

Alt + Tab: открыть переключатель задач.

Windows + Tab: Открыть Представление задач.

Windows + Стрелка вниз: свернуть окно.

Windows + Стрелка вверх: развернуть окно.

Windows + M: свернуть все окна.

Windows + D: отображение рабочего стола.

Windows + Home: свернуть все окна, кроме активного.

Windows + Shift + M: восстановить все свернутые окна.

Windows + Shift + Стрелка вверх: растянуть окно к верхней и нижней части экрана.

Windows + Стрелка влево: развернуть окно в левой части экрана.

Windows + Стрелка вправо: развернуть окно в правой части экрана.

Windows + Shift + Стрелка влево или вправо: перемещение окна с одного монитора на другой.

Источник

Как быстро переключаться между окнами

Опубликовано Михаил Непомнящий в 22.03.2017

Когда у вас открыто с десяток окон, переключаться между ними бывает неудобно. Однако всегда можно сделать работу чуть более комфортной.

Переключение клавишами

В операционных системах Windows существует специальное сочетание клавиш, позволяющее быстро переключаться между окнами. Это сочетание – Alt + Tab. Однако работает оно немного непривычно в сравнении с другими хоткейсами. Однократное нажатие данного сочетания будет перемещать вас между двумя последними активными окнами, а удерживая клавишу Alt и нажимая и отпуская клавишу табуляции можно последовательно выбрать любое из открытых окон. Для перехода в окно просто отпустите клавишу Alt.

alt tab background featured

Если окон открыто слишком много и вы случайно проскочили нужное, нажимая Tab, при зажатом Alt, то просто добавьте в сочетание зажатой клавишу Shift – в таком случае выбор активного окна среди отрытых будет осуществляться в обратную сторону.

Другой способ переключения между окнами с клавиатуры – это сочетание Win + Tab. В некоторых версиях Windows данные клавиши открывали трехмерный интерфейс выбора окна, а в Windows 10 они открывают так называемое «Представление задач» (для него также может иметься кнопка на Панели задач). Это представление показывает все открытые окна, нужное из которых можно просто выбрать при помощи мыши.

win tab

Также через «Представление задач» можно добавлять дополнительные виртуальные Рабочие столы и перебрасывать открытые окна между этими столами. В некоторых случаях это заметно облегчает работу – часть дел располагается на одном Рабочем столе, часть дел – на другом. Число виртуальных Рабочих столов может доходить до сотни.

Удобное расположение окон

Зачастую при работе неплохо бы иметь перед глазами сразу несколько окон. В таком случае встает вопрос их удобного расположения относительно друг друга. И вариант перекрытия одним окном другого здесь однозначно не подойдет. Windows позволяет быстро располагать окна на равные части экрана, разбив рабочую область на две части или четыре.

windows opened

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

Переключение между офисными документами

Если вы активно работаете с офисными документами в приложениях Microsoft Office, то вам может понравиться решение разработчиков по быстрому переходу между окнами. Работая с текстовым редактором Word, электронными таблицами Excel и презентациями PowerPoint, обратите на вкладку «Вид», где расположилась кнопка с названием «Перейти в другое окно». По нажатию на нее у вас откроется список открытых файлов в одноименном приложении. Просто кликните на название нужного, чтобы сделать его активным.

word change window

В принципе то же самое можно сделать на обычной Панели задач, кликнув на значок приложения. Но кого-то может отвлекать лишняя анимация в Windows, особенно если открытых окон действительно много. Поэтому «сухой» список с названиями открытых документов может оказаться более удобным.

Источник

При разработке приложений Windows, если вам нужно работать с другими окнами, вы можете использоватьEnumWindows Этот API используется для перечисления этих окон.

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


Содержание этой статьи

    • API, который будет использоваться
    • Пронумеровать все окна
    • С исходным кодом

API, который будет использоваться

Перечислить все окна нужно только использоватьEnumWindows, Который должен определить делегатаWndEnumProc Как тип входящего параметра.

В остальном нам потребуются различные другие методы для получения других свойств окна.

  • GetParent Получить родительское окно окна, которое может подтвердить, является ли найденное окно окном верхнего уровня. (Что касается верхнего окна, вы можете расширитьНекоторые проблемы при использовании SetParent для установки родительско-дочернего окна между процессами (осторожно, чтобы не застрять) -walterlv。)
  • IsWindowVisible Определите, видно ли окно
  • GetWindowText Получить заголовок окна
  • GetClassName Получить имя класса окна
  • GetWindowRect Получить положение и размер окна, для этого нам также нужно определить структуруLPRECT
private delegate bool WndEnumProc(IntPtr hWnd, int lParam);

[DllImport("user32")]
private static extern bool EnumWindows(WndEnumProc lpEnumFunc, int lParam);

[DllImport("user32")]
private static extern IntPtr GetParent(IntPtr hWnd);

[DllImport("user32")]
private static extern bool IsWindowVisible(IntPtr hWnd);

[DllImport("user32")]
private static extern int GetWindowText(IntPtr hWnd, StringBuilder lptrString, int nMaxCount);

[DllImport("user32")]
private static extern int GetClassName(IntPtr hWnd, StringBuilder lpString, int nMaxCount);

[DllImport("user32")]
private static extern bool GetWindowRect(IntPtr hWnd, ref LPRECT rect);

[StructLayout(LayoutKind.Sequential)]
private readonly struct LPRECT
{
    public readonly int Left;
    public readonly int Top;
    public readonly int Right;
    public readonly int Bottom;
}

Пронумеровать все окна

Я инкапсулировал вышеуказанный API вFindAll Функция и фильтр предоставления могут фильтровать множество окон, чтобы каждый мог их использовать.

Например, я написал следующий простой пример, который может выводить все видимые в данный момент окна с указанием их положения и размеров:

using System;

namespace Walterlv.WindowDetector
{
    class Program
    {
        static void Main(string[] args)
        {
            var windows = WindowEnumerator.FindAll();
            for (int i = 0; i < windows.Count; i++)
            {
                var window = windows[i];
                Console.WriteLine($@"{i.ToString().PadLeft(3, ' ')}. {window.Title}
     {window.Bounds.X}, {window.Bounds.Y}, {window.Bounds.Width}, {window.Bounds.Height}");
            }
            Console.ReadLine();
        }
    }
}

Вот FindAll Method, я предоставляю параметр по умолчанию, который может указать, как фильтровать все перечисленные окна. Если он не указан, он найдет окно, которое видно, содержит заголовок и не свернуто. Если вы хотите найти какие-то невидимые окна, вы можете написать свои собственные условия фильтрации.

Ничего не фильтруйте, просто передайте_ => true, Что означает, что все окна будут пронумерованы.

С исходным кодом

Поскольку исходный код будет часто обновляться, рекомендуется проверить здесь:

  • walterlv.demo/Walterlv.WindowDetector/Walterlv.WindowDetector at master · walterlv/walterlv.demo

Если вы не можете получить доступ, вы можете увидеть следующее:

using System;
using System.Collections.Generic;
using System.Drawing;
using System.Runtime.InteropServices;
using System.Text;

namespace Walterlv.WindowDetector
{
    /// <summary>
    /// Содержит методы для перечисления всех окон в текущем пользовательском пространстве.
    /// </summary>
    public class WindowEnumerator
    {
        /// <summary>
        /// Найти все подходящие окна в текущем пользовательском пространстве. Если условие не указано, поиск будет выполняться только в видимых окнах.
        /// </summary>
        /// <param name = "match"> Условия фильтрации окна. Если установлено значение null, будут найдены только видимые окна. </param>
        /// <returns> Найдена вся информация об окне. </returns>
        public static IReadOnlyList<WindowInfo> FindAll(Predicate<WindowInfo> match = null)
        {
            var windowList = new List<WindowInfo>();
            EnumWindows(OnWindowEnum, 0);
            return windowList.FindAll(match ?? DefaultPredicate);

            bool OnWindowEnum(IntPtr hWnd, int lparam)
            {
                // Находим только окно верхнего уровня.
                if (GetParent(hWnd) == IntPtr.Zero)
                {
                    // Получаем имя класса окна.
                    var lpString = new StringBuilder(512);
                    GetClassName(hWnd, lpString, lpString.Capacity);
                    var className = lpString.ToString();

                    // Получаем заголовок окна.
                    var lptrString = new StringBuilder(512);
                    GetWindowText(hWnd, lptrString, lptrString.Capacity);
                    var title = lptrString.ToString().Trim();

                    // Получить видимость окна.
                    var isVisible = IsWindowVisible(hWnd);

                    // Получаем положение и размер окна.
                    LPRECT rect = default;
                    GetWindowRect(hWnd, ref rect);
                    var bounds = new Rectangle(rect.Left, rect.Top, rect.Right - rect.Left, rect.Bottom - rect.Top);

                    // Добавляем в список найденных окон.
                    windowList.Add(new WindowInfo(hWnd, className, title, isVisible, bounds));
                }

                return true;
            }
        }

        /// <summary>
        /// Условия фильтрации окна поиска по умолчанию. Видимый + несвернутый + включает заголовок окна.
        /// </summary>
        private static readonly Predicate<WindowInfo> DefaultPredicate = x => x.IsVisible && !x.IsMinimized && x.Title.Length > 0;

        private delegate bool WndEnumProc(IntPtr hWnd, int lParam);

        [DllImport("user32")]
        private static extern bool EnumWindows(WndEnumProc lpEnumFunc, int lParam);

        [DllImport("user32")]
        private static extern IntPtr GetParent(IntPtr hWnd);

        [DllImport("user32")]
        private static extern bool IsWindowVisible(IntPtr hWnd);

        [DllImport("user32")]
        private static extern int GetWindowText(IntPtr hWnd, StringBuilder lptrString, int nMaxCount);

        [DllImport("user32")]
        private static extern int GetClassName(IntPtr hWnd, StringBuilder lpString, int nMaxCount);

        [DllImport("user32")]
        private static extern void SwitchToThisWindow(IntPtr hWnd, bool fAltTab);

        [DllImport("user32")]
        private static extern bool GetWindowRect(IntPtr hWnd, ref LPRECT rect);

        [StructLayout(LayoutKind.Sequential)]
        private readonly struct LPRECT
        {
            public readonly int Left;
            public readonly int Top;
            public readonly int Right;
            public readonly int Bottom;
        }
    }

    /// <summary>
    /// Получить основную информацию об окне Win32.
    /// </summary>
    public readonly struct WindowInfo
    {
        public WindowInfo(IntPtr hWnd, string className, string title, bool isVisible, Rectangle bounds) : this()
        {
            Hwnd = hWnd;
            ClassName = className;
            Title = title;
            IsVisible = isVisible;
            Bounds = bounds;
        }

        /// <summary>
        /// Получить дескриптор окна.
        /// </summary>
        public IntPtr Hwnd { get; }

        /// <summary>
        /// Получить имя класса окна.
        /// </summary>
        public string ClassName { get; }

        /// <summary>
        /// Получаем заголовок окна.
        /// </summary>
        public string Title { get; }

        /// <summary>
        /// Получаем, видно ли текущее окно.
        /// </summary>
        public bool IsVisible { get; }

        /// <summary>
        /// Получить текущую позицию и размер окна.
        /// </summary>
        public Rectangle Bounds { get; }

        /// <summary>
        /// Получить, свернуто ли в данный момент окно.
        /// </summary>
        public bool IsMinimized => Bounds.Left == -32000 && Bounds.Top == -32000;
    }
}

Мой блог начнется вhttps://blog.walterlv.com/, И CSDN будет выбирать и публиковать из него, но после публикации он редко обновляется.

Если вы видите в блоге что-то, чего не понимаете, сообщите об этом. я построилдотнет профессионально-технический колледж Приглашаем всех присоединиться.

Эта работа используетМеждународное лицензионное соглашение Creative Commons Attribution-Non-Commercial Use-Same Way Sharing 4.0Сделайте разрешение. Добро пожаловать на перепечатку, использование и повторную публикацию, но не забудьте сохранить подпись статьи Лу И (включая ссылку:https://walterlv.blog.csdn.net/), не должны использоваться в коммерческих целях, а измененные работы, основанные на этой статье, должны выпускаться под той же лицензией. Если есть вопросы, пожалуйстаСвяжитесь со мной。

Добавить комментарий