とりあえず表示画面の複製に切り替えるのを前提で、 SetDisplayConfig の最低限動作したサンプルを。
詳細は、APIのリファレンスを読んでください。
vbnet
1Imports System.Runtime.InteropServices
2
3Module Module1
4
5 <Flags>
6 Enum SDCFlags As Integer
7 SDC_TOPOLOGY_CLONE = &H2
8 SDC_TOPOLOGY_EXTEND = &H4
9 SDC_APPLY = &H80
10 End Enum
11
12 <DllImport("User32.dll")>
13 Function SetDisplayConfig(
14 numPathArrayElements As Integer,
15 pathArray As IntPtr,
16 numModeInfoArrayElements As Integer,
17 modeInfoArray As IntPtr,
18 flags As SDCFlags) As Integer
19 End Function
20
21 Sub Main()
22 Console.WriteLine("何かキーを押すと表示画面複製に切り替えます。")
23 Console.ReadKey()
24 SetDisplayConfig(0, IntPtr.Zero, 0, IntPtr.Zero, (SDCFlags.SDC_APPLY Or SDCFlags.SDC_TOPOLOGY_CLONE))
25
26 Console.WriteLine("何かキーを押すと表示画面拡張に切り替えます。")
27 Console.ReadKey()
28 SetDisplayConfig(0, IntPtr.Zero, 0, IntPtr.Zero, (SDCFlags.SDC_APPLY Or SDCFlags.SDC_TOPOLOGY_EXTEND))
29
30 Console.WriteLine("何かキーを押すと終了します。")
31 Console.ReadKey()
32 End Sub
33
34End Module
KOZ6.0さんが紹介している拡大APIで特定ウィンドウを表示させるとかも出来そうですが、ちょっと面倒くさそうなのでそちらは試してません。