Program Windows untuk menghapus bilah judul, bingkai, dll dari jendela?


30

Saya suka bermain game komputer dalam mode berjendela, sebagai lawan dari layar penuh. Saya tidak suka menatap bilah judul, bingkai, dan sampah UI lainnya. Saya juga tidak suka melihat hal-hal lain di desktop saya di sekitar jendela. Apakah ada program Windows sederhana yang akan melepaskan chrome UI dari jendela sembarang dari beberapa aplikasi lain? Poin ekstra untuk cara mudah menempatkan layar hitam di bawah jendela, menyembunyikan desktop.

Catatan: Saya mencari secara khusus untuk menangani windows yang lebih kecil dari ukuran desktop saya. Ada berbagai pilihan 'maksimalisasi jendela' yang membuat jendela persis dengan ukuran desktop, dan diposisikan sehingga semua dekorasi UI tidak ditampilkan. (Misalnya: ShiftWindow). Saya mencoba untuk menghapus semua dekorasi dari jendela yang lebih kecil dari ukuran desktop.


Namun, untuk penggunaan khusus Anda, itu tergantung pada game mana. Game tidak berperilaku seperti program biasa, ketika berjendela. Beberapa bahkan tidak menangani dekorasi jendela ini, dan menggambar langsung di sudut kiri atas layar, misalnya. Faktanya adalah, mungkin sulit untuk menemukan solusi "universal", karena hal itu dapat bergantung pada bagaimana permainan itu diberikan, dan bagaimana masing-masing menangani mode jendela.
Gnoupi

Jawaban:


15

Hanya sesuatu yang kecil yang saya buat untuk keperluan saya setelah membaca komentar voodoomsr. Jadikan sudut kiri atas dan ubah ke resolusi penuh saya. Pulihkan seperti sebelumnya. Tidak dapat digunakan dengan beberapa aplikasi sekaligus.

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

EDIT:

TBH Saya mencoba menemukan sesuatu yang berguna untuk windows yang tidak mengubah ukuran tetapi tidak dapat menemukan apa-apa (tidak mengatakan bahwa itu tidak mungkin, ini sebenarnya skrip Autohotkey pertama saya).

Yah bagaimanapun saya membuat beberapa perubahan seperti menghapus tidur yang tidak perlu, menggunakan gaya yang disarankan Nelson dan membuatnya bekerja hanya dengan satu tombol sehingga mengklik dua kali tidak akan mengesampingkan variabel yang disimpan.

#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
Terima kasih, itu sangat dekat dengan apa yang saya inginkan! Satu-satunya hal yang tidak berfungsi dengan baik adalah jika jendela menolak untuk mengubah ukuran: itu berakhir di kiri atas dengan desktop terlihat di belakang. Berpusat di belakang hitam akan lebih disukai. Tetapi jika jendela ukurannya besar itu bagus. Satu perubahan kecil: style 0xC40000 tampaknya bekerja lebih baik, ini juga menghilangkan ukuran pegangan. Anda juga meninggalkan beberapa tidur: apakah mereka perlu?
Nelson

@Nelson Untuk windows menolak untuk mengubah ukuran, mungkin kita bisa menggunakan WinMaxmize dan WinRestroe (dengan auot-hide task-bar).
lemah

Skrip kedua Anda berfungsi dengan baik di Windows 10. Terima kasih banyak, persis apa yang saya cari!
Lucas

@Lucas Senang membantu, masih menggunakannya sendiri juga!
Mikuz

Jika saya tidak sengaja menggunakan skrip ini dengan desktop saya sebagai jendela aktif, pertama-tama desktop mendapatkan bilah teks dan ikon bergeser ke bawah. Jika saya jalankan lagi, ikon saya hilang. Jadi, perlu ada sesuatu untuk mendeteksi jika jendela adalah explorer.exe utama dan mengabaikan kunci + mousestroke (Menangkan 8.1 menggunakan antarmuka tipe klasik windows)
mpag

19

cukup gunakan skrip autohotkey ini:

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

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

Anda dapat mengunduh autohotkey dari sini http://www.autohotkey.com/download/ . Simpan file dengan ekstensi .ahk dan jalankan seperti aplikasi apa pun.

Pemakaian:

untuk menghapus bilah judul LWindowButton + Klik kiri

untuk mengembalikan bilah judul LWindowButton + Klik kanan


Ini berfungsi untuk kasus lain, seperti pertanyaan saya ini: superuser.com/questions/664559/... Namun, itu tidak berpengaruh pada, katakanlah, Google Chrome atau aplikasi berjendela. Ada petunjuk di sini? Saya pikir itu adalah bar yang dibuat khusus ...
igorsantos07

7

di sini adalah program yang dapat menghapus bilah judul untuk jendela apa pun. Untuk melakukan itu, Anda harus memilih jendela permainan di tampilan pohon WinExplorer daripada beralih ke tab 'Gaya' dan centang WS_DLGFRAME.


Ini adalah salah satu program terbaik di internet. Saya sudah menggunakannya selama bertahun-tahun. Saya benar-benar berharap itu dapat berjalan di system tray dan mengembalikan semua pengaturan yang Anda atur untuk aplikasi tertentu. yaitu, semacam dukungan profil.
Pengacara Setan

Apakah Anda harus menjalankan program ini dan melakukan ini setiap kali Anda menjalankan game?
Nickolai Leschov

3

Menggunakan AutoHotKey dan bilah tugas menyembunyikan otomatis.

LWin & f::

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

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

Mengapa menggunakan WinMaxmize? Lihat komentar dari jawaban Asd .


Bekerja dengan baik. Saya lebih suka mode sakelar daripada membuang dua tombol.
ceving


1

saya menemukan ini di forum HydrogenAudio:

Berikut screenshot Foobar 2000 tanpa bilah judul jendela:

masukkan deskripsi gambar di sini

Program yang digunakan disebut Flash Desktops (shareware)

Sayangnya mereka tidak benar-benar menguraikan pengaturan program untuk mencapai tujuan melainkan pada masalah memindahkan windows tanpa bilah judul. WindowBlinds juga disebutkan.


0

Jika Anda dapat membuat kode dan menjalankan Vista atau yang lebih baru, cukup mudah untuk membuat program yang mendaftarkan thumbnail DWM ke aplikasi dan kemudian Anda dapat memilih untuk hanya menampilkan konten jendela tanpa batas dalam thumbnail ini. Anda juga harus meneruskan semua input dari program overlay ini ke game dengan cara tertentu, tetapi itu juga tidak terlalu rumit.


0

Saya tidak lagi menjalankan Windows jadi tidak bisa menguji ini, tetapi Borderless Gaming adalah aplikasi open source yang tampak menjanjikan yang menyelesaikan masalah ini. Ini menunjukkan daftar aplikasi yang sedang berjalan dan memungkinkan Anda memilih satu untuk memanipulasi windows.


Banyak kode untuk 10 baris Autohotkey.
ceving

0

Saya mengalami masalah dengan jendela tertentu, yang dengan metode @Fishish dan kerangka kerja Mikuz akan mengambil ukuran jendela yang benar untuk jendela yang dimaksimalkan, tetapi tidak akan pergi ke posisi yang tepat.

Inilah solusi ahk saya

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

Jika Anda menginginkan jendela, tanpa Windows UI di sekitarnya, dan latar belakang hitam, yaitu gim dan hanya gim, mengapa tidak berjalan dalam mode layar penuh? Tentang satu-satunya mode windowed akan membuat Anda dalam keadaan yang sedikit lebih cepat kinerja Alt-Tab jika Anda punya aplikasi lain berjalan di latar belakang?

Jika memiliki layar bermain yang lebih kecil dari ukuran layar dan tanpa gangguan yang Anda incar, maka (dengan anggapan Anda menggunakan layar LCD) Anda biasanya dapat berjalan dalam mode layar penuh permainan, tetapi gunakan resolusi sedikit lebih rendah daripada resolusi asli LCD Anda, banyak layar LCD akan menampilkan layar yang dihasilkan dengan batas hitam di sekitarnya.


Saya mencari kinerja Alt-Tab yang lebih cepat. Sebenarnya lebih dari itu; Saya memiliki monitor kedua dan ingin dapat menggerakkan mouse saya ke sana.
Nelson

Cukup adil, saya bermain game dengan pengaturan dua monitor dan menjalankan sebagian besar game dalam mode berjendela untuk alasan yang sama. Secara pribadi saya biasanya mengatur res game untuk menjadi sama dengan res layar itu, dan secara manual cukup seret sehingga judul bar di bagian atas layar.
GAT Diambil
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.