Windows-Programm zum Entfernen von Titelleiste, Rahmen usw. aus einem Fenster?

84718
Nelson

Ich spiele Computerspiele lieber im Fenstermodus als im Vollbildmodus. Ich mag es nicht, auf die Titelleiste, den Frame und anderen UI-Junk zu starren. Ich mag es auch nicht, andere Dinge auf meinem Desktop zu sehen. Gibt es ein einfaches Windows-Programm, das den Benutzeroberflächen-Chrome aus einem beliebigen Fenster aus einer anderen Anwendung entfernt? Zusätzliche Punkte für eine einfache Möglichkeit, einen schwarzen Bildschirm unter dem Fenster zu platzieren, wodurch der Desktop ausgeblendet wird.

Hinweis: Ich suche speziell nach Fenstern, die kleiner als meine Desktopgröße sind. Es gibt eine Vielzahl von "maximierten" Fenstermöglichkeiten, die ein Fenster genau auf die Größe des Desktops ausrichten und so positioniert werden, dass alle Dekorationen der Benutzeroberfläche außerhalb des Bildschirms liegen. (ZB: ShiftWindow). Ich versuche, alle Dekorationen aus einem Fenster zu entfernen, das kleiner als die Desktopgröße ist.

28
Für Ihren speziellen Gebrauch hängt es jedoch von dem jeweiligen Spiel ab. Spiele verhalten sich bei Fenstern nicht wie ein normales Programm. Einige beherrschen diese Fensterdekoration nicht und zeichnen beispielsweise direkt in der oberen linken Ecke des Bildschirms. Tatsache ist, dass es schwierig sein könnte, eine "universelle" Lösung zu finden, da sie davon abhängen kann, wie das Spiel gerendert wird und wie jeder den Fenstermodus handhabt. Gnoupi vor 14 Jahren 0

10 Antworten auf die Frage

19
mjsr

Verwenden Sie einfach dieses Autohotkey-Skript:

;-Caption LWIN & LButton:: WinSet, Style, -0xC00000, A return ;  ;+Caption LWIN & RButton:: WinSet, Style, +0xC00000, A return ; 

Sie können autohotkey von hier http://www.autohotkey.com/download/ herunterladen . Speichern Sie die Datei mit der Erweiterung .ahk und führen Sie sie wie jede andere Anwendung aus.

Verwendungszweck:

So entfernen Sie die Titelleiste LWindowButton + Klicken Sie mit der linken Maustaste

Wiederherstellen der Titelleiste LWindowButton + Rechtsklick

Dies funktioniert für andere Fälle, wie diese Frage von mir: http://superuser.com/questions/664559/is-it-possible-to-remove-hide-windows-title-bars. Dies hat jedoch keine Auswirkung auf, sagen wir , Google Chrome oder Apps mit Fenster. Irgendein Hinweis hier? Ich denke, das sind maßgeschneiderte Bars ... igorsantos07 vor 10 Jahren 0
14
Mikuz

Nur etwas Kleines, das ich für meine Zwecke angefertigt habe, nachdem ich den Kommentar von Voodoomsr gelesen hatte. Ermöglicht es, nach links oben zu gehen und seine volle Auflösung zu ändern. Stellt wieder her wie vorher. Kann nicht gleichzeitig mit mehreren Apps verwendet werden.

Danke voodoomsr

;-Caption LWIN & LButton:: SetTitleMatchMode, 2 WinGetPos, X, Y, Width, Height, A WinSet, Style, -0xC00000, A WinMove,A,,0,0,1920,1080 return ;  ;+Caption LWIN & RButton:: WinSet, Style, +0xC00000, A WinMove,A,,%X%,%Y%,%Width%,%Height% Sleep, 1000 Sleep, 1000 return ; 

BEARBEITEN:

TBH Ich habe versucht, etwas Nützliches für Fenster zu finden, das die Größe nicht ändert, aber nichts finden konnte (ohne zu sagen, dass dies nicht möglich ist, dies war tatsächlich mein erstes Autohotkey-Skript).

Jedenfalls habe ich einige Verbesserungen vorgenommen, wie etwa das Entfernen unnötiger Schlafzustände, den von Nelson vorgeschlagenen Stil, und dafür sorgen, dass mit nur einer Taste gearbeitet wird, sodass das Doppelklicken nicht die gespeicherten Variablen überschreibt.

#SingleInstance force  ; Exclude the desktop ; Note: Also excludes "My Computer" browsing windows. ; Better detection might be needed to differentiate the parent explorer "ahk_id" from child windows. ; Also seems to disregard accidental Metro interface clicks (Win 8+) #IfWinNotActive ahk_exe explorer.exe  ; Set your resolution (minus decorations like start bars if you wish to leave those on-screen. w = 1920 h = 1080 w_wasted = 6 ; width used by resize bars h_wasted = 29 ; width used by caption frame and resize bars  ; Window to fullscreen LWIN & LButton:: SetTitleMatchMode, 2 WinGet Style, Style, A  ; 0xC40000 = WS_BORDER (0x800000) + WS_DLGFRAME (0x400000) + WS_SIZEBOX aka WS_THICKFRAME (0x040000) if(Style & 0xC00000) { ; if has WS_CAPTION. Ignore sizebox value. WinGetPos, X, Y, Width, Height, A WinSet, Style, -0xC40000, A ; removes attributes, including sizebox...doesn't do a strict subtraction WinMove,A,,0,0,w,h } else { WinSet, Style, +0xC40000, A ; Note: will set WS_SIZEBOX even if not previously present if(Width > w - w_wasted) {  Width := %w%-%w_wasted% } if(Height > h - h_wasted) { Height := %h%-%h_wasted% } WinMove,A,,%X%,%Y%,%Width%,%Height% } WinSet Redraw Return 
Danke, das ist sehr nahe an dem, was ich wollte! Das einzige, was nicht gut funktioniert, ist, wenn das Fenster die Größenänderung verweigert: Es landet oben links und der Desktop ist dahinter sichtbar. Zentriert mit schwarzem Rücken wäre zu bevorzugen. Aber wenn das Fenster skalierbar ist, ist es großartig. Ein kleinerer Tweak: Style 0xC40000 scheint besser zu funktionieren, entfernt auch die Ziehpunkte zur Größenänderung. Auch Sie haben ein wenig Schlaf hinterlassen: Sind sie notwendig? Nelson vor 13 Jahren 1
@Nelson Für Fenster, deren Größe nicht geändert werden kann, können wir vielleicht WinMaxmize und WinRestroe (mit auot-hide Taskleiste) verwenden. weakish vor 11 Jahren 0
Ihr zweites Skript funktioniert perfekt unter Windows 10. Vielen Dank, genau das, wonach ich gesucht habe! Lucas vor 8 Jahren 0
@Lucas Gerne zu helfen, ich benutze es auch selbst! Mikuz vor 8 Jahren 0
Wenn ich dieses Skript aus Versehen mit meinem Desktop als aktivem Fenster verwende, erhält der Desktop zunächst eine Beschriftungsleiste und die Symbole werden nach unten verschoben. Wenn ich es erneut starte, verschwinden meine Symbole. Es muss also etwas zu erkennen sein, wenn das Fenster die Haupt-Explorer.exe ist, und den Schlüssel + Mausstrich ignorieren. (Win 8.1 mit klassischer Windows-Schnittstelle) mpag vor 7 Jahren 0
Ich glaube auch, dass es keine Breite und Höhe pro Fenster speichert, sondern nur die vormaximierten Werte des letzten "super-maximierten" Fensters mpag vor 7 Jahren 0
Verwenden Sie `WinMaximize` und` WinRestore` anstelle von `WinMove`ing mit math A. Benötigt keine Breite / Höhe-Variablen. B. umgeht die pro-Anwendung Probleme; und C. Das Programm wird einfacher mpag vor 7 Jahren 0
6

here is a programm that can remove the titlebar for any window. To do that you must select games window in WinExplorer tree view than switch to 'Style' tab and check off WS_DLGFRAME.

Dies ist eines der besten Programme im Internet. Ich benutze es seit Jahren. Ich wünschte wirklich, es hätte die Möglichkeit, in der Taskleiste ausgeführt zu werden und alle Einstellungen wiederherzustellen, die Sie für bestimmte Apps festgelegt haben. dh eine Art Profilunterstützung. Scott Beeson vor 10 Jahren 0
Müssen Sie dieses Programm jedes Mal ausführen, wenn Sie das Spiel ausführen? Nickolai Leschov vor 6 Jahren 0
3
weakish

Verwenden von AutoHotKey und einer Taskleiste zum automatischen Ausblenden.

LWin & f::  WinGet Style, Style, A if(Style & 0xC40000) { WinSet, Style, -0xC40000, A WinMaximize, A   } else { WinSet, Style, +0xC40000, A WinRestore, A } return 

Warum verwenden WinMaxmize? Siehe Kommentare zu Asds Antwort .

Funktioniert gut. Ich bevorzuge den Toggle-Modus, anstatt zwei Tasten zu verschwenden. ceving vor 8 Jahren 0
2
Richard

CutAway by Skrommel might do what you want.

Cut Away

1
3498DB

Ich habe das in den HydrogenAudio-Foren gefunden:

Hier ist ein Screenshot von Foobar 2000 ohne eine Fenstertitelleiste:

enter image description here

Das verwendete Programm heißt Flash Desktops (Shareware).

Leider wird nicht näher auf die Programmeinstellungen eingegangen, um das Ziel zu erreichen, sondern auf das Problem, Fenster ohne Titelleiste zu verschieben. WindowBlinds wird auch erwähnt.

0

Wenn Sie Code programmieren können und Vista oder neuer ausführen, ist es ziemlich einfach, ein Programm zu erstellen, das ein DWM-Miniaturbild in der Anwendung registriert. Sie können dann auswählen, dass nur Fensterinhalt ohne Ränder in diesem Miniaturbild angezeigt wird. Sie müssen auch alle Eingaben aus diesem überlagernden Programm auf irgendeine Weise an das Spiel weiterleiten, aber das ist auch nicht besonders kompliziert.

0
Nelson

Ich führe Windows nicht mehr aus, kann das also nicht testen, aber Borderless Gaming ist eine vielversprechende Open-Source-App, die dieses Problem löst. Es zeigt eine Liste der laufenden Anwendungen und lässt Sie auswählen, um die Fenster zu bearbeiten.

Viel Code für 10 Zeilen AutoHotKey. ceving vor 8 Jahren 0
0
mpag

Ich hatte Probleme mit einem bestimmten Fenster, das mit @ schwachishs Methode und Mikuz 'Framework die richtige Fenstergröße für ein maximiertes Fenster annehmen würde, aber nicht an die richtige Stelle gehen würde.

Hier ist meine Ahk-Lösung

; ; AutoHotkey Version: 1.x ; Language: English ; Platform: Win2000+ ; Author: mpag derived from Mikuz ; ; Script Function: ; Window to "supermaximized". mpag solution from http://superuser.com/q/38687/319748 ; If you want fullscreen (no toolbars) try replacing calls to function WinSuperMax with WinFullscreen ; This script may still be in development ; Bugs: ; 1) Doesn't display scrollbars in standard maximized screen if it lost them upon supermax (unless you restore and re-maximize) ; 2) If supermaxing a background window that has menus within the Caption bar (e.g. firefox), you functionally just maximize but lose the min/restore/close buttons. Probably has something to do with the Style value. ; Memory Management/Clarity: ; 3) Doesn't clear G_ variable values before each run. if the number of monitors (virtual or otherwise) reduces, values for higher monitor numbers will still be set, but MonCount should still be valid and restrict use. also picks first match.  #NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases. #SingleInstance force  SendMode Input ; Recommended for new scripts due to its superior speed and reliability. SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.  MonGetCoords() { global ; for setting SysGet G_MonCount, MonitorCount loop %G_MonCount% { SysGet G_MonWA%A_Index%, MonitorWorkArea, %A_Index% SysGet G_MonFS%A_Index%, Monitor, %A_Index% } }  GetMon4xy(ByRef x="", ByRef y="", ByRef m="") { global ; getting local l:=0, u:=0 m := 0 ; even if sent, we want to clear it loop %G_MonCount% { l := G_MonFS%A_Index%Left u := G_MonFS%A_Index%Right if x not between %l% and %u% continue  l := G_MonFS%A_Index%Top u := G_MonFS%A_Index%Bottom if y not between %l% and %u% continue  m := A_Index break } }  WinSetSz(d, mp) { global local l, r, t, b l := %mp%Left r := %mp%Right t := %mp%Top b := %mp%Bottom WinMove ahk_id %d%,, l, t, r - l + 1, b - t + 1 return }  WinSuperMax(d, m) { mp = G_MonWA%m% ; the text of the name of the pointer WinSetSz(d, mp) return }  WinFullscreen(d, m) { mp = G_MonFS%m% WinSetSz(d, mp) return }  ; Exclude the desktop ; Note: Also excludes "My Computer" browsing windows. ; Better detection might be needed to differentiate the parent explorer "ahk_id" from child windows. ; Also seems to disregard accidental Metro interface clicks (Win 8+). ; May wish to verify that not only is explorer not the active window, but it wasn't the clicked-in window.  #IfWinNotActive ahk_exe explorer.exe  LWIN & LButton:: RCtrl & LButton:: SetTitleMatchMode, 2  ; monitor bounds and clicked window hwnd cm = %A_CoordModeMouse% ; not autoset in older AHK, but shouldn't matter as default is Screen CoordMode Mouse, Screen MouseGetPos mpx, mpy, d ; was d := WinExist("A") but that would go for the active window, rather than the clicked-in-window CoordMode Mouse, %cm% MonGetCoords() GetMon4xy(mpx, mpy, mpm)  ; toggle the style WinGet Style, Style, ahk_id %d% ; 0xC40000 = WS_BORDER (0x800000) + WS_DLGFRAME (0x400000) + WS_SIZEBOX or WS_THICKFRAME (0x040000) if(Style & 0xC00000) { ; if has WS_CAPTION (WS_BORDER+WS_DLGFRAME) we want to supermax it v%d%decs := Style & 0x040000 ; decorations, specifically WS_SIZEBOX WinGet v%d%mm, MinMax, ahk_id %d% ; -1=min, 0=normal, 1=max WinSet Style, -0xC40000, ahk_id %d% ; removes most window decoration, including WS_SIZEBOX if applicable ; if a "normal" window, get the coords and maximize. If minimized, maximize. If maximized, make sure correctly positioned if(!v%d%mm) { ; normal window WinGetPos v%d%x, v%d%y, v%d%w, v%d%h, ahk_id %d% } if(v%d%mm < 1) { ; normal or minimized WinMaximize ahk_id %d% ; set flag to maximized to preserve windows' restore button functionality upon un-supermax to maximized screen }  WinSuperMax(d, mpm) ; it is now supermaximized. Now make sure it's positioned correctly } else { ; it's super-maximized already, so need to restore it to former position. if (v%d%decs) { WinSet Style, +0xC40000, A ; set WS_SIZEBOX and WS_CAPTION } else { WinSet Style, +0xC00000, A ; set only WS_CAPTION } if(v%d%mm = 0) { ; not either previously Maximized nor previously Minimized WinRestore ahk_id %d% ; restore standard window + set MinMax flag to non-maxxed  } else { WinSuperMax(d, mpm) ; Maximized flag should still be set } } WinSet Redraw ; ListVars Return 
-1
GAThrawn

Wenn Sie ein Fenster ohne Windows-Benutzeroberfläche und einen schwarzen Hintergrund wünschen, dh das Spiel und nichts als das Spiel, warum werden Sie nicht einfach im Vollbildmodus ausgeführt? Der einzige Fenstermodus wäre, wenn Sie in diesem Fall etwas schneller sind, wenn Sie eine andere App im Hintergrund ausführen.

Wenn es sich um einen Bildschirm handelt, der kleiner als die Bildschirmgröße ist und keine Ablenkungen vorhanden sind, können Sie (vorausgesetzt, Sie verwenden einen LCD-Bildschirm) normalerweise im Vollbildmodus des Spiels laufen, aber eine etwas niedrigere Auflösung verwenden als die native Auflösung Ihres LCDs, zeigen viele LCD-Bildschirme dann den resultierenden Bildschirm mit einem schwarzen Rand an.

Ich suche nach einer schnelleren Alt-Tab-Leistung. Eigentlich mehr als das; Ich habe einen zweiten Monitor und möchte meine Maus darauf bewegen können. Nelson vor 14 Jahren 0
Fairerweise kann ich auf einem Dual-Monitor-Setup spielen und die meisten Spiele aus dem gleichen Grund im Fenstermodus ausführen. Ich persönlich stelle normalerweise die Res des Spiels so ein, dass es den Ress des Bildschirms entspricht, und ziehen Sie es manuell, so dass die Titelleiste vom oberen Rand des Bildschirms entfernt wird. GAThrawn vor 14 Jahren 0