ฉันจะตั้งค่ามุมร้อนใน Windows 7 ได้อย่างไร


10

ฉันมีการตั้งค่าจอภาพสองจอในกล่อง Windows 7 ที่ทำงาน ฉันต้องการทราบว่า (ถ้าเป็นไปได้) ฉันสามารถตั้งค่ามุมร้อนเพื่อเริ่มต้นสกรีนเซฟเวอร์หรือทำให้หน้าจอเข้าสู่โหมดสลีปได้อย่างไร

คำตอบ:


12

ที่จริงหน้าจอของ Windows ได้มีคุณสมบัตินี้ (อย่างน้อยที่รวมเป็นส่วนหนึ่งของพลัสแพ็คซึ่งเก่านับควรจำไว้!):

1

อันที่จริงข้อผิดพลาดที่มีประโยชน์จริงๆทำให้มุมร้อนที่ระบุไว้สำหรับ Plus! สกรีนเซฟเวอร์การตั้งค่าระดับโลกที่ใช้กับ non-Plus! สกรีนเซฟเวอร์เช่นกัน!

วิธีที่ง่ายที่สุดที่จะได้รับการทำงานที่คล้ายกันใน Windows ในขณะนี้อาจจะมีการใช้แอพพลิเค AutoIT (แหล่งที่มาใช้ได้) เรียกว่าไม่น่าแปลกใจฮอตลูกเตะมุม นอกจากนี้ยังสามารถทำสิ่งที่น่าสนใจอื่น ๆ อีกมากมายนอกเหนือจากการเปิดตัวสกรีนเซฟเวอร์:

2


ดูเหมือนจะไม่สามารถใช้งานได้กับ Windows 10 สำหรับบันทึก
Giacomo Lacava

3

นี่คือแอป hotcorners ที่ฉันเขียนหวังว่าคุณจะสนุกกับมัน! ฉันยังปล่อยแหล่งที่มาใน GitHub

รายละเอียดสามารถพบได้ที่: https://sites.google.com/site/bytecar/home/hotcornersapp

แฮ็คมีความสุข!


ต่างจากคำตอบที่ยอมรับได้ซึ่งใช้ได้ดีกับ Windows 10 และจอภาพหลายจอเช่นกัน เยี่ยมมาก! สำหรับบันทึกฉันสังเกตเห็นว่าบิลด์ที่มีให้เลือกล่าสุดไม่ได้รวมคุณสมบัติ (การนอนหลับของจอภาพ) ที่รวมอยู่ใน Github มีโอกาสใดบ้างที่คุณสามารถอัปเดตได้ ขอบคุณสำหรับแอปอีกครั้ง
Giacomo Lacava

มีปัญหาที่โดดเด่นสองประการคือ 1) การเปิดใช้งาน hotcorners โดยบังเอิญในขณะที่เล่นเกม 2) การสร้างรหัสการนอนหลับที่ผสาน (ดูเหมือนจะมีปัญหา) จะทำงานในสองสิ่งนี้
bytecar

2

นี่คือฉบับย่อ PowerShell ของฉันหากใครสนใจ ( บล็อกโพสต์บล็อกไร้ยางอาย ) (หรือGitHub )

รหัสนี้มองหาเมาส์ในตำแหน่งที่แน่นอน (ปัจจุบันอยู่ที่มุมขวาล่าง) จากนั้นจะเรียกใช้การปิดการทำงานของ Win32 Win32 API ... มันแสดงไอคอนถาดงานเป็นตัวบ่งชี้การทำงานที่มองเห็นได้พร้อมกับเมนูบริบทเพื่อสิ้นสุดการดำเนินการ

ขออภัยฉันเขียวเกินไปที่จะโพสต์ภาพหน้าจอ ... สำหรับตอนนี้โปรดดูที่ลิงค์ GitHub สำหรับข้อมูลที่มีประสิทธิภาพ

# Source: http://www.powershellmagazine.com/2013/07/18/pstip-how-to-switch-off-display-with-powershell/

# Turn display off by calling WindowsAPI.

# SendMessage(HWND_BROADCAST,WM_SYSCOMMAND, SC_MONITORPOWER, POWER_OFF)
# HWND_BROADCAST  0xffff
# WM_SYSCOMMAND   0x0112
# SC_MONITORPOWER 0xf170
# POWER_OFF       0x0002

Add-Type -TypeDefinition '
using System;
using System.Runtime.InteropServices;

namespace Utilities {
   public static class Display
   {
      [DllImport("user32.dll", CharSet = CharSet.Auto)]
      private static extern IntPtr SendMessage(
         IntPtr hWnd,
         UInt32 Msg,
         IntPtr wParam,
         IntPtr lParam
      );

      public static void PowerOff ()
      {
         SendMessage(
            (IntPtr)0xffff, // HWND_BROADCAST
            0x0112,         // WM_SYSCOMMAND
            (IntPtr)0xf170, // SC_MONITORPOWER
            (IntPtr)0x0002  // POWER_OFF
         );
      }
   }
}
'

Add-Type -AssemblyName System.Windows.Forms

$notifyIcon = New-Object System.Windows.Forms.NotifyIcon
$notifyIcon.Icon = New-Object System.Drawing.Icon "$(Split-Path -parent $PSCommandPath)\icon.ico"
$notifyIcon.Text = "Hot Corners"

$notifyIcon.add_MouseDown( { 
  if ($script:contextMenu.Visible) { $script:contextMenu.Hide(); return }
  if ($_.Button -ne [System.Windows.Forms.MouseButtons]::Left) {return}

  #from: http://stackoverflow.com/questions/21076156/how-would-one-attach-a-contextmenustrip-to-a-notifyicon
  #nugget: ContextMenu.Show() yields a known popup positioning bug... this trick leverages notifyIcons private method that properly handles positioning
  [System.Windows.Forms.NotifyIcon].GetMethod("ShowContextMenu", [System.Reflection.BindingFlags] "NonPublic, Instance").Invoke($script:notifyIcon, $null)
})

$contextMenu = New-Object System.Windows.Forms.ContextMenuStrip
$contextMenu.ShowImageMargin = $false
$notifyIcon.ContextMenuStrip = $contextMenu
$contextMenu.Items.Add( "E&xit", $null, { $notifyIcon.Visible = $false; [System.Windows.Forms.Application]::Exit() } ) | Out-Null
$contextMenu.Show(); $contextMenu.Hide() #just to initialize the window handle to give to $timer.SynchronizingObject below

$timer = New-Object System.Timers.Timer
$timer.Interval = 500
$timer.add_Elapsed({
  $mouse = [System.Windows.Forms.Cursor]::Position
  $bounds = [System.Windows.Forms.Screen]::FromPoint($mouse).Bounds #thank you! - http://stackoverflow.com/questions/26402955/finding-monitor-screen-on-which-mouse-pointer-is-present

  <#    __  __              _          __  __            __              ____
       / / / /__  ________ ( )_____   / /_/ /_  ___     / /_  ___  ___  / __/
      / /_/ / _ \/ ___/ _ \|// ___/  / __/ __ \/ _ \   / __ \/ _ \/ _ \/ /_  
     / __  /  __/ /  /  __/ (__  )  / /_/ / / /  __/  / /_/ /  __/  __/ __/  
    /_/ /_/\___/_/   \___/ /____/   \__/_/ /_/\___/  /_.___/\___/\___/_/     #>
  # currently set to trigger at lower right corner... season to your own taste (e.g. upper left = 0,0)
  if ($mouse.X-$bounds.X -gt $bounds.Width-10 -and $mouse.Y -gt $bounds.Height-10) { [Utilities.Display]::PowerOff() }

  #run the ps1 from command line to see this output
  #debug: Write-Host "x: $($mouse.X), y:$($mouse.Y), width: $($bounds.Width), height: $($bounds.Height), sleep: $($mouse.X-$bounds.X -gt $bounds.Width-10 -and $mouse.Y -gt $bounds.Height-10)"
})

#frugally reusing $contextMenu vs firing up another blank form, not really necessary but i was curious if it'd work... the notify icon itself does not implement InvokeRequired
#see this for why SynchronizingObject is necessary: http://stackoverflow.com/questions/15505812/why-dont-add-eventname-work-with-timer
$timer.SynchronizingObject = $contextMenu

$timer.start()
$notifyIcon.Visible = $true
[System.Windows.Forms.Application]::Run()

0

ฉันใช้ - และฉันแนะนำให้ใช้ - HotCorners ของ AutoIT (หรือการเปลี่ยนแปลงของ Mr Lekrem Yelsew, HotCorners 2) มันไม่ใช่ "Screener" (ดั้งเดิม Mac OS) แต่มันทำในสิ่งที่ควรจะเป็นและ "ออกเมื่อถูกถาม" (กล่าวคือไม่มีความล่าช้าในการกลับสู่ธุรกิจจากสถานะที่กำหนดโดย 'มุม')

BZT


1
ขอบคุณสำหรับข้อมูล. หากคุณสามารถรวมลิงค์ไปยังโปรแกรมที่คุณกำลังพูดถึงได้นั่นก็จะเป็นที่ชื่นชมอย่างมาก
CyberSkull
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.