Come posso impostare un hot corner in Windows 7?


10

Ho una configurazione a doppio monitor sul mio box di Windows 7 al lavoro. Vorrei sapere come (se possibile) posso impostare un angolo caldo per avviare lo screensaver o mettere in pausa il display?

Risposte:


12

In realtà, screensaver di Windows ha fatto avere questa funzione (almeno quelli inclusi come parte del Plus Pack, che veterani dovrebbero ricordare!):

1

In effetti, un bug davvero utile ha reso gli angoli caldi specificati per Plus! screensaver un'impostazione globale che si applicava a non Plus! anche salvaschermi!

Il modo più semplice per ottenere funzionalità simili in Windows ora potrebbe essere quello di utilizzare un'app AutoIT (fonte disponibile) chiamata, non a caso, Hot Corners . Può anche fare varie altre cose interessanti oltre a lanciare lo screensaver:

2


Questo non sembra funzionare su Windows 10, per la cronaca.
Giacomo Lacava,

3

Ecco un'app hotcorners che ho scritto, spero che ti piaccia! Ho anche rilasciato la fonte su github.

I dettagli sono disponibili su: https://sites.google.com/site/bytecar/home/hotcornersapp

Happy Hacking!


A differenza della risposta accettata, questo funziona bene con Windows 10 e anche con più monitor. Ottimo lavoro! Per la cronaca, ho notato che l'ultima build disponibile non include una funzionalità (monitoraggio sospensione) che è stata unita in Github, c'è qualche possibilità che tu possa aggiornarla? Grazie ancora per l'app.
Giacomo Lacava,

Ci sono due problemi in sospeso, 1) L'attivazione accidentale di hotcorner durante il gioco 2) la creazione di codice sleep unito (sembrano esserci alcuni problemi), funzionerà su questi due e rilascerà entro il 30 gennaio.
bytecar il

2

Ecco la mia versione rapida di PowerShell di questo se qualcuno è interessato ( spudorato post sul blog ) (o GitHub )

questo codice controlla il mouse in una determinata posizione (attualmente nell'angolo in basso a destra) e quindi attiva l'API di spegnimento del monitor Win32 ... visualizza un'icona della barra delle applicazioni come indicatore visibile in esecuzione insieme a un menu di scelta rapida per terminare l'esecuzione

purtroppo sono troppo verde per pubblicare schermate ... per ora fare riferimento al link github per informazioni affidabili

# 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

Uso - e raccomando di usare - HotCorners di AutoIT (o la variante di Mr Lekrem Yelsew, HotCorners 2). Non è proprio "Screener" (legacy Mac OS), ma fa quello che dovrebbe, e "esce quando viene chiesto" (cioè, non c'è alcun ritardo nel tornare al business da uno stato fissato da uno degli "angoli").

BZT


1
Grazie per le informazioni. Se potessi includere link ai programmi di cui stai parlando, sarebbe molto apprezzato.
CyberSkull
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.