দ্বৈত মনিটর - সব প্রান্ত সংযুক্ত করুন (উইন্ডোজ)


0

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


আপনি নীচের বা শীর্ষ মাধ্যমে একটি উইন্ডো টেনে আনতে চেষ্টা যদি শুধু অদ্ভুত আচরণ হতে পারে সচেতন হতে হবে।
Christopher Hostage

উত্তর:


1

এই ধরনের জিনিস কোনও ধারনা দেয় না এক্স-ই আপনার ডিসপ্লে সাব-সিস্টেমকে সাধারণত প্রয়োগ করে। এটি টেকনিক্যালি সম্ভাব্য, তবে এটি আপনার ভিডিও কার্ডের জন্য একটি কাস্টম ড্রাইভার নিতে হবে এবং এটি কোনও ধারণা দেয় না এবং মাইক্রোসফ্ট এমন জিনিসটিতে সাইন ইন করার অসম্ভব সম্ভাবনাময়, আমি আপনাকে সন্দেহ করব যে আপনি একটি খুঁজে পাবেন।



0

বেশ কয়েকটি প্রোগ্রাম রয়েছে যা আপনাকে এটি করার অনুমতি দেয়, আমি যা পেয়েছি তা সর্বাধিক এবং সর্বোত্তম এই অটোহোটকি স্ক্রিপ্ট। ভবিষ্যতে ভাঙ্গা লিঙ্কগুলিতে আমি নীচের লিপিটি অনুলিপি করেছি: https://autohotkey.com/board/topic/34427-yet-another-mouse-wrapper-this-one-supports-multi-heads/

ইনস্টল করুন AutoHotKey এবং স্ক্রিপ্ট চালান, অথবা আপনি এটি কোনও কম্পিউটারে চালানোর জন্য .exe এ কম্পাইল করতে পারেন। (যেমন অটোহোটকি ইনস্টল না করেও)

ফরোয়ার্ড:

/*
 * MouseWrapper v1.2
 *
 * Description:
 *  Allows full mouse-wrapping in virtually any single or multi-monitor environment.
 *  Double-clicking the Tray icon shows a floating tooltip that gives you boundry information
 *  You can toggle the Tooptip, Vertical and Horizontal wrapping and can pause the wrapper.
 *  Basic configuration options are stored in a file that you can edit.
 *  The mouse position and display configuration polling times can only be set via the file.
 *
 * Changelog:
 *  v1.2
 *   Screen configuration is checked periodically for alterations.
 *   Added Tooltip info and tray menu toggles
 *   Added option for vertical wrapping
 *  v1.1
 *   No longer relies on Hard offsets.
 *  v1.0
 *   Initial Release
 *
 * Known Issues/Todo:
 *  Cannot wrap on edge of a smaller monitor if that edge is inline with a larger monitor's.
 *   Example: if you have 1280x1024 and 1024x768 in Right & Left position, you cannot wrap
 *    vertically on the 1024x768 screen since the top or bottom boundry is within 1280x1024
 *   Solution: actively track which monitor i'm in, how big it is and whether or not there is
 *    anything beyond it.
 *  If the tray menu is active the position polling etc halts.
 *
 * Contact/Etc:
 *  Author: Paegus (paegus@gmail.com)
 *  Program: AutoHotKey (https://ahknet.autohotkey.com)
 *  Released under GNU General Public Licence
 */

অ্যাপ

; ------------------ Details ------------------ ;

AppName = MouseWrapper
AppVer = 1.2

; ------------------ Default Settings ------------------ ;

Default_bHWrap = true
Default_bVWrap = false
bShowTip = false
Default_PollTimeMouse = 50
Default_PollTimeDisplay = 2000

; ------------------ Read existing settings if any ------------------ ;

SettingsFile = %AppName%.ini

IfExist %SettingsFile%
{
    ; Read Settings
    FileReadLine bHWrap, %SettingsFile%, 1
    FileReadLine bVWrap, %SettingsFile%, 2
    FileReadLine PollTimeMouse, %SettingsFile%, 3
    FileReadLine PollTimeDisplay, %SettingsFile%, 4

    ;MsgBox bHWrap : %bHWrap%`nbVWrap : %bVWrap%`nPollTimeMouse : %PollTimeMouse%`nPollTimeDisplay : %PollTimeDisplay%
    if bHWrap <> true
    {
        if bHWrap <> false
        {
            Error = Invalid value on line 1: %bHWrap%
            bHWrap := Default_bHWrap
        }
    }

    if bVWrap <> true
    {
        if bVWrap <> false
        {
            Error = %Error%`nInvalid value on line 2: %bVWrap%
            bVWrap := Default_bVWrap
        }
    }

    if PollTimeMouse is not integer
    {
        Error = %Error%`nInvalid value on line 3: %PollTimeMouse%
        PollTimeMouse := Default_PollTimeMouse
    }
    else if PollTimeMouse < 10
    {
        Error = %Error%`nInvalid value on line 3: %PollTimeMouse%
        PollTimeMouse := Default_PollTimeMouse
    }

    if PollTimeDisplay is not integer
    {
        Error = %Error%`nInvalid value on line 4: %PollTimeDisplay%.
        PollTimeDisplay := Default_PollTimeDisplay
    }
    else if PollTimeDisplay < 100
    {
        Error = %Error%`nInvalid value on line 4: %PollTimeDisplay%.
        PollTimeDisplay := Default_PollTimeDisplay
    }

    ;MsgBox bHWrap : %bHWrap%`nbVWrap : %bVWrap%`nPollTimeMouse : %PollTimeMouse%`nPollTimeDisplay : %PollTimeDisplay%
    if Error
    {
        MsgBox 262192, %AppName%: Error, %Error%
    }

}
else
{
    ; Set Defaults
    bHWrap := Default_bHWrap
    bVWrap := Default_bVWrap
    PollTimeMouse := Default_PollTimeMouse
    PollTimeDisplay := Default_PollTimeDisplay

    ; Write Defaults
    FileAppend %bHWrap%`n, %SettingsFile%
    FileAppend %bVWrap%`n, %SettingsFile%
    FileAppend %PollTimeMouse%`n, %SettingsFile%
    FileAppend %PollTimeDisplay%`n, %SettingsFile%
    FileAppend `nLine 1: Horizontal Wrapping <true|false>`nLine 2: Vertical Wrapping <true|false>`nLine 3: Mouse Poll-time <milliseconds>`nLine 4: Display configuration Poll-time <milliseconds>, %SettingsFile%

    MsgBox 262208,%AppName%: Launch,This is the first time you've launched %AppName%.`nDefault settings loaded. The settings file is located at:`n`n%A_WorkingDir%\%SettingsFile%
}

; ------------------ Tray Icon & Tooltip ------------------ ;

Menu TRAY, Icon, %A_WinDir%\system32\main.cpl,,1
Menu TRAY, Tip, %AppName% v%AppVer%
Menu TRAY, NoStandard
Menu TRAY, Add, &About, MenuINFO
Menu TRAY, Add
Menu TRAY, Add, Mouse: %PollTimeMouse%ms, MenuNULL
Menu TRAY, Disable, Mouse: %PollTimeMouse%ms
Menu TRAY, Add, Disp: %PollTimeDisplay%ms, MenuNULL
Menu TRAY, Disable, Disp: %PollTimeDisplay%ms
Menu TRAY, Add
Menu TRAY, Add, &Tooltip, MenuTTT
Menu TRAY, Add, &X-Wrap, MenuTHW
Menu TRAY, Add, &Y-Wrap, MenuTVW
Menu TRAY, Add, &Pause, MenuPAUSE
Menu TRAY, Add, &Edit, MenuEDIT
Menu TRAY, Add, &Reload, MenuRELOAD
Menu TRAY, Add
Menu TRAY, Add, &Quit, MenuQUIT
Menu TRAY, Default, &About

if bShowTip = true
{
    Menu TRAY, Check, &Tooltip
}
if bHWrap = true
{
    Menu TRAY, Check, &X-Wrap
}
if bVWrap = true
{
    Menu TRAY, Check, &Y-Wrap
}

; ------------------ Inner Workings ------------------ ;

CoordMode Mouse, Screen

#SingleInstance force

#Persistent
    SetTimer ScreenUpdate, %PollTimeDisplay%
    SetTimer ScreenWrap, %PollTimeMouse%
return

; ------------------ Tray Menus ------------------ ;

MenuNULL:
return

MenuTTT:
    if bShowTip = true
    {
        bShowTip = false
        Menu TRAY, UnCheck, &Tooltip
        Tooltip
    }
    else
    {
        bShowTip = true
        Menu TRAY, Check, &Tooltip
    }
return

MenuTHW:
    if bHWrap = true
    {
        bHWrap = false
        Menu TRAY, UnCheck, &X-Wrap
    }
    else
    {
        bHWrap = true
        Menu TRAY, Check, &X-Wrap
    }

    ; Update File
    FileDelete %SettingsFile%
    FileAppend %bHWrap%`n, %SettingsFile%
    FileAppend %bVWrap%`n, %SettingsFile%
    FileAppend %PollTimeMouse%`n, %SettingsFile%
    FileAppend %PollTimeDisplay%`n, %SettingsFile%
    FileAppend `nLine 1: Horizontal Wrapping <true|false>`nLine 2: Vertical Wrapping <true|false>`nLine 3: Mouse Poll-time <milliseconds>`nLine 4: Display configuration Poll-time <milliseconds>, %SettingsFile%
return

MenuTVW:
    if bVWrap = true
    {
        bVWrap = false
        Menu TRAY, UnCheck, &Y-Wrap
    }
    else
    {
        bVWrap = true
        Menu TRAY, Check, &Y-Wrap
    }

    ; Update File
    FileDelete %SettingsFile%
    FileAppend %bHWrap%`n, %SettingsFile%
    FileAppend %bVWrap%`n, %SettingsFile%
    FileAppend %PollTimeMouse%`n, %SettingsFile%
    FileAppend %PollTimeDisplay%`n, %SettingsFile%
    FileAppend `nLine 1: Horizontal Wrapping <true|false>`nLine 2: Vertical Wrapping <true|false>`nLine 3: Mouse Poll-time <milliseconds>`nLine 4: Display configuration Poll-time <milliseconds>, %SettingsFile%
return

MenuINFO:
    MsgBox 262208,%AppName%: Info,%AppName% v%AppVer%`n`nCreated by Paegus (peagus@gmail.com)`n`nUsing AutoHotKey v%A_AhkVersion%`n`nhttp://www.autohotkey.com
return

MenuPAUSE:
    if A_IconTip = %AppName% v%AppVer%
    {
        Menu TRAY, Icon, %A_WinDir%\system32\SHELL32.dll,110,1
        Menu TRAY, Tip, %AppName% v%AppVer%`n    -  PAUSED  -
        Menu TRAY, Check, &Pause
        Pause
    }
    else
    {
        Menu TRAY, Icon, %A_WinDir%\system32\main.cpl,,1
        Menu TRAY, Tip, %AppName% v%AppVer%
        Menu TRAY, UnCheck, &Pause
        Pause
    }
return

MenuEDIT:
    run notepad %A_WorkingDir%\%SettingsFile%
return

MenuReload:
    Reload
return

MenuQUIT:
    ExitApp 0
return

; ------------------ Core Functions ------------------ ;

ScreenUpdate:
    SysGet Monitors, MonitorCount

    iBorderLeft = 0
    iBorderRight = 0
    iBorderTop = 0
    iBorderBottom = 0
    TipString = Monitors...

    Loop, %Monitors%
    {
        SysGet Monitor, Monitor, %A_Index%

        if MonitorLeft < %iBorderLeft%
        {
            ;MsgBox %A_Index%'s Left %MonitorLeft% < %iBorderLeft%
            iBorderLeft := MonitorLeft
        }

        if MonitorRight > %iBorderRight%
        {
            ;MsgBox %A_Index%'s Right %MonitorRight% > %iBorderRight%
            iBorderRight := MonitorRight - 1
        }

        if MonitorTop < %iBorderTop%
        {
            ;MsgBox %A_Index%'s Top %MonitorTop% < %iBorderTop%
            iBorderTop := MonitorTop
        }

        if MonitorBottom > %iBorderBottom%
        {
            ;MsgBox %A_Index%'s Bottom %MonitorBottom% > %iBorderBottom%
            iBorderBottom := MonitorBottom - 1
        }

        if bShowTip = true
        {
            TipString = %TipString%`n%A_Index%: %MonitorLeft%`,%MonitorTop% x %MonitorRight%`,%MonitorBottom%
        }
    }
return

ScreenWrap:
    MouseGetPos PosX, PosY
    if bHWrap = true
    {
        if PosX <= %iBorderLeft%
        {
            NPosX := iBorderRight - 1
            MouseMove %NPosX%, %PosY%, 0
        }
        else if PosX >= %iBorderRight% 
        {
            NPosX := iBorderLeft + 1
            MouseMove %NPosX%, %PosY%, 0
        }
    }

    if bVWrap = true
    {
        if PosY <= %iBorderTop%
        {
            NPosY := iBorderBottom - 1
            MouseMove %PosX%, %NPosY%, 0
        }
        else if PosY >= %iBorderBottom% 
        {
            NPosY := iBorderTop + 1
            MouseMove %PosX%, %NPosY%, 0
        }
    }

    if bShowTip = true
    {
        ToolTip Boundries...`nX: %iBorderLeft% < %PosX% > %iBorderRight%`nY: %iBorderTop% < %PosY% > %iBorderBottom%`n%TipString%
    }
return

; ------------------ End ------------------ ;

মাউস-মোড়ানো একটি বিষয়, তবে এটির কোনও ধারণা নেই যতক্ষণ না সমন্বয় সিস্টেমটি একইভাবে প্রতিটি অ্যাপ্লিকেশনের জন্য "মোড়ানো" না হয়।
Jamie Hanrahan

@ জামিহানরাহান আমি নিশ্চিত নই তুমি কি বোঝাতে চাও। প্রশ্ন পর্দা প্রান্ত থেকে পর্দা প্রান্ত থেকে মোড়ানো সম্পর্কে ছিল, অ্যাপ্লিকেশন মধ্যে না।
wysiwyg

অ্যাপ্লিকেশনগুলির জন্য মাউস এবং অন্যটির জন্য একটি সমন্বয় সিস্টেম থাকার কোন অর্থ নেই।
Jamie Hanrahan

@ জেমিহানরাহান দুঃখিত, এখনও বুঝতে পারছেন না। যদি আপনি কোডটিতে মন্তব্য করছেন তবে আমি এটি লিখিনি। সম্ভবত এটি উন্নত করা যেতে পারে কিন্তু এটি আমার জন্য ঠিক সূক্ষ্ম কাজ করে। আপনি যদি মূল প্রশ্নে মন্তব্য করেন তবে আমি মনে করি আমরা ভিন্নভাবে প্রশ্নটি বুঝতে পারছি। তুমি কি বিস্তারিত বলতে পারো?
wysiwyg

"প্রশ্নটি ... অ্যাপসের মধ্যে নেই"। এটা আমার পয়েন্ট। এটি অ্যাপ্লিকেশনের পাশাপাশি মাউস আন্দোলনের জন্য হতে হবে। নাহলে মাউস পয়েন্টারের নীচে একটি অ্যাপ্লিকেশন উইন্ডোটি "বিচ্ছিন্ন" হয়ে যাবে কারণ এটি একটি স্ক্রীনের প্রান্তে সরানো হয়েছে।
Jamie Hanrahan

0

হ্যাঁ: এথেন্স ইউনিভার্সিটি (গ্রীস) আইটি বিভাগ একটি বিনামূল্যের (ওপেন সোর্স নয়) অ্যাপ্লিকেশনের লিঙ্ক সরবরাহ করে, Edgeless2 , যদি ইনস্টল করা যা আপনি চান কি দিতে হবে।

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