[Tamaño de pantalla]

-Shadow- -  
 Phoenix -
Hola a todos!
Estoy buscando cómo conocer el tamaño de la pantalla en VBS. Aquí está el inicio de mi script:

Dim x, y
x = Screen.Width
y = Screen.Height

msgbox "Tamaño de la pantalla: " & x & "x" & y, vbSystemModal, "Tamaño"

x = 0
y = 0


Desafortunadamente, al abrir el archivo, hay un error que dice que "Screen" está indefinido.
¿Alguien podría ayudarme?
Gracias de antemano.
Configuración: Windows XP Media Center Edition 2005 Firefox 2.0.0.11

8 respuestas

Zakapuce Mensajes publicados 74 Estado Miembro 7
 
toma 3 minutos en Google :

Declarar función privada EnumDisplaySettings Lib "user32" Alias "EnumDisplaySettingsA" (ByVal lpszDeviceName As Long, ByVal iModeNum As Long, lpDevMode As Any) As Boolean

Declarar función privada ChangeDisplaySettings Lib "user32" Alias "ChangeDisplaySettingsA" (lpDevMode As Any, ByVal dwflags As Long) As Long
Constante privada CCDEVICENAME = 32
Constante privada CCFORMNAME = 32
Constante privada DM_BITSPERPEL = &H60000
Constante privada DM_PELSWIDTH = &H80000
Constante privada DM_PELSHEIGHT = &H100000

Tipo privado DEVMODE
dmDeviceName As String * CCDEVICENAME
dmSpecVersion As Integer
dmDriverVersion As Integer
dmSize As Integer
dmDriverExtra As Integer
dmFields As Long
dmOrientation As Integer
dmPaperSize As Integer
dmPaperLength As Integer
dmPaperWidth As Integer
dmScale As Integer
dmCopies As Integer
dmDefaultSource As Integer
dmPrintQuality As Integer
dmColor As Integer
dmDuplex As Integer
dmYResolution As Integer
dmTTOption As Integer
dmCollate As Integer
dmFormName As String * CCFORMNAME
dmUnusedPadding As Integer
dmBitsPerPel As Integer
dmPelsWidth As Long
dmPelsHeight As Long
dmDisplayFlags As Long
dmDisplayFrequency As Long
End Type

' Inputsim RetValue As Integer
RetValue = ChangeRes(800, 600, 32)
'
' Devuelve: 1 = Resolución cambiada con éxito
' 0 = La resolución no fue cambiada

Función ChangeRes(Width As Single, Height As Single, BPP As Integer) As Integer
On Error GoTo ERROR_HANDLER
Dim DevM As DEVMODE, I As Integer, ReturnVal As Boolean, _
RetValue, OldWidth As Single, OldHeight As Single, _
OldBPP As Integer
Call EnumDisplaySettings(0&, -1, DevM)
OldWidth = DevM.dmPelsWidth
OldHeight = DevM.dmPelsHeight
OldBPP = DevM.dmBitsPerPel
I = 0

Hacer
ReturnVal = EnumDisplaySettings(0&, I, DevM)
I = I + 1
Loop Until (ReturnVal = False)
DevM.dmFields = DM_PELSWIDTH Or DM_PELSHEIGHT Or DM_BITSPERPEL
DevM.dmPelsWidth = Width
DevM.dmPelsHeight = Height
DevM.dmBitsPerPel = BPP
Call ChangeDisplaySettings(DevM, 1)
RetValue = MsgBox("¿Desea mantener su resolución de pantalla en " & Width & "x" & Height & " - " & BPP & " BPP?", vbQuestion + vbOKCancel, "Confirmar cambio de resolución:")

Si RetValue = vbCancel Entonces
DevM.dmPelsWidth = OldWidth
DevM.dmPelsHeight = OldHeight
DevM.dmBitsPerPel = OldBPP
Call ChangeDisplaySettings(DevM, 1)
MsgBox "¡Resolución anterior(" & OldWidth & " x " & OldHeight & ", " & OldBPP & " Bits) restaurada con éxito!", vbInformation + vbOKOnly, "Confirmar resolución:"
ChangeRes = 0
Else
ChangeRes = 1
End If
Exit Function
ERROR_HANDLER:
ChangeRes = 0
End Function
1
meixducurtil
 
essaye ceci

Private Sub Form_Load()

Dim X As Long
Dim Y As Long

' Ancho
X = (Screen.Width \ Screen.TwipsPerPixelX)
' Alto
Y = (Screen.Height \ Screen.TwipsPerPixelY)

MsgBox "Aquí está la resolución de la pantalla: " & Chr$(13) & Chr$(13) & X & "x" & Y, vbOkOnly + vbInformation, "Resolución"

End Sub
By
0
-Shadow-
 
Hola de nuevo,

He puesto el código en mi script, pero hay errores. Creo que es porque es Visual Basic y no Visual Basic SCRIPT (VBS).
De todos modos, gracias de todas formas.
0
tarek_dotzero Mensajes publicados 834 Estado Miembro 122
 
He hecho una pequeña búsqueda, pero no encontré nada sobre el VBS, pero creo que esto ayudará

http://www.google.com/codesearch?hl=es&q=+createobject+screen+vbs+show:kuV_P5dKAzc:trHQnsR6BiU:OEvYCGwzuGo&sa=N&cd=7&ct=rc&cs_p=http://gentoo.osuosl.org/distfiles/awstats-6.5.tar.gz&cs_f=awstats-6.5/wwwroot/js/awstats_misc_tracker.js
0
-Shadow-
 
ZAKAPUCE ¡DIJE QUE NO HAY VISUAL BASIC!

Eh, oye, tarek_dotzero, ¡no entendí nada de lo que dice la página!
¡Es muy complicado!
0
Polux31 Mensajes publicados 7219 Estado Miembro 1 204
 
Las instrucciones son las mismas en VB y VBS ... ver: https://tahe.developpez.com/web/vbscript/?page=sommaire
0
-Shadow-
 
Estoy de acuerdo con lo que dices, pero en VBS los formularios no existen. Por lo tanto, Form1.Load (por ejemplo) no significa nada para Wscript.
Voy a intentar encontrar la solución a través del registro.
0
Phoenix
 
Si trabajas en Windows, el WMI está ahí para eso...

Aquí tienes un código que te puede ayudar ;)

Dim gfx, colours, horiz, vert strComputer = "." Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") Set colItems = objWMIService.ExecQuery _ ("Select * From Win32_DisplayConfiguration") For Each objItem in colItems gfx = "Nombre: " & objItem.DeviceName colours = "Profundidad de color: " & objItem.BitsPerPel horiz = "Resolución horizontal: " & objItem.PelsWidth vert = "Resolución vertical: " & objItem.PelsHeight Next msgbox gfx & vbcrlf & colours & vbcrlf & horiz & vbcrlf & vert 
0