Chương trình Windows để loại bỏ thanh tiêu đề, khung, vv từ một cửa sổ?


30

Tôi thích chơi game trên máy tính ở chế độ cửa sổ, trái ngược với toàn màn hình. Tôi không thích nhìn chằm chằm vào thanh tiêu đề, khung và các rác UI khác. Tôi cũng không thích nhìn thấy những thứ khác trên máy tính để bàn của mình xung quanh cửa sổ. Có một chương trình Windows đơn giản nào sẽ loại bỏ giao diện người dùng chrome khỏi cửa sổ tùy ý khỏi một số ứng dụng khác không? Thêm điểm cho một cách dễ dàng để đặt một màn hình đen bên dưới cửa sổ, ẩn màn hình nền.

Lưu ý: Tôi đang tìm cách đặc biệt để xử lý các cửa sổ nhỏ hơn kích thước máy tính để bàn của tôi. Có nhiều tùy chọn 'tối đa hóa cửa sổ' làm cho cửa sổ chính xác kích thước màn hình và được định vị để tất cả các trang trí UI đều tắt màn hình. (Ví dụ: ShiftWindow). Tôi đang cố gắng loại bỏ tất cả các đồ trang trí ra khỏi một cửa sổ nhỏ hơn kích thước máy tính để bàn.


Đối với việc sử dụng cụ thể của bạn, mặc dù, nó phụ thuộc vào trò chơi nào. Các trò chơi không hoạt động như một chương trình thông thường, khi được mở cửa sổ. Một số thậm chí không xử lý trang trí cửa sổ này, và vẽ trực tiếp ở góc trên cùng bên trái của màn hình, ví dụ. Thực tế là, có thể khó tìm ra giải pháp "phổ quát", vì nó có thể phụ thuộc vào cách trò chơi được hiển thị và cách mỗi chế độ xử lý chế độ cửa sổ.
Gnoupi

Câu trả lời:


15

Chỉ là một cái gì đó nhỏ mà tôi đã thực hiện cho mục đích của mình sau khi đọc bình luận của voodoomsr. Làm cho nó đi lên góc trái và thay đổi kích thước đến độ phân giải đầy đủ của tôi. Phục hồi như trước đây. Không thể được sử dụng với nhiều ứng dụng cùng một lúc.

Cảm ơn 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
;

CHỈNH SỬA:

TBH Tôi đã cố gắng tìm thứ gì đó hữu ích cho các cửa sổ không thay đổi kích thước nhưng không thể tìm thấy bất cứ thứ gì (không nói rằng điều đó là không thể, đây thực sự là tập lệnh Autohotkey đầu tiên của tôi).

Dù sao thì tôi cũng đã thực hiện một số điều chỉnh như loại bỏ những giấc ngủ không cần thiết, sử dụng kiểu mà Nelson gợi ý và làm cho nó hoạt động chỉ với một nút để nhấp đúp sẽ không ghi đè lên các biến đã lưu.

#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
Cảm ơn, rất gần với những gì tôi muốn! Điều duy nhất không hoạt động tốt là nếu cửa sổ từ chối thay đổi kích thước: nó kết thúc ở phía trên bên trái với màn hình nền hiển thị phía sau. Trung tâm với màu đen phía sau sẽ được ưa thích hơn. Nhưng nếu cửa sổ có thể thay đổi kích thước thì thật tuyệt. Một điều chỉnh nhỏ: kiểu 0xC40000 dường như hoạt động tốt hơn, nó cũng loại bỏ các tay cầm thay đổi kích thước. Ngoài ra, bạn còn lại một số giấc ngủ: họ có cần thiết?
Nelson

@Nelson Đối với các cửa sổ từ chối thay đổi kích thước, có lẽ chúng ta chỉ cần sử dụng WinMaxmize và WinRestroe (với thanh tác vụ auot-hide).
yếu

Kịch bản thứ hai của bạn hoạt động hoàn hảo trên Windows 10. Cảm ơn rất nhiều, chính xác những gì tôi đang tìm kiếm!
Lucas

@Lika Rất vui được giúp đỡ, bản thân tôi cũng đang sử dụng nó!
Mikuz

Nếu tôi vô tình sử dụng tập lệnh này với máy tính để bàn của mình làm cửa sổ hoạt động, đầu tiên máy tính để bàn có một thanh chú thích và các biểu tượng chuyển xuống. Nếu tôi chạy lại, các biểu tượng của tôi sẽ biến mất. Vì vậy, cần phải có một cái gì đó để phát hiện nếu cửa sổ là explorer.exe chính và bỏ qua khóa + mousestroke. (thắng 8.1 bằng giao diện windows kiểu cổ điển)
mpag

19

chỉ cần sử dụng tập lệnh autohotkey này:

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

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

bạn có thể tải xuống autohotkey từ đây http://www.autohotkey.com/doad/ . Lưu tệp với phần mở rộng .ahk và chạy nó như bất kỳ ứng dụng nào.

Sử dụng:

để xóa thanh tiêu đề LWindowButton + Nhấp chuột trái

để khôi phục thanh tiêu đề LWindowButton + Nhấp chuột phải


Điều này hoạt động cho các trường hợp khác, như câu hỏi này của tôi: superuser.com/questions/664559/ Khăn Tuy nhiên, nó không có tác dụng gì đối với Google Chrome hoặc các ứng dụng cửa sổ của nó. Có gợi ý nào ở đây không? Tôi nghĩ đó là những quán bar được làm riêng ...
igorsantos07

7

đây là một chương trình có thể loại bỏ thanh tiêu đề cho bất kỳ cửa sổ nào. Để làm điều đó, bạn phải chọn cửa sổ trò chơi trong chế độ xem dạng cây WinExplorer thay vì chuyển sang tab 'Style' và kiểm tra WS_DLGFRAME.


Đây là một trong những chương trình tốt nhất trên internet. Tôi đã sử dụng nó trong nhiều năm. Tôi thực sự mong muốn nó có khả năng chạy trong khay hệ thống và khôi phục tất cả các cài đặt bạn đặt cho các ứng dụng cụ thể. tức là một số loại hỗ trợ hồ sơ.
Người ủng hộ của quỷ

Bạn có phải chạy chương trình này và làm điều này mỗi khi bạn chạy trò chơi không?
Nickolai Leschov

3

Sử dụng AutoHotKey và thanh tác vụ tự động ẩn.

LWin & f::

WinGet Style, Style, A
if(Style & 0xC40000) {
  WinSet, Style, -0xC40000, A
  WinMaximize, A 

} else {
  WinSet, Style, +0xC40000, A
  WinRestore, A
}
return

Tại sao nên sử dụng WinMaxmize? Xem bình luận của câu trả lời của Asd .


Hoạt động tốt. Tôi thích chế độ chuyển đổi thay vì lãng phí hai phím.
ceving


1

tôi tìm thấy điều này tại các diễn đàn HydrogenAudio:

Đây là ảnh chụp màn hình của Foobar 2000 mà không có thanh tiêu đề cửa sổ:

nhập mô tả hình ảnh ở đây

Chương trình được sử dụng được gọi là Flash Desktops (phần mềm chia sẻ)

Thật không may, họ không thực sự xây dựng các cài đặt chương trình để đạt được mục tiêu mà thay vào đó là vấn đề di chuyển các cửa sổ mà không có thanh tiêu đề. WindowBlinds cũng được đề cập.


0

Nếu bạn có thể viết mã và bạn đang chạy Vista hoặc mới hơn, thật dễ dàng để tạo một chương trình đăng ký hình thu nhỏ DWM cho ứng dụng và sau đó bạn có thể chọn chỉ hiển thị nội dung cửa sổ không có viền trong hình thu nhỏ này. Bạn cũng phải chuyển tiếp tất cả đầu vào từ chương trình lớp phủ này vào trò chơi theo một cách nào đó nhưng điều đó cũng không quá phức tạp.


0

Tôi không còn chạy Windows nữa nên không thể kiểm tra điều này, nhưng Borderless Gaming là một ứng dụng nguồn mở có triển vọng sẽ giải quyết vấn đề này. Nó hiển thị danh sách các ứng dụng đang chạy và cho phép bạn chọn một ứng dụng để thao tác với các cửa sổ.


Nhiều mã cho 10 dòng AutoHotKey.
ceving

0

Tôi gặp vấn đề với một cửa sổ cụ thể, với phương pháp của @ yếu và khung của Mikuz sẽ có kích thước cửa sổ chính xác cho cửa sổ tối đa, nhưng sẽ không đi đúng vị trí.

Đây là giải pháp ahk của tôi

;
; 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

Nếu bạn muốn có một cửa sổ, không có giao diện người dùng Windows xung quanh và nền đen, tức là trò chơi và không có gì ngoài trò chơi, tại sao không chạy ở chế độ toàn màn hình? Về điều duy nhất chế độ cửa sổ sẽ đưa bạn đến trong tình huống đó là hiệu suất Alt-Tab nhanh hơn một chút nếu bạn có một ứng dụng khác đang chạy ẩn?

Nếu nó có màn hình chơi nhỏ hơn kích thước màn hình và không gây phiền nhiễu cho bạn, thì (giả sử bạn đang sử dụng màn hình LCD), bạn thường có thể chạy ở chế độ toàn màn hình của trò chơi, nhưng sử dụng độ phân giải thấp hơn một chút so với độ phân giải gốc LCD của bạn, nhiều màn hình LCD sẽ hiển thị màn hình kết quả có viền đen xung quanh màn hình.


Tôi đang tìm kiếm hiệu suất Alt-Tab nhanh hơn. Thật ra còn hơn thế nữa; Tôi có một màn hình thứ hai và muốn có thể di chuyển chuột đến đó.
Nelson

Đủ công bằng, tôi chơi game trên một thiết lập màn hình kép và chạy hầu hết các trò chơi ở chế độ cửa sổ với cùng một lý do. Cá nhân tôi thường đặt độ phân giải của trò chơi giống với độ phân giải của màn hình đó và chỉ cần kéo thủ công để thanh tiêu đề nằm ngoài đỉnh màn hình.
GAThrawn
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.