it-swarm.asia

كيفية نقل النوافذ التي تفتح خارج الشاشة؟

لدي إعداد شاشة مزدوجة ، ولقد لعبت مؤخرًا حولها مع إعدادات تحديد المواقع ، وتفضل بعض تطبيقات نافذتي الفردية الحفاظ على مكان آخر إغلاق لها ، وفتحها في نفس الموضع لاحقًا. لسوء الحظ ، هذا يضعهم الآن خارج المنطقة القابلة للعرض على الشاشات الخاصة بي!

هل هناك طريقة لفرض نافذة معينة في المنطقة التي يمكن رؤيتها؟

265
Matthew Scharley

بالنسبة إلى Windows 7 والمستخدمين الأحدث: Windows Key+Shift+ أو  سينقل النافذة المحددة إلى الشاشة في هذا الاتجاه.

192
andho

أنا استخدم هذا النهج:

  • استعمال Alt+Tab للتبديل إلى التطبيق خارج الشاشة.
  • صحافة Alt+SPACE لإظهار قائمة النظام (لن تراها لأنها خارج الشاشة)
  • صحافة R لتحديد خيار قائمة "استعادة" لضمان عدم تكبير النوافذ (لا يمكنك تحريكها إذا تم تكبيرها)
  • صحافة Alt+SPACE مرة أخرى ، ثم M لتحديد خيار القائمة "نقل".
  • اضغط على أحد مفاتيح الأسهم لبدء الحركة.
  • الآن فقط استخدم الماوس لوضع النافذة في المكان الذي تريده.

إذا كنت تستخدم إصدارًا غير الإنجليزية من Windows ، فمن المحتمل أن تكون اختيارات القائمة "R" و "M" مختلفة.

422
Terje Mikal

بالنسبة لنظام التشغيل Windows 10 ، يمكنك استخدام الإطار القديم مع خدعة مفاتيح المؤشر التي تحتاج إلى امتلاكها Shift الضغط على المفتاح عند فتح قائمة السياق من شريط المهام.

enter image description here

معلومات من كيفية المهوس

14
Brad Patton

يمكنك النقر بزر الماوس الأيمن فوق زر البرنامج على شريط المهام ، ثم النقر فوق "نقل". يمكنك الآن استخدام أزرار الأسهم على لوحة المفاتيح لتحريك النافذة حيث يمكنك رؤيتها. يتطلب بعض العبث ، وأحيانًا تتعطل النوافذ على حواف الشاشات. يمكنك أيضًا تجربة استخدام الماوس ، لكن لوحة المفاتيح أكثر موثوقية قليلاً إذا لم تتمكن من رؤية النافذة بعد ؛-)

12
Emthigious

مرة أخرى قبل وجود شريط المهام ، اعتدت على إصلاح هذه المشكلة مع Alt+Space لإظهار قائمة النافذة ، ثم M لوظيفة Move. ستسمح لك مفاتيح الأسهم بعد ذلك بنقل النافذة مرة أخرى على الشاشة.

8
Greg Hewgill

هناك طريقة سريعة أخرى تتمثل في النقر فوق r في شريط المهام وتحديد Cascade Windows.

8
T. Kaltnekar

تحرير: توقف حسب التعليقات

لحل هذه المشكلة بسرعة في المستقبل ، ولوضع التطبيقات على الشاشة المزدوجة ، يمكنني أن أوصي Winsplit Revolution . فهو يقلل من حل هذه المشكلة إلى مجرد الضغط على Ctrl-Alt ومفتاح لوحة الأرقام لوضع النافذة في المكان الذي تريده بالضبط.

5
Andy

لقد واجهت هذه المشكلة ، ولم يعمل أي شيء على الإطلاق بالنسبة لي. لذلك ذهبت إلى "إدارة المهام" ، ثم قمت بالنقر بزر الماوس الأيمن فوق البرنامج الذي كان خارج الشاشة. التبديل إلى لم تنجح ، ولم يأت في المقدمة. ملاحظة ، كانت هذه نافذة ثابتة ، لذلك لم يكن الحد الأقصى متاحًا عبر شريط المهام. ولكن يمكنك تحقيق الحد الأقصى من خلال "إدارة المهام" ، وبذلك يرتفع إلى شاشتك الرئيسية! من هناك يمكنك القيام بكل ما تحتاجه من خلال النافذة. :)

5
Leo

لقد واجهت هذه المشكلة مع Git GUI على نظام التشغيل Windows 7 ، والذي يعتمد على Tk وبالتالي يميل إلى الخلل بطرق غريبة في بعض الأحيان على Windows. حاولت ضرب Alt-Space واستخدام الأمر move لإلقاء الضوء عليه مرة أخرى ، ولكن بدا لي عالقًا. إن تعظيمه سيعيده ، لكن إذا أعيدته إلى وضع الإطارات ، فستختفي مرة أخرى.

ما فعلته هو تكبيره ، والاستيلاء على شريط العنوان ، واسحبه إلى جانب الشاشة بحيث حجم Aero Snap بحجمه إلى نصف حجم الشاشة ووضعه في وضع الإطار. بعد ذلك ، قمت بسحبه بعيدًا عن جانب الشاشة ، واستعادت السيطرة عليه.

3
unused

أستخدم أداة صغيرة أنيقة تسمى Shove-it والتي تتحقق ببساطة من وجود أي نافذة خارج حافة الشاشة وتدفعها مرة أخرى إلى الشاشة مرة أخرى. إنه برنامج قديم (والصفحة الرئيسية تثبت ذلك) ولكنه يعمل على جميع إصدارات Windows.

3
Torben Gundtofte-Bruun

لأي شخص مطلع على PowerShell ، جرّب هذا:

  • انسخ والصق الكود أدناه في جلسة PowerShell ISE.
  • ضرب تشغيل
  • اضغط ALT + TAB/أيا كان لتنشيط النافذة الموجودة على الشاشة
  • انتظر لحظات قليلة (5 ثوان من ضرب RUN على البرنامج النصي)
  • يجب أن تظهر النافذة الآن.

إذا كانت النافذة نافذة رئيسية ، فسيتم نقلها إلى أعلى الزاوية اليسرى من الشاشة.

إذا كانت النافذة نافذة فرعية لبرنامج آخر ، فسيتم محاذاة الزاوية العليا اليسرى مع الزاوية اليسرى العليا للإطار الأصل.

Add-Type @"
    using System;
    using System.Runtime.InteropServices;

    // https://msdn.Microsoft.com/en-us/library/windows/desktop/dd162897(v=vs.85).aspx
    public struct RECT 
    {
        public long left;
        public long top;
        public long right;
        public long bottom;
    }

    public class User32WinApi 
    {

        // https://msdn.Microsoft.com/en-us/library/windows/desktop/ms633505(v=vs.85).aspx
        /*
            Gets the handle of the in-focus window
            NB: In some scenarios this can be NULL; so code needed to handle such an event
        */
        [DllImport("user32.dll")]
        public static extern IntPtr GetForegroundWindow();

        // https://msdn.Microsoft.com/en-us/library/windows/desktop/ms633503(v=vs.85).aspx
        /*
            top & left are always 0 (i.e. since the rectangle is relative to the window itself)
            bottom & right equal the windows hieght and width, respectively.
        */
        [DllImport("user32.dll")]
        [return: MarshalAs(UnmanagedType.Bool)]
        public static extern bool GetClientRect(IntPtr hWnd, out RECT lpRect);

        // https://msdn.Microsoft.com/en-us/library/windows/desktop/ms633534(v=vs.85).aspx
        [DllImport("user32.dll")]
        [return: MarshalAs(UnmanagedType.Bool)]
        public static extern bool MoveWindow(IntPtr hWnd, int X, int Y, int nWidth, int nHeight, bool bRepaint);

    }

"@
$repaint = $true 
$windowSize = New-Object RECT

"Quick; get the window you're after in focus; you have 5 seconds..."
Start-Sleep -Seconds 5 #allow 5 seconds for the user to get the window they're after in focus (e.g. using ALT+TAB / whatever)
$activeWindow = [User32WinApi]::GetForegroundWindow()
if ($activeWindow) {
    if([User32WinApi]::GetClientRect($activeWindow, [ref]$windowSize)) {
        if ([User32WinApi]::MoveWindow($activeWindow, 0, 0, $windowSize.right, $windowSize.bottom, $repaint)) {
            "Window moved successfully (hope you agree!)"
        } else {
            Write-Warning "Failed to move the active window"
        }
    } else {
        Write-Warning "Failed to get size of the active window"    
    }
} else {
    Write-Warning "No active window found"    
}

الرمز الأصلي هنا: https://Gist.githubusercontent.com/JohnLBevan/1593bbb860c2d2af436a1c9414e8adfa/

1
JohnLBevan

يمكنك استخدام NIRSOFT WinLister. لقد لاحظت أن طريقة "النقل" غير متوفرة في نظام التشغيل Windows 7 عند استخدام السمة الكلاسيكية ، وفشلت العديد من الطرق الأخرى ، ولذا فأنا أقوم بنشر بديل "إذا فشل كل شيء آخر".

  1. قم بتنزيل تطبيق WinLister هنا .

  2. قم بتشغيل WinLister كمسؤول وحدد النافذة التي ترغب في العودة إليها على الشاشة. لا يعمل كمسؤول لن يمنح التطبيق القدرة على نقل النوافذ من أجلك.

  3. انقر بزر الفأرة الأيمن واختر "مركز Windows المحدد" لقد انتهيت!

لقطات هنا .

1
user199343

في بعض الحالات ، على الرغم من وجود شاشات متعددة في الموقع البعيد ، قد لا تتمكن من الوصول إليها من موقعك. لن تعمل الأوامر الأساسية لأنك تم حجبها عن أي عرض غير موجود على الشاشة.

في هذه الحالة ، إذا كان يمكنك فتح مثيلات إضافية للتطبيق ، فقم بذلك. من شبه المؤكد أن تظهر الحالات القليلة الأولى في شريط المهام على أنها نوافذ أكثر وضوحًا. استمر في فعل هذا. في النهاية ، سيبدأون في ملء العرض الأساسي. ثم استخدم رمز شريط المهام للنقر بزر الماوس الأيمن وإغلاق المثيلات الموجودة على الشاشة. بمجرد عدم وجود مثيلات خارج الشاشة مفتوحة ، أغلق تلك الموجودة على الشاشة الأساسية. في المرة التالية التي تفتح فيها هذا التطبيق ، سوف يظهر على الشاشة الرئيسية وليس "خارج الكاميرا".

1
Greg Mayer

حدد النافذة (على سبيل المثال ، استخدام Alt+Tab). ثم امسك Alt+F7 وحرك النافذة مع مفاتيح الأسهم مرة أخرى في الرأي. فعله.

في بعض الأحيان يكون من الصعب أن تعرف بشكل أعمى مكان وجود النافذة المخفية (وبالتالي كيفية تحريكها نحو الشاشة). قد تكون الرسوم المتحركة أثناء اختيار النافذة مفيدة. بسبب الإعداد الخاص بي (أحيانًا أستخدم شاشة ثانية أعلى شاشة الكمبيوتر المحمول) ، عادة ما تكون الإطارات التي تظهر خارج الشاشة أدناه. تحتجز Alt+F7+Up لذلك يجلب لهم النظر.

1
Georg Jung

كان لي نفس المشكلة مع برنامج Winamp. الحل الوحيد (غير المرضي) الذي وجدته حتى الآن: تغيير دقة الشاشة إلى حل مختلف والظهر

توماس

1
Thomas

يمكنك أيضًا استخدام UltraMon (غير مجاني ، Windows ، واجهة المستخدم الرسومية) لإعداد اختصار لوحة المفاتيح لنقل نافذة إلى الشاشة التالية أو السابقة.

enter image description here

0
Franck Dernoncourt

من حرك نافذة إلى أسفل/أعلى الشاشة مع اختصار على ويندوز بواسطة Tymric :

كتبت السيناريو AHK.

الاستعمال:

Win + Alt + Arrow: انقل النافذة النشطة إلى الشاشة التي يشير السهم إلى اتجاهها. لاحظ أن هذا قد يتسبب في تحرك نافذتك خارج الشاشة إذا حاولت الانتقال من الشاشة 2 أو من الشاشة 3 مباشرةً في الإعداد. سوف أقوم بتحديثه في المستقبل.

Win + Alt + Number: انقل النافذة النشطة إلى رقم الشاشة المحدد

#Persistent

SysGet, MonitorCount, MonitorCount


#!Up::
  GoSub CalculateDisplacement
  WinMove, A, , %xPos%, %displaceYneg%
  return
#!Down::
  GoSub CalculateDisplacement
  WinMove, A, , %xPos%, %displaceYpos%
  return
#!Left::
  GoSub CalculateDisplacement
  WinMove, A, , %displaceXneg%, %yPos%
  return
#!Right::
  GoSub CalculateDisplacement
  WinMove, A, , %displaceXpos%, %yPos%
  return

#!1::
  GoSub CalculateDisplacement
  WinMove, A, , %xPosOn1%, %yPosOn1%
  return

#!2::
  if (MonitorCount > 1) {
    GoSub CalculateDisplacement
    WinMove, A, , %xPosOn2%, %yPosOn2%
  }
  return

#!3::
  if (MonitorCount > 2) {
    GoSub CalculateDisplacement
    WinMove, A, , %xPosOn3%, %yPosOn3%
  }
  return

#!4::
  if (MonitorCount > 3) {
    GoSub CalculateDisplacement
    WinMove, A, , %xPosOn4%, %yPosOn4%
  }
  return

#!5::
  if (MonitorCount > 4) {
    GoSub CalculateDisplacement
    WinMove, A, , %xPosOn5%, %yPosOn5%
  }
  return

#!6::
  if (MonitorCount > 5) {
    GoSub CalculateDisplacement
    WinMove, A, , %xPosOn6%, %yPosOn6%
  }
  return

#!7::
  if (MonitorCount > 6) {
    GoSub CalculateDisplacement
    WinMove, A, , %xPosOn7%, %yPosOn7%
  }
  return

#!8::
  if (MonitorCount > 7) {
    GoSub CalculateDisplacement
    WinMove, A, , %xPosOn8%, %yPosOn8%
  }
  return

#!9::
  if (MonitorCount > 8) {
    GoSub CalculateDisplacement
    WinMove, A, , %xPosOn9%, %yPosOn9%
  }
  return


CalculateDisplacement:
  WinGetPos, xPos, yPos, , , A
  Loop, %MonitorCount% {
    SysGet, MonitorDimension, Monitor, %A_Index%
    if (xPos > MonitorDimensionLeft and xPos < MonitorDimensionRight and yPos < MonitorDimensionBottom and yPos > MonitorDimensionTop) {
      currentMonitor = %A_Index%
    }
  }
  SysGet, thisMonitor, Monitor, %currentMonitor%
  displaceXpos := xPos + thisMonitorRight - thisMonitorLeft
  displaceYpos := yPos + thisMonitorTop - thisMonitorBottom
  displaceXneg := xPos - thisMonitorRight + thisMonitorLeft
  displaceYneg := yPos - thisMonitorTop + thisMonitorBottom
  Loop, %MonitorCount% {
    SysGet, nextMonitor, Monitor, %A_Index%
    xPosOn%A_Index% := xPos - thisMonitorLeft + nextMonitorLeft
    yPosOn%A_Index% := yPos - thisMonitorTop + nextMonitorTop
  }
  return
0
Franck Dernoncourt

ضع المؤشر على شريط المهام .. انقر بزر الماوس الأيمن فوق حدد "إظهار إطار جنبًا إلى جنب..إنها ستحضر النافذة على الشاشة .. وأخيراً ، أحضر المؤشر مرة أخرى على شريط المهام انقر بزر الماوس الأيمن فوق تحديد التراجع عن إظهار الإطار جنبًا إلى جنب ..

0
ravi21

في بعض الأحيان ، حل هذا:

  • انقر WinKey + P
  • اختر Extend أو خيارًا آخر ، وسيتم تتابع جميع النوافذ. انقل النافذة المطلوبة إلى الشاشة الرئيسية.
0
T.Todua

لقد كتبت أداة تسمى Borderline ستقوم تلقائيًا بنقل النوافذ التي تظهر على الشاشة مرة أخرى إلى الشاشة عند التشغيل. يجب عليك تشغيله عند الحاجة إليه (يعمل بشكل أفضل إذا قمت بتعيين اختصار لوحة المفاتيح أو وضعها في قائمة البدء) ، لكن هذا يعني أيضًا أنه لا يعمل دائمًا في الخلفية.

0
jamesdlin