Wie setze ich eine heiße Ecke in Windows 7?

10

Ich habe ein Dual-Monitor-Setup auf meiner Windows 7-Box bei der Arbeit. Ich möchte wissen, wie ich (wenn möglich) eine heiße Ecke einstellen kann, um den Bildschirmschoner zu starten oder das Display in den Ruhezustand zu versetzen.

CyberSkull
quelle

Antworten:

12

Eigentlich Windows - Bildschirmschoner hat diese Funktion haben (zumindest enthalten jene , die als Teil des Plus - Pack, das Oldtimer erinnern sollte!):

1

In der Tat hat ein wirklich nützlicher Fehler die für Plus! Bildschirmschoner eine globale Einstellung, die für Nicht-Plus gilt! Bildschirmschoner auch!

Der einfachste Weg, ähnliche Funktionen in Windows zu erhalten, ist möglicherweise die Verwendung einer AutoIT-App (Quelle verfügbar) mit dem Namen Hot Corners . Neben dem Start des Bildschirmschoners kann es noch verschiedene andere interessante Dinge tun:

2

Karan
quelle
Dies scheint unter Windows 10 nicht zu funktionieren.
Giacomo Lacava
3

Hier ist eine Hotcorners-App, die ich geschrieben habe. Ich hoffe, es gefällt euch! Ich habe auch die Quelle auf Github veröffentlicht.

Details finden Sie unter: https://sites.google.com/site/bytecar/home/hotcornersapp

Viel Spaß beim Hacken!

Bytecar
quelle
Im Gegensatz zur akzeptierten Antwort funktioniert dies auch mit Windows 10 und mehreren Monitoren. Gut gemacht! Ich habe festgestellt, dass der letzte verfügbare Build keine Funktion (Monitor-Ruhezustand) enthält, die in Github zusammengeführt wurde. Gibt es eine Möglichkeit, dass Sie dies aktualisieren können? Nochmals vielen Dank für die App.
Giacomo Lacava
Es gibt zwei offene Probleme: 1) Versehentliches Aktivieren von Hotcornern während des Spiels 2) Erstellen eines zusammengeführten Schlafcodes (es scheint einige Probleme zu geben). Wird an diesen beiden arbeiten und bis zum 30. Januar veröffentlicht.
Bytecar
2

Hier ist meine QuickSh PowerShell-Version davon, wenn jemand interessiert ist ( schamloser Blog-Post-Plug ) (oder GitHub )

Dieser Code sucht an einer bestimmten Position (derzeit in der unteren rechten Ecke) nach der Maus und löst dann die Win32-Monitor-Ausschalt-API aus. Er zeigt ein Taskleistensymbol als sichtbare laufende Anzeige sowie ein Kontextmenü an, um die Ausführung zu beenden

Leider bin ich zu grün, um Screenshots zu posten

# 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()
Beej
quelle
0

Ich verwende - und empfehle die Verwendung - die HotCorners von AutoIT (oder die HotCorners 2 von Herrn Lekrem Yelsew). Es ist nicht ganz "Screener" (Legacy-Mac OS), aber es macht das, was es soll, und "wird beendet, wenn man gefragt wird" (dh es gibt keine Verzögerung, wenn man aus einem Zustand, der durch eine der "Ecken" festgelegt ist, wieder zum Geschäft zurückkehrt.)

BZT

SilversleevesX
quelle
1
Danke für die Information. Wenn Sie bitte Links zu den Programmen einfügen könnten, über die Sie sprechen, wäre dies sehr dankbar.
CyberSkull