ডকড এবং আনডক করা অবস্থায় উইন্ডোর অবস্থানগুলি মনে রাখবেন


45

আমি হতাশার বাইরেও এটি পাই।

কর্মক্ষেত্রে আমার ল্যাপটপে দুটি অতিরিক্ত পর্দা রয়েছে। আমি আমার ল্যাপটপটি নিয়ে ঘরে চলে যাই, কোনও অতিরিক্ত স্ক্রিন সংযুক্ত না করে। আমি ফিরে আসছি, ল্যাপটপটি ডক করুন এবং উইন্ডোগুলিকে আবার সাজানো দরকার।

সামগ্রিক স্ক্রিন কনফিগারেশন (#, আকার, রেজোলিউশন) এবং উইন্ডোটি কোথায় স্থাপন করা হয়েছিল তা মনে রাখার জন্য উইন্ডোজ (বা কোনও ইউটিলিটি) পাওয়ার কোনও উপায় আছে কি না, তাই যখন স্ক্রিন কনফিগারেশনটি আবার মিলছে, তখন অ্যাপ্লিকেশনগুলিকে তারা যেখানে ছিল সেদিকে পিছনে রাখে ?


1
আমি একই সমস্যাটিতে চলেছি তবে আমার অভিযোগটি যখন আমি পরে ল্যাপটপটি খুলি এবং অ্যাপ্লিকেশন উইন্ডোটি এখনও স্ক্রিনের বাইরে থাকে (অনস্ক্রিনটিতে ফিরে যেতে তীর কীগুলি ব্যবহার করে শেষ করুন)। আমি মনে করি না এর কোনও অন্তর্নির্মিত সমাধান আছে।
ব্র্যাড প্যাটন

উত্তর:


8

অস্বীকৃতি: আমি এই সরঞ্জামটির নির্মাতা।

আমি একটি ট্রেবার আইকন ক্লিকে উইন্ডোজ পুনরায় সাজানোর জন্য একটি ছোট সরঞ্জাম তৈরি করেছি। আপনি এটি উত্স থেকে সংকলন করতে পারেন বা সমস্যা লিঙ্কের মাধ্যমে একটি (পোর্টেবল) বাইনারি রাখতে চাইতে পারেন।

এটি গিথুবটিতে হোস্ট করা হয়েছে: https://github.com/manutalcual/winredock

আপনার পরামর্শ থাকলে আমি আপনার কাছ থেকে শুনে খুশি হব।

সম্পাদনা: 2018/11/22

এটি এখন সম্পূর্ণ স্বয়ংক্রিয়ভাবে তৈরি।


এটি দেখতে দুর্দান্ত লাগছে তবে আমি আরও কিছু স্বয়ংক্রিয়ভাবে সন্ধান করছি।
সেলোরিও

3
ব্যবহারকারীর অনুরোধের কারণে আমি অটোমেশন বৈশিষ্ট্য যুক্ত করেছি।
ম্যানুয়েল

মনে রাখবেন যে মাস্টার সংস্করণটিতে ভার্চুয়াল ডেস্কটপগুলির সাথে কমপক্ষে উইন্ডোজ 10 এ সমস্যা রয়েছে। I0010- পুনরুদ্ধার-পজিশন-ড্যান্ট-ওয়ার্ক
হ্যান্সাহারফ

আমি শাখা I0010- পুনরুদ্ধার-পজিশন-ড্যান্ট-ওয়ার্ককে মাস্টার হিসাবে একীভূত করেছি, এখন আমরা আরও ভালভাবে কাজ করতে পারি
ম্যানুয়েল

1
এটি চমৎকার! এটি প্রথম চেষ্টা করে সুপার ভাল কাজ! এটি করার জন্য আপনাকে ধন্যবাদ!
বিটি

6

আমি বর্তমানে উইন্ডো অবস্থানের জন্য প্রদর্শনফিউশন প্রো ব্যবহার করছি (কেবল নয়)। আপনি যখন নিজের মনিটরকে সংযোগ বিচ্ছিন্ন ও সংযুক্ত করেন তখন কীভাবে এটি কাজ করে তা আমি জানি না - সবসময় আমার তিনটি থাকে।

আমি মনে করি, আপনাকে পুনরায় সাজানোর জন্য আপনার অ্যাপ্লিকেশনগুলি বন্ধ এবং পুনরায় খুলতে হবে।

সম্পাদনা করুন: এই বৈশিষ্ট্যটি কেবলমাত্র প্রো সংস্করণে উপলব্ধ। - মন্তব্য থেকে তথ্য।

সেটিংসের স্ক্রিনশট

ডিসপ্লেফিউশন এর হোমপেজ


2
এফওয়াইআই, উইন্ডো অবস্থান বৈশিষ্ট্যটি আমার অনুরোধটি সমাধান করতে উপস্থিত হবে। এটি অন্য যে কারও কাছে লক্ষ করা উচিত যে এটি ক্রয়ের লাইসেন্সের জন্য প্রয়োজনীয় একটি পিআরও সংস্করণ।
MADCookie

ফ্রি বনাম প্রো এর ফিচার তুলনাতে "সমস্ত উইন্ডো অবস্থানগুলি সংরক্ষণ করুন বা পুনরুদ্ধার করুন" বৈশিষ্ট্যটি দেখুন । দুর্ভাগ্যক্রমে সস্তার সমাধানটি 25 ডলার।
চিরামিসু

1
আপনার যদি উইন্ডোজ 10 এ একাধিক নেটিভ ভার্চুয়াল ডেস্কটপ থাকে তখন এটি কাজ করে?
কে রবিনসন

2

সমস্যাটি হ'ল উইন্ডোজ অ্যাপ্লিকেশনগুলি সত্যিই একাধিক মনিটর দেখতে পায় না। উইন্ডো ম্যানেজার উইন্ডো অবস্থানগুলি উপরের-বাম কোণে বা আপনার প্রধান প্রদর্শনের জন্য ট্র্যাক করে। এমন কোনও বাণিজ্যিক অ্যাপ্লিকেশন সম্পর্কে আমি সচেতন নই, তবে আপনি সি # বা এমনকি ভিবি.এনইটি তে এমন একটি অ্যাপ্লিকেশন লিখতে পারেন যা এই মানগুলিকে কোনও ফাইলে লিখতে পারে এবং পরে সেগুলি পুনরুদ্ধার করতে পারে তবে এর জন্য কোনও "ট্রিগার" থাকবে না। আপনাকে ম্যানুয়ালি ডেটা সংরক্ষণ এবং পুনরুদ্ধার করার জন্য আপনাকে প্রোগ্রামটি বলতে হবে।


2

এক্সেলের জন্য লিখিত এই স্ক্রিপ্টটি ব্যবহার করে দেখুন। এটি উইন্ডোর অবস্থানগুলিকে একটি শীটে সংরক্ষণ করে এবং সেখান থেকে তাদের পুনরুদ্ধার করে। স্টোরটি চালানোর জন্য এবং ম্যাক্রোগুলি পুনরুদ্ধার করার জন্য আপনার একটি শিটের বোতাম থাকতে পারে বা এক্সেল ম্যাক্রোগুলি চালিত ভিবিএস স্ক্রিপ্টগুলিতে শর্টকাট হতে পারে শর্টকাট কী বরাদ্দ করা হতে পারে। এইভাবে এক্সেল ওয়ার্কবুকটি ন্যূনতম থাকতে পারে। অবশ্যই একটি সংকলিত প্রোগ্রামে অনুরূপ কিছু লেখা যেতে পারে।

Public Declare PtrSafe Function GetWindowPlacement Lib "user32" (ByVal hwnd As LongPtr, lpwndpl As WINDOWPLACEMENT) As Long
Public Declare PtrSafe Function SetWindowPlacement Lib "user32" (ByVal hwnd As LongPtr, lpwndpl As WINDOWPLACEMENT) As Long

Public Declare PtrSafe Function GetWindow Lib "user32.dll" (ByVal hwnd As Long, ByVal wCmd As Long) As Long

Public Declare PtrSafe Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Public Declare PtrSafe Function IsWindowVisible Lib "user32.dll" (ByVal hwnd As Long) As Boolean
Public Declare PtrSafe Function GetParent Lib "user32.dll" (ByVal hwnd As Long) As Long
Public Declare PtrSafe Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As LongPtr, ByVal lpString As String, ByVal cch As LongPtr) As Long

Public Type POINTAPI
X As Long
Y As Long
End Type

Public Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type

Public Type WINDOWPLACEMENT
Length As Long
    flags As Long
    showCmd As Long
    MinPosition As POINTAPI
    MaxPosition As POINTAPI
    rcNormalPosition As RECT
End Type

Global Const gw_hwndnext = 2
Global Const fwp_startswith = 0
Global Const fwp_contains = 1
Global title As String
Global Visible As Boolean
Global RowCount
Public prog As String


Public Sub StoreActiveWindows()
    Dim hwndapp As Long
    Dim hwndmax As Long
    Dim nret As Long
    Dim WinFrm As WINDOWPLACEMENT
    Dim RectFrm As RECT

    PleaseWait.Show vbModeless
    DoEvents

    RowCount = 1
    hwndmax = findwindow(0&, 0&)
    Do Until hwndmax = 0
    hwndapp = findthiswindow(hwndmax)
    If hwndapp Then
        If title <> "CURRENT WINDOWS OPEN" And Visible Then
            rtn = GetWindowPlacement(hwndapp, WinFrm)

            RectFrm = WinFrm.rcNormalPosition

            FrmTop = RectFrm.Top
            FrmRight = RectFrm.Right
            FrmLeft = RectFrm.Left
            FrmBottom = RectFrm.Bottom
            Workbooks(Filename).Activate
            Workbooks(Filename).Sheets("Active Windows").Cells(RowCount, 1) = title
            Workbooks(Filename).Sheets("Active Windows").Cells(RowCount, 2) = hwndapp
            Workbooks(Filename).Sheets("Active Windows").Cells(RowCount, 3) = FrmTop
            Workbooks(Filename).Sheets("Active Windows").Cells(RowCount, 4) = FrmRight
            Workbooks(Filename).Sheets("Active Windows").Cells(RowCount, 5) = FrmLeft
            Workbooks(Filename).Sheets("Active Windows").Cells(RowCount, 6) = FrmBottom
            Workbooks(Filename).Sheets("Active Windows").Cells(RowCount, 7) = WinFrm.MaxPosition.X
            Workbooks(Filename).Sheets("Active Windows").Cells(RowCount, 8) = WinFrm.MaxPosition.Y
            Workbooks(Filename).Sheets("Active Windows").Cells(RowCount, 9) = WinFrm.MinPosition.X
            Workbooks(Filename).Sheets("Active Windows").Cells(RowCount, 10) = WinFrm.MinPosition.Y
            Workbooks(Filename).Sheets("Active Windows").Cells(RowCount, 11) = WinFrm.showCmd
            Workbooks(Filename).Sheets("Active Windows").Cells(RowCount, 12) = WinFrm.flags
            Workbooks(Filename).Sheets("Active Windows").Cells(RowCount, 13) = WinFrm.Length
            RowCount = RowCount + 1
        End If
    End If
    hwndmax = GetWindow(hwndmax, gw_hwndnext)
    Loop
            Workbooks(Filename).Sheets("Active Windows").Cells(RowCount, 1) = ""
            Workbooks(Filename).Sheets("Active Windows").Cells(RowCount, 2) = ""
            Workbooks(Filename).Sheets("Active Windows").Cells(RowCount, 3) = ""
            Workbooks(Filename).Sheets("Active Windows").Cells(RowCount, 4) = ""
            Workbooks(Filename).Sheets("Active Windows").Cells(RowCount, 5) = ""
            Workbooks(Filename).Sheets("Active Windows").Cells(RowCount, 6) = ""
            Workbooks(Filename).Sheets("Active Windows").Cells(RowCount, 7) = ""
            Workbooks(Filename).Sheets("Active Windows").Cells(RowCount, 8) = ""
            Workbooks(Filename).Sheets("Active Windows").Cells(RowCount, 9) = ""
            Workbooks(Filename).Sheets("Active Windows").Cells(RowCount, 10) = ""
            Workbooks(Filename).Sheets("Active Windows").Cells(RowCount, 11) = ""
            Workbooks(Filename).Sheets("Active Windows").Cells(RowCount, 12) = ""
            Workbooks(Filename).Sheets("Active Windows").Cells(RowCount, 13) = ""

    Unload PleaseWait

End Sub

Public Function findthiswindow(ByVal hwndtopmost As Long) As Long
    Dim hwndtmp As Long
    Dim nret As Long
    Dim titletmp As String

    'Get the first window
    hwndtmp = hwndtopmost

    If GetParent(hwndtmp) = 0 Then
        'Set its visibility
        If IsWindowVisible(hwndtmp) Then
            Visible = True
        Else
            Visible = False
        End If
        'Get its title
        titletmp = Space(256)
        nret = GetWindowText(hwndtmp, titletmp, Len(titletmp))
        If nret Then
            findthiswindow = hwndtmp
        End If
    End If

    If Visible Then
        title = titletmp & " - Visible"
        Else
        title = titletmp & " - Invisible"
        End If
        title = titletmp
        If titletmp <> "" Then

        'If title = "SETTINGS" Then
            HasNoOWner = Not (GetWindow(hwndtmp, 4))
            n = 1
        'End If

        If (UCase(Left(title, 15)) = "PROGRAM MANAGER" Or UCase(title) = "SETTINGS") Then
            n = 1
            title = ""
            findthiswindow = 0
        End If
    End If
End Function

Sub RestoreWindowsLocations()
    Dim WinFrm As WINDOWPLACEMENT
    Dim RectFrm As RECT

    PleaseWait.Show vbModeless
    DoEvents

    Workbooks(Filename).Activate

    RowCount = 1
    Do Until Workbooks(Filename).Sheets("Active Windows").Cells(RowCount, 1) = ""
        hwndapp = Workbooks(Filename).Sheets("Active Windows").Cells(RowCount, 2)
'       rtn = GetWindowPlacement(hwndapp, WinFrm)
        WinFrm.rcNormalPosition.Top = CLng(Workbooks(Filename).Sheets("Active Windows").Cells(RowCount, 3))
        WinFrm.rcNormalPosition.Right = CLng(Workbooks(Filename).Sheets("Active Windows").Cells(RowCount, 4))
        WinFrm.rcNormalPosition.Left = CLng(Workbooks(Filename).Sheets("Active Windows").Cells(RowCount, 5))
        WinFrm.rcNormalPosition.Bottom = CLng(Workbooks(Filename).Sheets("Active Windows").Cells(RowCount, 6))
        WinFrm.MaxPosition.X = CLng(Workbooks(Filename).Sheets("Active Windows").Cells(RowCount, 7))
        WinFrm.MaxPosition.Y = CLng(Workbooks(Filename).Sheets("Active Windows").Cells(RowCount, 8))
        WinFrm.MinPosition.X = CLng(Workbooks(Filename).Sheets("Active Windows").Cells(RowCount, 9))
        WinFrm.MinPosition.Y = CLng(Workbooks(Filename).Sheets("Active Windows").Cells(RowCount, 10))
        WinFrm.showCmd = CLng(Workbooks(Filename).Sheets("Active Windows").Cells(RowCount, 11))
        WinFrm.flags = CLng(Workbooks(Filename).Sheets("Active Windows").Cells(RowCount, 12))
        WinFrm.Length = CLng(Workbooks(Filename).Sheets("Active Windows").Cells(RowCount, 13))

        rtn = SetWindowPlacement(hwndapp, WinFrm)
        rtn = SetWindowPlacement(hwndapp, WinFrm)

        RowCount = RowCount + 1

    Loop
    Unload PleaseWait
End Sub

এইটি কী করা উচিত তা ব্যাখ্যা করুন এবং পুরো কোড ব্লকটি যথাযথভাবে পড়া যেমন কঠিন তাই সঠিকভাবে ফর্ম্যাট করুন।
পিম্প জুস আইটি

এবং আপনি কীভাবে এক্সবি ম্যাক্রোগুলি চালিত ভিবিএস স্ক্রিপ্টগুলি রাখবেন তা ব্যাখ্যা করতে পারেন? সংকলিত প্রোগ্রামে কীভাবে অনুরূপ কিছু লেখা যায়?
জি-ম্যান বলছেন 'মনিকা পুনরায়

এটি একটি আকর্ষণীয় পদ্ধতির। আপনি নিজে এটি ব্যবহার করেছেন? আমি নিশ্চিত আপনি যদি শেষ থেকে শেষের কাজের নমুনা তৈরি করতে পারেন তবে অনেক লোক উপকৃত হবে
খের পরিবর্তনশীল

1

এই এক প্রতিশ্রুতিবদ্ধ খুঁজছিলেন: https://github.com/adamsmith/WindowsLayoutSnapshot

দুর্ভাগ্যক্রমে আমার ক্ষেত্রে, 3x 24 "1920x1200 মনিটরে লেআউটটি সংরক্ষণ করার সময়, একটি ল্যাপটপে 1920x1080 পরিবর্তন করে এবং তারপরে তিনটিতে ফিরে লেআউটটি পুনরুদ্ধার করার চেষ্টা করার সময় উইন্ডোজগুলি সত্যই অন্য মনিটরে যায় নি didn't তবে সম্ভবত অন্য কারও জন্য অন্যান্য সেটআপ এটি কাজ করবে।


প্রতিশ্রুতিবদ্ধ দেখায়, তবে এটি আমার পিসিতে চলবে না (উইন্ডোজ 8.1)
ডানক

দুর্ভাগ্যক্রমে বন্ধ হয়েছে, এবং প্রোগ্রামটি বন্ধ হয়ে গেলে বা পিসি পুনরায় চালু করা হয়, যা লেখক ঠিক করার পরিকল্পনা করেন না এবং এটি সমস্ত কনফিগারেশন হারিয়ে ফেলে।
লরেন্ট

নতুন এখানে পাওয়া সংস্করণ - github.com/nefarius/WindowsLayoutSnapshot । Win10 এ পুরোপুরি কাজ করে!
ম্যাক্স লাজার

1

একটি উইন্ডোজ ডেস্কটপে উইন্ডো অবস্থান এবং রাজ্যগুলি সংরক্ষণ এবং পুনরুদ্ধার করার জন্য এখানে একটি কনসোল অ্যাপ্লিকেশন রয়েছে । চালানো উইন্ডোজ অবস্থানগুলি সংরক্ষণ করতে:

  winLayout save

উইন্ডোজ অবস্থান চালিত পুনরুদ্ধার:

  winLayout restore

এই কমান্ডগুলিকে একটি ডেস্কটপ শর্টকাটে রাখুন এবং সুবিধার জন্য টাস্কবারে পিন করুন।

দাবি অস্বীকার: আমি এই ইউটিলিটিটি লিখেছি কারণ এই পৃষ্ঠার অন্যান্য সরঞ্জামগুলি আমার পক্ষে কাজ করে না।

ক্যাভ্যাট: এটি অ্যাপ্লিকেশনগুলির জন্য কাজ করে, তবে এক্সপ্লোরার উইন্ডোজ নয় (বর্তমানে)


0

আমি এর আগে একই জাতীয় দৃশ্যে স্টারডকের বেড়া ব্যবহার করেছি :

বেড়া আপনাকে আপনার শর্টকাটগুলি এবং আইকনগুলিকে স্বয়ংক্রিয়ভাবে আপনার ডেস্কটপের বেড়া নামক ছায়াযুক্ত অঞ্চলে রেখে আপনার পিসি সংগঠিত করতে সহায়তা করে। এর অনেকগুলি কাস্টমাইজেশন বৈশিষ্ট্য হ'ল ফেনেসকে বিশ্বের সর্বাধিক জনপ্রিয় উইন্ডোজ ডেস্কটপ বর্ধন করে।


8
যে আইকন ব্যবস্থা। উইন্ডোজ না। আমার সমস্যাটি হ'ল আমার তিনটি স্ক্রিনে 8 টি প্রোগ্রাম খোলা আছে। আমি যখন ল্যাপটপটি বন্ধ করি এবং তিনটি স্ক্রিন দিয়ে এটিকে পুনরায় খুলি আমার সমস্ত অ্যাপ্লিকেশন উইন্ডো একটি পর্দায় খোলা থাকে, আমি কীভাবে সেগুলি সাজিয়েছি না।
ক্যাফগিকে

0

উইন্ডোজ ব্যবহারকারীদের অনেকেরই এই সমস্যা ছিল, একটি অ্যাপ্লিকেশন বিকাশ করা হয়েছে এবং উইন্ডোজ ums ফোরামে ভাগ করে নেওয়া হয়েছে এখানে যেমন:

http://www.sevenforums.com/free-developer-programs-projects/40916-shellfolderfix-manage-folder-window-positions-size.html#post396744 

সাইটে নির্দেশনা রয়েছে যা সহায়তা করে এবং এটি আপনার সমস্যাটি সমাধান করবে।


ফোরামটি বলেছে "উইন্ডোজ explore এক্সপ্লোরার ফোল্ডার উইন্ডোজগুলি তাদের আকার এবং অবস্থান মনে রাখার জন্য এটি একটি অ্যাপ্লিকেশন" এবং "এটি নিয়মিত অ্যাপ্লিকেশনগুলির উইন্ডোর আকার / অবস্থানগুলি পরিচালনা করে না, আপনি যদি এটি চান তবে উইন্ডো ম্যানেজারের মতো অন্যান্য অ্যাপ্লিকেশনও এটি করে"। উইন্ডো ম্যানেজার বলতে কী বোঝায় ? এটি কি মাইক্রোসফ্ট উইন্ডোজ ম্যানেজার পরিষেবা বা ডেস্কসফ্ট লিঙ্ক
এমএডকুকি

হ্যাঁ এটি ডেস্কসফট থেকে পণ্য
DarkEvE
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.