回答編集履歴
3
追記
answer
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
とりあえず [SetDisplayConfig](https://docs.microsoft.com/ja-jp/windows/win32/api/winuser/nf-winuser-setdisplayconfig) の最低限動作したサンプルを。
|
1
|
+
とりあえず表示画面の複製に切り替えるのを前提で、 [SetDisplayConfig](https://docs.microsoft.com/ja-jp/windows/win32/api/winuser/nf-winuser-setdisplayconfig) の最低限動作したサンプルを。
|
2
2
|
詳細は、APIのリファレンスを読んでください。
|
3
3
|
```vbnet
|
4
4
|
Imports System.Runtime.InteropServices
|
@@ -35,4 +35,5 @@
|
|
35
35
|
End Sub
|
36
36
|
|
37
37
|
End Module
|
38
|
-
```
|
38
|
+
```
|
39
|
+
KOZ6.0さんが紹介している拡大APIで特定ウィンドウを表示させるとかも出来そうですが、ちょっと面倒くさそうなのでそちらは試してません。
|
2
少し修正
answer
CHANGED
@@ -22,11 +22,11 @@
|
|
22
22
|
End Function
|
23
23
|
|
24
24
|
Sub Main()
|
25
|
-
Console.WriteLine("何かキーを押すと
|
25
|
+
Console.WriteLine("何かキーを押すと表示画面複製に切り替えます。")
|
26
26
|
Console.ReadKey()
|
27
27
|
SetDisplayConfig(0, IntPtr.Zero, 0, IntPtr.Zero, (SDCFlags.SDC_APPLY Or SDCFlags.SDC_TOPOLOGY_CLONE))
|
28
28
|
|
29
|
-
Console.WriteLine("何かキーを押すと
|
29
|
+
Console.WriteLine("何かキーを押すと表示画面拡張に切り替えます。")
|
30
30
|
Console.ReadKey()
|
31
31
|
SetDisplayConfig(0, IntPtr.Zero, 0, IntPtr.Zero, (SDCFlags.SDC_APPLY Or SDCFlags.SDC_TOPOLOGY_EXTEND))
|
32
32
|
|
1
少し修正
answer
CHANGED
@@ -6,14 +6,19 @@
|
|
6
6
|
Module Module1
|
7
7
|
|
8
8
|
<Flags>
|
9
|
-
Enum SDCFlags
|
9
|
+
Enum SDCFlags As Integer
|
10
10
|
SDC_TOPOLOGY_CLONE = &H2
|
11
11
|
SDC_TOPOLOGY_EXTEND = &H4
|
12
12
|
SDC_APPLY = &H80
|
13
13
|
End Enum
|
14
14
|
|
15
15
|
<DllImport("User32.dll")>
|
16
|
+
Function SetDisplayConfig(
|
17
|
+
numPathArrayElements As Integer,
|
18
|
+
pathArray As IntPtr,
|
16
|
-
|
19
|
+
numModeInfoArrayElements As Integer,
|
20
|
+
modeInfoArray As IntPtr,
|
21
|
+
flags As SDCFlags) As Integer
|
17
22
|
End Function
|
18
23
|
|
19
24
|
Sub Main()
|
@@ -30,5 +35,4 @@
|
|
30
35
|
End Sub
|
31
36
|
|
32
37
|
End Module
|
33
|
-
|
34
38
|
```
|