[DllImport("user32.dll")]
static extern bool EnumDisplayDevices(string lpDevice, uint iDevNum, ref DISPLAY_DEVICE lpDisplayDevice, uint dwFlags);
<DllImport("user32.dll", EntryPoint:="EnumDisplayDevices", CharSet:=CharSet.Auto, CallingConvention:=CallingConvention.StdCall)> _
Public Shared Function EnumDuisplayDevices(ByVal lpDevice As String, ByVal iDevNum As UInteger, ByRef lpDisplayDevice As DISPLAY_DEVICE, ByVal dwFlags As UInteger) As Integer
End Function
None.
Please add some!
DISPLAY_DEVICE d=new DISPLAY_DEVICE();
d.cb=Marshal.SizeOf(d);
try {
for (uint id=0; EnumDisplayDevices(null, id, ref d, 0); id++) {
Console.WriteLine(
String.Format("{0}, {1}, {2}, {3}, {4}, {5}",
id,
d.DeviceName,
d.DeviceString,
d.StateFlags,
d.DeviceID,
d.DeviceKey
)
);
d.cb=Marshal.SizeOf(d);
}
} catch (Exception ex) {
Console.WriteLine(String.Format("{0}",ex.ToString()));
}
'Tested with VisualStudio 2010, Windows 7 x64
Dim i, numberOfInterfaces as Integer
Dim dispDev1 As New DISPLAY_DEVICE
dispDev1.cb = Marshal.SizeOf(dispDev1)
'First we have to enumerate the adapters.
i = 0
While (EnumDD(vbNullString, i, dispDev1, &H0))
deviceName(i) = dispDev1.DeviceName
i += 1
End While
numberOfInterfaces = i
'Once we know how many adapters there are, we'll loop and retrieve some data
For i = 0 to numberOfInterfaces - 1
EnumDD(vbNullString, i, dispDev1, &H0)
TextBox1.AppendText("-=Adapter=-" & vbCrLf)
TextBox1.AppendText("deviceName:" & dispDev1.DeviceName & vbCrLf)
TextBox1.AppendText("deviceString:" & dispDev1.DeviceString & vbCrLf)
TextBox1.AppendText("deviceFlags:" & dispDev1.StateFlags & vbCrLf)
TextBox1.AppendText("-=Monitor=-" & vbCrLf)
EnumDD(dispDev1.DeviceName, 0, dispDev1, &H1)
TextBox1.AppendText("deviceName:" & dispDev2.DeviceName & vbCrLf)
TextBox1.AppendText("deviceString:" & dispDev2.DeviceString & vbCrLf)
TextBox1.AppendText("deviceFlags:" & dispDev2.StateFlags & vbCrLf)
TextBox1.AppendText("--" & vbCrLf)
Next
None.