Windows 7-Funktion oder Freeware, um ein Fenster immer unter anderen zu halten

1418
Gnubie

Einige Programme, z. B. GridMove und XNeat, ermöglichen Benutzern, ein bestimmtes Fenster mit einem "Always On Top" -Befehl über anderen Fenstern zu halten. Gibt es eine Möglichkeit, den umgekehrten Weg, dh "Always At The Bottom", mit allen Windows 7-Befehlen oder Freeware dafür zu machen, außer indem alle anderen Fenster "Always On Top" gemacht werden?

Manchmal ist es nützlich, Chat-Programme (in die eingetippt wird) unter allen Fenstern zu halten, wobei nur das letzte Nachrichten- und Texteingabefeld durch die Lücken der Fenster sichtbar ist, ohne dass der Rest der Benutzeroberfläche des Chat-Programms den Speicherplatz stört.

8
Nein, es gibt keine integrierte Funktion in der Win32-Bibliothek, die es einem Programmierer ermöglicht, eine Anwendung in den Hintergrund zu zwingen. Es ist logischer, dass andere Anwendungen in den "Vordergrund" gehen. Ramhound vor 8 Jahren 1
Als Alternative können Sie das Fenster so anzeigen lassen, dass es seine Transparenz ändert (viele Tools können dies tun). Oder Sie können AutoHotkey verwenden, um es in das Ablagefach zu minimieren. (Wenn dies den Zweck nicht erfüllt :-)) Ankit vor 8 Jahren 0
Obwohl Win32 dies nativ unterstützt, können Sie jederzeit ein bestimmtes Fenster in den Hintergrund senden. Ich weiß nicht, ob es sich dann weiter konzentriert. Vielleicht suchen Sie nach einer Möglichkeit, das Fenster automatisch nach hinten zu schieben, sobald es den Fokus verliert. Eine weitere Alternative ist das Kacheln der Fenster, sodass Sie sich nicht um z-index sorgen müssen ... MarioDS vor 8 Jahren 1

2 Antworten auf die Frage

1
climenole

Wenn Sie einen mit ATI Radeon Graphic Card ausgestatteten PC besitzen, können Sie HydraGrid mit den neuesten ATI-Treibern und -Dienstprogrammen verwenden, falls dies nicht Winsplit Revolution ist .

1
mr.spuratic

Vor langer Zeit hatte Windows ein PowerToy (später in TweakUI) namens X-Mouse, das unter anderem den X-Fokus "old-style" ("folgt Maus") unterstützte, wobei "focus" und "vordergrund" nicht dasselbe waren. Ich glaube nicht, dass es mehr aufrechterhalten wird (letzte Sicht war für WinXP).

Obwohl ich es nicht ausgiebig verwendet habe, kann das kostenlose Windows- Skripttool AutoIT mit einem kurzen Skript das tun, was Sie möchten:

#include <WinAPI.au3> #include <Constants.au3> #include <WindowsConstants.au3> #include <MenuConstants.au3> #include <SendMessage.au3>  Local $hWnd,$flags,$regexp  Func MyExit()  MsgBox(0,"Drop Window","Quitting!",2)  Exit 0 EndFunc  $flags = BitOr($SWP_NOMOVE,$SWP_NOSIZE,$SWP_NOACTIVATE,$SWP_ASYNCWINDOWPOS,$SWP_NOSENDCHANGING)   ;; hot key to call exit: ALT + F11 HotKeySet("!","MyExit")  ;; application window title $regexp=".*Notepad$"  ;; 10 second time out on first startup,  $hWnd = WinWait("[REGEXPTITLE:" & $regexp & "]", "", 10) ;; or wait forever ;$hWnd = WinWait("[REGEXPTITLE:" & $regexp & "]")  If ($hWnd) Then ;; uncomment next line to maximize window first ;_SendMessage($hWnd,$WM_SYSCOMMAND,$SC_MAXIMIZE)  _WinAPI_SetWindowPos($hWnd, $HWND_BOTTOM, 0, 0, 0, 0, $flags);  While 1 If WinWaitActive($hWnd,"",10) Then _WinAPI_SetWindowPos($hWnd, $HWND_BOTTOM, 0, 0, 0, 0, $flags); EndIf ;; check for new window $hWnd = WinWait("[REGEXPTITLE:" & $regexp & "]","",1)   ;; uncomment next 3 lines to quit if no window ;if (NOT $hWnd) Then ; MyExit() ;EndIf  Sleep(250) Wend Else MsgBox(0,"Drop Window","No window title matching /" & $regexp & "/")  EndIf 

"topmost" ist eine persistente Fenstereigenschaft, die das WM verwaltet, es gibt kein äquivalentes "bottom most", also müssen wir es etwas fälschen.

Die While-Schleife wartet darauf, dass die Anwendung den Vordergrund erhält, und lässt sie wieder untergehen, während der Tastaturfokus erhalten bleibt. Modale Popups können dies manchmal stören, sollten aber durchaus brauchbar sein. Das Skript wird nach Beendigung des überwachten Programms weiterhin im Hintergrund ausgeführt. Alt + F11, um es jederzeit zu verlassen.

Ändern Sie $ regexp entsprechend "mIRC" oder was auch immer. Das Obige behandelt jeweils nur ein Fenster zuverlässig. Lesen Sie die AutoIT-Dokumente für WinWait (), um zu erfahren, wie Sie andere Fenster als den Fenstertitel anpassen.

Speichern Sie die Datei dropwindow.au3 und führen Sie sie mit "autoit3 dropwindow.au3" aus.

http://www.autoitscript.com/site/autoit/downloads/