창에서 제목 표시 줄, 프레임 등을 제거하는 Windows 프로그램?


30

나는 전체 화면이 아닌 창 모드에서 컴퓨터 게임을 좋아합니다. 제목 표시 줄, 프레임 및 기타 UI 정크를보고 싶지 않습니다. 나는 또한 창문 주위의 데스크탑에서 다른 것들을 보는 것을 좋아하지 않습니다. 다른 응용 프로그램에서 임의의 창에서 UI 크롬을 제거하는 간단한 Windows 프로그램이 있습니까? 바탕 화면을 숨기고 창 아래에 검은 색 화면을 쉽게 놓을 수있는 추가 지점.

참고 : 특히 데스크탑 크기보다 작은 창을 처리하려고합니다. 창 크기를 정확하게 바탕 화면으로 설정하고 모든 UI 장식이 화면을 벗어나도록 배치하는 다양한 '창 최대화'옵션이 있습니다. (예 : ShiftWindow). 데스크탑 크기보다 작은 창에서 모든 장식물을 제거하려고합니다.


그러나 특정 용도로는 게임에 따라 다릅니다. 창을 열 때 게임은 일반 프로그램처럼 동작하지 않습니다. 예를 들어 일부는이 창 장식을 처리하지 않고 화면의 왼쪽 상단에 직접 그립니다. 사실, 게임이 렌더링되는 방법과 각각이 창 모드를 처리하는 방법에 따라 "범용"솔루션을 찾기가 어려울 수 있습니다.
Gnoupi

답변:


15

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 스크립트였습니다).

어쨌든 나는 넬슨이 제안한 스타일을 사용하고 하나의 버튼으로 작동하도록 두 번 클릭해도 저장된 변수를 무시하지 않고 불필요한 수면을 제거하는 것과 같은 약간의 조정을했습니다.

#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

1
고마워, 그것은 내가 원하는 것과 매우 가깝습니다! 제대로 작동하지 않는 유일한 방법은 창의 크기 조정을 거부하는 경우입니다. 왼쪽 상단에서 바탕 화면을 볼 수있게됩니다. 뒤에 검은 색을 중심으로하는 것이 좋습니다. 그러나 창 크기를 조정할 수 있으면 좋습니다. 한 가지 사소한 조정 : 스타일 0xC40000이 더 잘 작동하는 것처럼 보이며 크기 조정 핸들도 제거합니다. 또한 당신은 약간의 잠을 떠났습니다. 그들이 필요합니까?
Nelson

@Nelson Windows 크기 조정을 거부하는 경우 WinMaxmize 및 WinRestroe (aut-hide 작업 표시 줄 포함)를 사용할 수 있습니다.
약화

두 번째 스크립트는 Windows 10에서 완벽하게 작동합니다. 감사합니다. 정확히 내가 찾던 것입니다!
Lucas

@Lucas 도와 드리겠습니다. 그래도 직접 사용하십시오!
Mikuz

실수로 데스크탑에서이 스크립트를 활성 창으로 사용하는 경우 먼저 데스크탑에 캡션 표시 줄이 나타나고 아이콘이 아래로 이동합니다. 다시 실행하면 아이콘이 사라집니다. 따라서 창이 기본 explorer.exe인지 감지하고 key + mousestroke를 무시하는 것이 필요합니다. (windows classic-type interface를 사용하는 win 8.1)
mpag

19

이 자동 단축 키 스크립트를 사용하십시오.

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

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

http://www.autohotkey.com/download/ 에서 autohotkey를 다운로드 할 수 있습니다 . 확장자가 .ahk 인 파일을 저장하고 다른 애플리케이션처럼 실행하십시오.

용법:

제목 표시 줄을 제거하려면 LWindowButton + 왼쪽 클릭

제목 표시 줄을 복원하려면 LWindowButton + 오른쪽 클릭


이것은 내 질문 : superuser.com/questions/664559/ 와 같은 다른 경우에도 작동합니다. 그러나 Chrome 또는 창 응용 프로그램에는 영향을 미치지 않습니다. 힌트가 있습니까? 나는 그것들이 주문 제작 된
바라고

7

다음 은 모든 창의 제목 표시 줄을 제거 할 수있는 프로그램입니다. 이를 위해서는 WinExplorer 트리보기에서 '스타일'탭으로 전환하고 WS_DLGFRAME을 체크 오프하는 것보다 게임 창을 선택해야합니다.


이것은 인터넷에서 가장 좋은 프로그램 중 하나입니다. 나는 수년간 그것을 사용 해왔다. 시스템 트레이에서 실행하고 특정 앱에 대해 설정 한 모든 설정을 복원 할 수 있기를 바랍니다. 즉, 일종의 프로파일 지원.
악마의 옹호자

게임을 실행할 때마다이 프로그램을 실행해야합니까?
Nickolai Leschov

3

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의 답변에 대한 의견을 참조하십시오 .


잘 작동합니다. 두 개의 키를 낭비하는 대신 토글 모드를 선호합니다.
ceving


1

HydrogenAudio 포럼에서 이것을 찾았습니다.

창 제목 표시 줄이없는 Foobar 2000의 스크린 샷은 다음과 같습니다.

여기에 이미지 설명을 입력하십시오

사용 된 프로그램을 Flash Desktops (쉐어웨어)라고합니다

불행히도 목표를 달성하기 위해 프로그램 설정을 정교하게 다루지 않고 제목 표시 줄없이 창을 이동하는 문제에 대해 자세히 설명하지 않습니다. WindowBlinds도 언급됩니다.


0

코딩 할 수 있고 Vista 이상을 실행하는 경우 DWM 썸네일을 응용 프로그램에 등록하는 프로그램을 만드는 것이 매우 쉽습니다.이 썸네일에 테두리없이 창 내용 만 표시하도록 선택할 수 있습니다. 또한이 오버레이 프로그램의 모든 입력을 어떤 식 으로든 게임에 전달해야하지만 그렇게 복잡하지도 않습니다.


0

더 이상 Windows를 실행하지 않으므로 테스트 할 수 없지만 Borderless Gaming 은이 문제를 해결하는 유망한 오픈 소스 응용 프로그램입니다. 실행중인 응용 프로그램 목록이 표시되고 창을 조작 할 응용 프로그램을 선택할 수 있습니다.


10 줄 AutoHotKey에 대한 많은 코드.
ceving

0

@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

-1

주변에 Windows UI가없는 창과 검은 색 배경 (예 : 게임 및 게임 제외)이 필요한 경우 전체 화면 모드로 실행하는 것이 어떻습니까? 창 모드에서 유일하게 다른 환경에서 다른 앱을 실행하고 있다면 Alt-Tab 성능이 약간 빠릅니다.

화면 크기보다 작고 방해받지 않고 재생 화면이있는 경우 (LCD 화면을 사용한다고 가정) 일반적으로 게임의 전체 화면 모드에서 실행할 수 있지만 약간 낮은 해상도를 사용하십시오 LCD의 기본 해상도보다 많은 LCD 화면에 결과 화면이 검은 색 테두리로 표시됩니다.


더 빠른 Alt-Tab 성능을 찾고 있습니다. 실제로는 그 이상입니다. 두 번째 모니터가 있는데 마우스를 움직일 수 있기를 원합니다.
Nelson

충분히, 나는 듀얼 모니터 설정에서 게임을하고 같은 이유로 대부분의 게임을 창 모드로 실행합니다. 개인적으로 나는 게임의 해상도를 해당 화면의 해상도와 동일하게 설정하고 제목 표시 줄이 화면 상단에서 벗어나도록 수동으로 드래그합니다.
GAThrawn
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.