11

В Windows Snipping Tool мне хотелось бы знать, как я могу использовать инструмент выделения для рисования прямых линий?

4 ответа4

8

Инструмент для разрезания Windows не позволяет рисовать прямые линии нажатием Shift. Windows Ink Workspace - это еще один инструмент, который поддерживает обрезку и рисование оторванной части. У него есть виртуальная линейка, которая помогает нам рисовать прямые линии.


Чтобы включить Windows Ink Workspace

Щелкните правой кнопкой мыши в любом месте панели задач и в контекстном меню выберите «Показать рабочую область чернил Windows». Значок ручки, написанной в форме буквы «S», появится в области уведомлений справа.

Чтобы запустить рабочее пространство, щелкните или коснитесь значка рабочей области Windows Ink Workspace в форме ручки, который появляется в области уведомлений.

Значок в области уведомлений


Нажмите на блок "Эскиз экрана". Это будет третий блок в списке. Он автоматически сделает снимок экрана вашего дисплея и загрузит его для создания эскизов.

Эскиз экрана в рабочей области Windows Ink


Перейдите к панели перо в правом верхнем углу экрана.


Выберите значок линейки. Это похоже на диагональную линейку.


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

Образец эскиза Образец эскиза


Надеюсь это поможет.

Примечание. Эскиз экрана - это новая функция, доступная в годовом обновлении Windows 10

7

У пользователя 3DWizard есть хороший скрипт AutoHotKey, который я немного изменил, чтобы помочь мне решить эту проблему. Удерживайте Shift внутри окна Snipping Tool, чтобы ограничить движение мыши по горизонтали.

SendMode Input ; Recommended for new scripts due to its superior speed and reliability
SetTitleMatchMode 2 ; Allows for partial matches in window titles

; Commands specific to when Snipping Tool is open
#IfWinActive, Snipping Tool
  $*Shift::
    Send {Shift Down}
    CoordMode, Mouse, Screen
    MouseGetPos, SetX, SetY
    ; clip the cursor to a rectangle that consists just of a line in x-direction
    ClipCursor(true, -1000000, SetY, 1000000, SetY+1)
    KeyWait Shift
  return

  $*Shift Up::
    Send {Shift Up}
    ClipCursor(false, 0, 0, 0, 0) ; unclip the cursor
  return

  ClipCursor(Confine=True, x1=0 , y1=0, x2=1, y2=1)
  {
    VarSetCapacity(R, 16, 0), NumPut(x1, &R+0), NumPut(y1, &R+4), NumPut(x2, &R+8), NumPut(y2, &R+12)
    Return Confine ? DllCall("ClipCursor", UInt, &R) : DllCall("ClipCursor")
  }
#IfWinActive
2

Ответ от @HaveSpacesuit не работал для меня в Windows 10.

Отпускание Shift не отпускало курсор.

Чтобы это исправить, измените третью строку со спины на:

Return Confine ? DllCall( "ClipCursor", UInt,&R ) : DllCall( "ClipCursor", UInt, 0 )

Весь рабочий код:

SendMode Input ; Recommended for new scripts due to its superior speed and reliability
SetTitleMatchMode 2 ; Allows for partial matches in window titles
CoordMode, Mouse, Screen  

; Commands specific to when Snipping Tool is open
#IfWinActive, Snipping Tool
  $*Shift::
    Send {Shift Down}
    MouseGetPos, SetX, SetY
    ClipCursor( true, -10000, SetY, 10000, SetY+1 ) ;clip the cursor to a rectangle that consists just of a line in x-direction
    KeyWait Shift
  return

  $*Shift Up::
    Send {Shift Up}
    ClipCursor( false, 0, 0, 0, 0 ) ; unclip the cursor
  return

  ClipCursor( Confine=True, x1=0 , y1=0, x2=1, y2=1 ) {
    VarSetCapacity(R,16,0),  NumPut(x1,&R+0),NumPut(y1,&R+4),NumPut(x2,&R+8),NumPut(y2,&R+12)
    Return Confine ? DllCall( "ClipCursor", UInt,&R ) : DllCall( "ClipCursor", UInt, 0 )
  }
#IfWinActive
1

Я придумал очень низкотехнологичное решение для этого: MouseKeys!

Я просто настроил его так, чтобы при каждом отключении NumLock активировались MouseKeys. Затем я просто выравниваю курсор выделения, "нажимаю", нажимая NumPad-0, затем перемещаюсь вправо, используя NumPad-6. NumPad-5, по-видимому, последовательно "разжимается" в конце; У меня были смешанные результаты, снова нажимая NumPad-0.

Обратите внимание, что это решение "MouseKeys всегда включено", вероятно, удобно только на полной клавиатуре рабочего стола. Если у вас есть общий QWERTY/NumPad, вы можете использовать горячую клавишу MouseKeys вместо того, чтобы активировать / деактивировать.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .