Windows programı başlık çubuğu, çerçeve vb. Bir pencereden kaldırılsın mı?


30

Tam ekran yerine bilgisayar oyunları pencereli modda oynamayı seviyorum. Başlık çubuğuna, çerçeveye ve diğer UI önemsizlerine bakmayı sevmiyorum. Ayrıca masaüstümde pencerenin etrafında başka şeyler görmekten de hoşlanmıyorum. UI kromunu başka bir uygulamadan rastgele bir pencereden çıkaracak basit bir Windows programı var mı? Pencerenin altına siyah bir ekran koymak ve masaüstünü gizlemek için kolay bir yol için ekstra noktalar.

Not: Özellikle masaüstü boyutumdan daha küçük pencereleri ele almak istiyorum. Bir pencereyi tamamen masaüstü boyutunda yapan ve tüm UI süslemeleri ekran dışı olacak şekilde konumlandırılmış çeşitli 'pencereli maksimize' seçenekleri vardır. (Örn: ShiftWindow). Tüm süsleri masaüstü boyutundan daha küçük bir pencereden uzağa çıkarmaya çalışıyorum.


Özel kullanımınız için olsa da, hangi oyuna bağlı. Oyunlar, pencerelendiğinde normal bir program gibi davranmaz. Bazıları bu pencere dekorasyonunu bile işlemez ve örneğin ekranın sol üst köşesine doğrudan çizim yapar. İşin aslı, oyunun nasıl yapıldığına ve her birinin pencere modunu nasıl kullandığına bağlı olabileceğinden, “evrensel” bir çözüm bulmak zor olabilir.
Gnoupi

Yanıtlar:


15

Sadece voodoomsr'ın yorumunu okuduktan sonra amaçlarım için yaptığım küçük bir şey. Sol köşeye gitmesini sağlar ve tam çözünürlüğüme göre yeniden boyutlandırır. Daha önce olduğu gibi geri yükler. Aynı anda birden fazla uygulama ile kullanılamaz.

Teşekkürler 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
;

DÜZENLE:

TBH Yeniden boyutlandırılmayan ancak hiçbir şey bulamayan pencereler için kullanışlı bir şey bulmaya çalıştım (mümkün olmadığını söyleyerek değil, bu aslında benim ilk Autohotkey betiğimdi).

Her neyse, gereksiz uykuları kaldırmak, Nelson'ın önerdiği stili kullanarak ve tek bir düğmeyle çalışmasını sağlamak için bazı değişiklikler yaptım, böylece çift tıklamak kaydedilen değişkenleri geçersiz kılmaz.

#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
Teşekkürler, istediğim şeye çok yakın! İyi çalışmayan tek şey, pencerenin yeniden boyutlandırılmasını reddetmesidir: sol üstte, masaüstünün arkasında görünmesiyle sona erer. Siyah arkayla ortalanmış olması tercih edilir. Ama pencere yeniden boyutlandırılabilir ise harika. Küçük bir ince ayar: stil 0xC40000 daha iyi çalışıyor gibi görünüyor, yeniden boyutlandırma tutamaçlarını da kaldırıyor. Ayrıca biraz uykuya daldın: gerekli mi?
Nelson

@Nelson Pencerelerin yeniden boyutlandırılmasını reddetmek için, belki sadece WinMaxmize ve WinRestroe (auot-hide görev çubuğuyla) kullanabiliriz.
zayıf

İkinci senaryonuz Windows 10'da mükemmel çalışıyor. Teşekkürler, tam olarak aradığım şey!
Lucas

@Lucas Yardım etmek için mutlu, hala kendim de kullanıyordum!
Mikuz

Yanlışlıkla bu betiği masaüstümde aktif pencere olarak kullanıyorsam, önce masaüstü bir altyazı çubuğu alır ve simgeler aşağı kaydırır. Tekrar çalıştırırsam, düzlük ikonlarım kayboluyor. Öyleyse, pencerenin ana explorer.exe olup olmadığını algılamak ve key + mousestroke tuşunu yoksaymak için bir şey olması gerekir. (Windows klasik tip arabirimini kullanarak 8.1 kazan)
mpag

19

sadece bu autohotkey betiğini kullanın:

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

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

autohotkey'i http://www.autohotkey.com/download/ adresinden indirebilirsiniz . Dosyayı .ahk uzantılı kaydedin ve herhangi bir uygulama gibi çalıştırın.

Kullanımı:

başlık çubuğunu kaldırmak için LWindowButton + Sol tıklatma

başlık çubuğunu geri yüklemek için LWindowButton + Sağ tıklama


Bu, benim de bu soru gibi, diğer durumlar için işe yarıyor: superuser.com/questions/664559/… Ancak Google Chrome veya pencereli uygulamalar üzerinde hiçbir etkisi yapmıyor. Herhangi bir ipucu var mı? Sanırım bunlar özel
yapım

7

işte herhangi bir pencerenin başlık çubuğunu kaldırabilecek bir program. Bunu yapmak için WinExplorer ağaç görünümünde oyun penceresini 'Stil' sekmesine geçip WS_DLGFRAME adlı dosyayı işaretlemeniz gerekir.


Bu internetteki en iyi programlardan biridir. Yıllardır kullanıyorum. Gerçekten sistem tepsisinde çalıştırmak ve belirli uygulamalar için ayarladığınız tüm ayarları geri yükleme yeteneği olsaydı. yani, bir tür profil desteği.
Şeytanın Avukatı

Bu programı çalıştırmanız ve oyunu her çalıştırdığınızda yapmanız gerekiyor mu?
Nickolai Leschov 28:17

3

AutoHotKey ve bir otomatik gizleme görev çubuğunu kullanarak.

LWin & f::

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

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

Neden kullanılmalı WinMaxmize? Asd'ın cevabı hakkındaki yorumları görün .


İyi çalışıyor. İki anahtarı boşa harcamak yerine geçiş modunu tercih ederim.
49'da


1

Bunu HydrogenAudio forumlarında buldum:

İşte Foobar 2000'in pencere başlık çubuğu olmayan ekran görüntüsü:

görüntü tanımını buraya girin

Kullanılan program Flash Masaüstü (shareware) olarak adlandırılır.

Ne yazık ki, hedefe ulaşmak için program ayarları üzerinde yoğunlaşmıyorlar, daha ziyade pencereleri başlık çubuğu olmadan taşımak sorununda. WindowBlinds da belirtilmiştir.


0

Kodlayabiliyorsanız ve Vista veya daha yeni bir sürümü kullanıyorsanız, uygulamaya bir DWM küçük resmi kaydeden bir program yapmak oldukça kolaydır ve bu durumda yalnızca bu küçük resim içinde kenarlıksız pencere içeriğini göstermeyi seçebilirsiniz. Ayrıca, bu bindirme programından oyuna tüm girdileri bir şekilde iletmek zorundasınız ancak bu da çok karmaşık değil.


0

Artık Windows kullanmıyorum , bu yüzden bunu test edemiyorum, ancak Borderless Gaming bu sorunu çözen umut verici görünen açık kaynaklı bir uygulama. Çalışan uygulamaların bir listesini gösterir ve pencereleri değiştirmek için bir tane seçmenizi sağlar.


10 satır AutoHotKey için çok kod.
59'da

0

Belirli bir pencereyle ilgili sorun yaşıyordum; @ zayıf yöntemiyle ve Mikuz'un çerçevesiyle, büyütülmüş bir pencere için doğru pencere boyutunu alabiliyordu, ancak doğru konuma gitmiyordu.

İşte benim ahk çözümüm

;
; 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'sı olmayan bir pencere ve siyah bir arka plan, yani oyun ve oyun dışında hiçbir şey istemiyorsanız, neden sadece tam ekran modunda değilsiniz? Pencereli mod hakkında tek bir şey hakkında, arka planda çalışan başka bir uygulamanız varsa, Alt-Tab performansı daha düşük bir hızda sizi yakalar.

Ekran boyutundan daha küçük olan bir oyun ekranına sahipseniz ve peşinizdeyken dikkatinizi dağıtmadan, o zaman (bir LCD ekran kullanıyorsunuzdur) normalde oyunun tam ekran modunda çalışabilirsiniz, ancak biraz daha düşük bir çözünürlük kullanın. LCD'nizin yerel çözünürlüğünden daha fazla sayıda LCD ekran, sonuçta ortaya çıkan ekranı etrafında siyah bir kenarlıkla gösterecek.


Alt-Tab performansını daha hızlı arıyorum. Aslında bundan daha fazlası; İkinci bir monitörüm var ve faremi üzerine getirebilmek istiyorum.
Nelson

Yeterince adil, bir çift monitör kurulumunda oynarım ve aynı nedenden dolayı çoğu oyunu pencereli modda çalıştırırım. Şahsen normalde oyunun resini o ekranın resiyle aynı olacak şekilde ayarladım ve elle sürükleyerek sadece başlık çubuğunun ekranın üstünden çıkmasını sağladım.
GAThrawn
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.