全画面表示ではなく、ウィンドウモードでコンピューターゲームをプレイするのが好きです。タイトルバー、フレーム、その他のUIジャンクを見つめるのは好きではありません。また、デスクトップ上のウィンドウの周りに他のものが表示されるのも好きではありません。他のアプリケーションから任意のウィンドウからUI chromeを取り除く簡単なWindowsプログラムはありますか?デスクトップの下にあるウィンドウの下に黒い画面を配置する簡単な方法のための追加のポイント。
注:私は、デスクトップのサイズよりも小さいウィンドウを処理するように特に探しています。さまざまな「ウィンドウ最大化」オプションがあり、ウィンドウをデスクトップのサイズに正確に合わせて配置し、すべてのUI装飾が画面外になるようにします。 (例:ShiftWindow)。デスクトップサイズよりも小さいウィンドウからすべての装飾を削除しようとしています。
Voodoomsrのコメントを読んだ後、私が目的のために作成した小さな何か。左上隅に移動し、私の最大解像度にサイズ変更します。以前と同じように復元します。複数のアプリで同時に使用することはできません。
ありがとう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
;
編集:
TBHサイズを変更できないが何も見つからないウィンドウに役立つものを見つけようとしました(不可能ではない、これは実際に私の最初のAutohotkeyスクリプトでした)。
とにかく、不要なスリープを削除する、Nelsonが提案したスタイルを使用する、1つのボタンだけで機能するように微調整したので、ダブルクリックしても保存された変数は上書きされません。
#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
次のautohotkeyスクリプトを使用してください。
;-Caption
LWIN & LButton::
WinSet, Style, -0xC00000, A
return
;
;+Caption
LWIN & RButton::
WinSet, Style, +0xC00000, A
return
;
ここからオートホットキーをダウンロードできます http://www.autohotkey.com/download/ 。拡張子.ahkを付けてファイルを保存し、他のアプリケーションと同じように実行します。
使用法:
タイトルバーを削除するにはLWindowButton +左クリック
タイトルバーを復元するにはLWindowButton +右クリック
here は、任意のウィンドウのタイトルバーを削除できるプログラムです。そのためには、WinExplorerのツリービューでゲームウィンドウを選択してから、[スタイル]タブに切り替えてWS_DLGFRAMEをオフにする必要があります。
AutoHotKeyと自動非表示タスクバーの使用。
LWin & f::
WinGet Style, Style, A
if(Style & 0xC40000) {
WinSet, Style, -0xC40000, A
WinMaximize, A
} else {
WinSet, Style, +0xC40000, A
WinRestore, A
}
return
WinMaxmize
を使用する理由 Asdの回答 のコメントを参照してください。
CutAway Skrommelがあなたのやりたいことをするかもしれません。
私はこれをHydrogenAudioフォーラムで見つけました:
ウィンドウのタイトルバーを除いたFoobar 2000のスクリーンショットは次のとおりです。
使用されるプログラムは Flash Desktops (シェアウェア)と呼ばれます
残念ながら、目標を達成するためのプログラム設定については詳しく説明していませんが、タイトルバーなしでウィンドウを移動する問題については詳しく説明しています。 WindowBlindsについても説明します。
私はもはやWindowsを実行していないのでこれをテストすることはできませんが、 ボーダーレスゲーム はこの問題を解決する有望な外観のオープンソースアプリです。実行中のアプリケーションのリストが表示され、アプリケーションを選択してウィンドウを操作できます。
コードを作成でき、Vista以降を実行している場合、DWMサムネイルをアプリケーションに登録するプログラムを作成するのは非常に簡単です。次に、このサムネイルに枠のないウィンドウコンテンツのみを表示するように選択できます。また、このオーバーレイプログラムからのすべての入力を何らかの方法でゲームに転送する必要がありますが、それもそれほど複雑ではありません。
@weakishのメソッドとMikuzのフレームワークを使用すると、最大化されたウィンドウの正しいウィンドウサイズが取得されますが、適切な位置に移動しない特定のウィンドウで問題が発生していました。
これが私のahkソリューションです
;
; 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