質問: windowsのウィンドウをデュアルモニターに最大化しますか? デュアルモニターを使用していて、現在のウィンドウをまたがって、両方のモニターで1つの巨大なウィンドウとして表示したいと考えています。これをwindowsでネイティブに行う方法を誰かが知っていますか?
回答: 他の人が言っていることとは対照的に、これはマウスの下にあるウィンドウを最大化する無料の実用的なソリューションです。(クレジットは、これらの驚くべき「自動」機能を書いた人のところに行きます-私はそれらを使用するビットを書いただけです。)autoitをダウンロードしてインストールします(フリーソフトウェア)。 http://www.autoitscript.com/site/autoit/ .au3ファイルを作成します。これを内部に貼り付けます:#include <misc.au3> #include <array.au3> hotkeyset('{esc}', '_exit') global $wintext, $oldmouse[2], $newmouse[2], $windows, $x, $mywin, $mycoords $newmouse = mousegetpos() $title = _getwin() winsetstate($mywin,"",@sw_restore) winmove($mywin,"",0,0,3840,1165) func _getwin() local $coords tooltip("") $mouse = mousegetpos() $oldmouse = $mouse $windows = _winlist() ;_arraydisplay($windows, "") for $x = 1 to ubound($windows)-1 $coords = wingetpos($windows[$x][0], "") if $coords = -4 then exitloop if isarray($coords) then if $mouse[0] >= $coords[0] and $mouse[0] <= ($coords[0]+$coords[2]) and $mouse[1] >= $coords[1] and $mouse[1] <= ($coords[1]+$coords[3]) then exitloop endif next if $x = ubound($windows) then $x -= 1 $mywin = $windows[$x][0] $control = _mousegetctrlinfo() $return = $windows[$x][0] & @crlf & $control return $return endfunc func _winlist() local $winlistarray[1][2] $var = winlist() for $i = 1 to $var[0][0] if $var[$i][0] <> "" and isvisible($var[$i][1]) then redim $winlistarray[ubound($winlistarray) + 1][2] $winlistarray[ubound($winlistarray)-1][0] = $var[$i][0] $winlistarray[ubound($winlistarray)-1][1] = $var[$i][1] endif next return $winlistarray endfunc func isvisible($handle) if bitand( wingetstate($handle), 2 ) then return 1 else return 0 endif endfunc func _exit() exit endfunc func _mousegetctrlinfo() ; get id, classe and text of a control global $hwin = wingethandle($mywin) global $sclasslist = wingetclasslist($hwin) local $ssplitclass = stringsplit(stringtrimright($sclasslist, 1), @lf) local $ampos = mousegetpos() ;_arraydisplay($ssplitclass, "") $mycoords = clienttoscreen($hwin) for $icount = ubound($ssplitclass) - 1 to 1 step - 1 local $ncount = 0 if $ssplitclass[$icount] = "workerw" then continueloop while 1 $ncount += 1 $acpos = controlgetpos($hwin, '', $ssplitclass[$icount] & $ncount) if @error then exitloop $hctrlwnd = controlgethandle ($hwin, "", $ssplitclass[$icount] & $ncount) if isarray($acpos) then if $ampos[0] >= ($mycoords[0]+$acpos[0]) and $ampos[0] <= ($mycoords[0]+$acpos[0] + $acpos[2]) _ and $ampos[1] >= ($mycoords[1]+$acpos[1]) and $ampos[1] <= ($mycoords[1]+$acpos[1] + $acpos[3]) then $areturn = dllcall('user32.dll', 'int', 'getdlgctrlid', 'hwnd', $hctrlwnd) if @error then return "err" $text = controlgettext($hwin, '', $ssplitclass[$icount] & $ncount) if stringinstr($text, @lf) then $text = "demasiado largo" if isarray($areturn) then return 'controlid: ' & $areturn[0] & @crlf & 'classnamenn: ' & $ssplitclass[$icount] & $ncount & @crlf & "text: " & $text endif endif wend next ;_arraydisplay($ssplitclass, "") return "no ctrl" endfunc func clienttoscreen($hwnd) ; get client area of a win relative to the screan local $point, $ares[2] local $cx, $cy $point = dllstructcreate("int;int") dllstructsetdata($point, 1, $cx) dllstructsetdata($point, 1, $cy) dllcall("user32.dll", "int", "clienttoscreen", "hwnd", $hwnd, "ptr", dllstructgetptr($point)) $ares[0] = dllstructgetdata($point, 1) $ares[1] = dllstructgetdata($point, 2) return $ares endfunc 次に、行を変更しますwinmove($ mywin、 ""、0,0,3840,1165)あなたの好みの値に。次に、このファイルへのwindowsショートカットを作成し、右クリックして[プロパティ]を選択し、ショートカットを割り当てます(例:ctrl + alt + up)。ウィンドウを小さなサイズに戻すには、手順を繰り返して2つ目のファイルを作成する必要があることがほとんどです。お役に立てれば