Програма Windows для видалення панелі заголовка, кадру тощо з вікна?


30

Мені подобається грати в комп'ютерні ігри у віконному режимі, на відміну від повноекранного. Мені не подобається дивитись на заголовок, фрейм та інші непотрібні інтерфейси користувача. Мені також не подобається бачити інші речі на робочому столі біля вікна. Чи є якась проста програма Windows, яка позбавить хром інтерфейсу інтерфейсу довільного вікна від якоїсь іншої програми? Додаткові бали за простий спосіб поставити чорний екран під вікном, ховаючи робочий стіл.

Примітка. Я шукаю спеціально для обробки вікон, менших за розмір робочого столу. Існує безліч варіантів "максимізованих вікон", які роблять вікно точно за розміром робочого столу та розміщуються таким чином, щоб усі прикраси інтерфейсу не виходили на екран. (Наприклад: ShiftWindow). Я намагаюся зняти всі прикраси подалі від вікна, меншого за розмір робочого столу.


Однак, для вашого конкретного використання, це залежить від гри. Ігри не ведуть себе як звичайні програми, коли їх відкривають. Деякі навіть не справляються з цим оформленням вікон, і малюють, наприклад, прямо у верхньому лівому куті екрана. Факт полягає в тому, що "універсальне" рішення може бути важким, оскільки це може залежати від того, як гра відображається, і як кожен обробляє режим вікна.
Gnoupi

Відповіді:


15

Просто щось маленьке, що я зробив для своїх цілей, прочитавши коментар вудумсра. Змушує його йти лівим кутом вгору та змінювати розмір до мого повного дозволу. Відновлює, як було раніше. Неможливо використовувати декілька додатків одночасно.

Дякую 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 Я спробував знайти щось корисне для Windows, яке не змінює розмір, але нічого не могло знайти (не кажучи про те, що це неможливо, це був фактично мій перший сценарій 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 Для Windows відмовляються змінювати розміри, можливо, ми можемо просто використовувати WinMaxmize та WinRestroe (з панеллю завдань auot-hid).
слабкий

Ваш другий сценарій відмінно працює в Windows 10. Дякую, саме те, що я шукав!
Лукас

@Lucas Рада допомогти, але все ще використовую її!
Мікуз

Якщо я випадково використовую цей скрипт на робочому столі як активне вікно, спочатку на робочому столі з’являється панель підписів, а піктограми зміщуються вниз. Якщо я запускаю його знову, мої піктограми згладжуються. Отже, потрібно щось визначити, чи це вікно головне Explor.exe і ігнорувати клавішу + натискання миші. (win 8.1 за допомогою інтерфейсу Windows класичного інтерфейсу)
mpag

19

просто використовуйте цей сценарій автоматичної клавіші:

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

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

Ви можете завантажити автоматичну клавішу звідси http://www.autohotkey.com/download/ . Збережіть файл із розширенням .ahk і запустіть його, як і будь-яку програму.

Використання:

щоб видалити рядок заголовка LWindowButton + клацання лівою кнопкою миші

щоб відновити рядок заголовка LWindowButton + Клацніть правою кнопкою миші


Це працює для інших випадків, як-от це моє питання: superuser.com/questions/664559/… Однак, це не впливає, скажімо, на Google Chrome або на додатки з вікнами. Будь-який натяк тут? Я думаю, що це бари на замовлення ...
igorsantos07

7

ось програма, яка може видалити заголовок для будь-якого вікна. Для цього вам потрібно вибрати вікно ігор у перегляді дерева WinExplorer, ніж перейти на вкладку «Стиль» та вимкнути WS_DLGFRAME.


Це одна з найкращих програм в Інтернеті. Я використовую його роками. Я дуже хочу, щоб вона мала можливість запускатись у системному треї та відновлювати всі налаштування, які ви встановили для конкретних програм. тобто якась підтримка профілю.
Адвокат диявола

Чи потрібно запускати цю програму і робити це кожен раз, коли ви запускаєте гру?
Микола Лещів

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? Дивіться коментарі відповіді Асда .


Добре працює. Я віддаю перевагу режиму тумблера, а не витрачати дві клавіші.
закінчення


1

я виявив це на форумах HydrogenAudio:

Ось знімок екрана Foobar 2000 без заголовка вікна:

введіть тут опис зображення

Використовувана програма називається Flash Desktops (умовно-безкоштовне)

На жаль, вони не дуже детально розробляють налаштування програми для досягнення мети, а проблему переміщення вікон без заголовка. Також згадується WindowBlinds.


0

Якщо ви можете кодувати, а ви працюєте з Vista або новішою версією, зробити програму, яка реєструє мініатюру DWM для програми, досить просто, і ви можете вибрати, щоб у цьому мініатюрі відображався лише вміст вікон без меж. Вам також доведеться певним чином передавати всі дані від цієї накладеної програми на гру, але це теж не дуже складно.


0

Я більше не запускаю Windows, тому не можу перевірити це, але безмежна гра - це багатообіцяючий додаток з відкритим кодом, який вирішує цю проблему. Він показує список запущених програм і дозволяє вибрати один для маніпулювання вікнами.


Багато коду на 10 рядків AutoHotKey.
закінчення

0

У мене виникли проблеми з конкретним вікном, яке за допомогою методу @ slabish та фреймворку Mikuz прийняло би правильний розмір вікна для максимального вікна, але не піде в потрібне положення.

Ось моє рішення ах

;
; 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 навколо нього, і чорного тла, тобто гри і нічого, крім гри, чому б просто не запуститись у повноекранному режимі? Про єдине, що в режимі віконного режиму - це привести вас до цієї обставини - це трохи швидша продуктивність Alt-Tab, якщо у вас інший додаток працює у фоновому режимі?

Якщо у вас ігровий екран, менший за розмір екрана, і не має ніяких відволікань, які ви шукаєте, тоді (припускаючи, що ви використовуєте РК-екран), ви можете нормально працювати в повноекранному режимі гри, але використовувати роздільну здатність трохи нижче ніж рідна роздільна здатність вашого РК-дисплея, на багатьох РК-екранах з'явиться отриманий екран із чорною облямівкою навколо нього.


Я шукаю швидшого виконання Alt-Tab. Насправді більше того; У мене є другий монітор і хочу, щоб я міг перенести на нього мишу.
Нельсон

Справедливо кажучи, я граю на налаштуваннях з подвійним монітором і запускаю більшість ігор у віконному режимі з тієї ж причини. Особисто я зазвичай встановлюю, що відповідність гри буде такою ж, як і в цьому екрані, і вручну просто перетягуйте її, щоб заголовка була вгорі екрана.
GAThrawn
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.