Richard87 Skrevet 6. februar 2005 Del Skrevet 6. februar 2005 (endret) OK, kossen kan eg butta mellom 2 (eller mer oppsett) hved hjelp av Windows API? PC - Only PC-TV Clone PC(2) - TV(1) (te film etc) kossen kan eg butta mellom disse opsettå hved hjelp av WinAPI? ChangeDisplaySettings ??? PS. 1027x768, 32BPP på alle displayer... PS2: dette e koden, mes som altid returnerer false... who knows... Option Explicit Private Declare Function EnumDisplayDevices Lib "user32" Alias "EnumDisplayDevicesA" (Unused As Any, ByVal iDevNum As Long, lpDisplayDevice As DISPLAY_DEVICE, ByVal dwFlags As Long) As Long Private Type DISPLAY_DEVICE cb As Long DeviceName As String * 256 DeviceString As String * 256 StateFlags As Long DeviceID As String * 256 DeviceKey As String * 256 End Type Dim x As Long Private Sub Command1_Click() x = x + 1 Dim temp As DISPLAY_DEVICE Dim ret As Long temp.cb = LenB(temp) ret = EnumDisplayDevices(vbNull, x, temp, vbNull) Cls Print ret & ": Return Value" With temp Print .cb & ": Size of Structure" Print .DeviceID & ": Device ID" Print .DeviceKey & ": Device Key" Print .DeviceName & ": Device Name" Print .DeviceString & ": Device String" Print .StateFlags & ": Current Flags" Print "" Print x & ": Device Number" End With End Sub Private Sub Form_Load() x = -1 End Sub Endret 6. februar 2005 av Richard87 Lenke til kommentar
aadnk Skrevet 6. februar 2005 Del Skrevet 6. februar 2005 Du kaller ikke funksjonen EnumDisplayDevices på en riktig måte. Man kan ikke sende verdien 0 med vbNull når paramenteren automatisk sender lokalisasjonen til variabelen eller verdien den blir gitt. Istendenfor må man gjøre noe som følger: ret = EnumDisplayDevices(ByVal 0&, x, temp, 0&) Lenke til kommentar
Richard87 Skrevet 6. februar 2005 Forfatter Del Skrevet 6. februar 2005 (endret) rart, MSDN skrev NULL, ikke 0:( unasett virket ike det heller... Private Sub Command1_Click() x = x + 1 Dim test As Long Dim temp As DISPLAY_DEVICE Dim ret As Long temp.cb = LenB(temp) ret = EnumDisplayDevices(test, x, temp, test) Cls With temp Print .cb & ": Size of Structure" Print .DeviceID & ": Device ID" Print .DeviceKey & ": Device Key" Print .DeviceName & ": Device Name" Print .DeviceString & ": Device String" Print .StateFlags & ": Current Flags" Print "----------------------------------" Print ret & ": Return Value" Print x & ": Device Number" End With End Sub Endret 6. februar 2005 av Richard87 Lenke til kommentar
aadnk Skrevet 6. februar 2005 Del Skrevet 6. februar 2005 (endret) Strengene i UDT-en inneholder store tomme områder, hvilket kan føre til at selve informasjonen skrives utenfor formen. Du bør derfor heller skrive informasjonen til en tekstboks. Endret 6. februar 2005 av aadnk Lenke til kommentar
Richard87 Skrevet 7. februar 2005 Forfatter Del Skrevet 7. februar 2005 eg har sett på det, men ingenting virker:( (textbox og listbox, begge to veldig lange...) Lenke til kommentar
aadnk Skrevet 7. februar 2005 Del Skrevet 7. februar 2005 Jeg tror du har gjort enda en fudamental feil, dessverre. Bare sjekk ut det vedlagte eksempelprogrammet i dette innlegget - der fungerer alt utmerket, iallfall hos meg. EnumDevices.zip Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå