Avatar billede mosquitoman Nybegynder
14. september 2009 - 20:47 Der er 17 kommentarer og
1 løsning

skærmopløsning

Hej

Jeg har læst på siderne om skærmopløsning men jeg har ikke fundet ud af svaret til hvordan man sætter skærmopløsningen automatisk tilbage til den skærmopløsning man kom fra. jeg har lavet et selvstændigt modul men men kan ikke finde ud af hvad jeg skal skrive ved hændelsen lukning?
Avatar billede mosquitoman Nybegynder
14. september 2009 - 20:49 #1
Avatar billede terry Ekspert
15. september 2009 - 09:27 #2
Here's some code which you can us eto find the current resolution. Save these so you can restore them later.

Private Declare Function GetSystemMetrics Lib "user32.dll" (ByVal nIndex As Long) As Long
Const SM_CXSCREEN = 0
Const SM_CYSCREEN = 1

Public Function VerifyScreenResolution(Optional Dummy As Integer)
   
    Dim x  As Long
    Dim y  As Long
    Dim MyMessage As String
    Dim MyResponse As VbMsgBoxResult
   
    x = GetSystemMetrics(SM_CXSCREEN)
    y = GetSystemMetrics(SM_CYSCREEN)
    If x = 1024 And y = 768 Then
    Else
        MyMessage = "Your current screen resolution is " & x & " X " & y & vbCrLf & "This program " & _
        "was designed to run with a screen resolution of 1024 X 768 and may not function properly " & _
        "with your current settings." & vbCrLf & "Would you like to change your screen resolution?"
        MyResponse = MsgBox(MyMessage, vbExclamation + vbYesNo, "Screen Resolution")
    End If
    If MyResponse = vbYes Then
        Call Shell("rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,3")
    End If
   
End Function
Avatar billede terry Ekspert
15. september 2009 - 09:34 #3
If you change the dll declaration to public then you can call GetsSystemMetrics from anywhere in you program



Public Declare Function GetSystemMetrics Lib "user32.dll" (ByVal nIndex As Long) As Long



Dim x  As Long
Dim y  As Long

    x = GetSystemMetrics(0)
    y = GetSystemMetrics(1)
Avatar billede mosquitoman Nybegynder
15. september 2009 - 11:32 #4
Hey Terry

Thanks for the help, but where exactly am I going to put the two different codes.
Avatar billede terry Ekspert
15. september 2009 - 12:15 #5
Put them in a module.

What you need is this



Public x As Long
Public y As Long


Public Declare Function GetSystemMetrics Lib "user32.dll" (ByVal nIndex As Long) As Long



Public Function GetScreenResolution()

    x = GetSystemMetrics(0)
    y = GetSystemMetrics(1)

End Function



Before you set the screen resolution using the liks you gave in your original question you need to call GetScreenResolution.

This puts the resolution in variables X and y.

Then you can use these when you want to reset the resolution to what they were when you opened the dB.
Avatar billede mosquitoman Nybegynder
15. september 2009 - 16:35 #6
Hey

nej jeg får det ikke til at virke, har tested alt hvad jeg kan komme på, jeg får ikke resolutionen tilbage. når jeg så prøver med noget andet så får jeg compile error.
Avatar billede terry Ekspert
15. september 2009 - 18:18 #7
Can you sent me an example of your dB?
ekspertenATsanthell.dk

AT = @
Avatar billede mosquitoman Nybegynder
15. september 2009 - 19:38 #8
database sendt
Avatar billede terry Ekspert
15. september 2009 - 21:37 #9
I have sent it back to you, have you received it?
Avatar billede mosquitoman Nybegynder
15. september 2009 - 22:18 #10
Hey
Yes I Have Recived it, It works when starting the database, but when I close the database nothing happens, it dosent change the resolution back.
Avatar billede terry Ekspert
16. september 2009 - 08:19 #11
Did you recive the second dB I sent?

The code for resetting the resolution is in the form. Try closing the form to see if it resets the resolution.

It works fine here.
Avatar billede terry Ekspert
16. september 2009 - 08:25 #12
actually it works when you close the dB too.
Avatar billede terry Ekspert
16. september 2009 - 08:26 #13
I have sent you a new dB. I had problems sending it because your mailbox was full
Avatar billede mosquitoman Nybegynder
16. september 2009 - 17:52 #14
Hej

Mange tak for hjælpen Terry, nu fungere det bare fint-fint. Du skal have point, men nu er der ingen (accepteret) knap. Hvad kan der være sket nu?
Avatar billede terry Ekspert
16. september 2009 - 18:13 #15
I need to place an answer :o)
Avatar billede mosquitoman Nybegynder
16. september 2009 - 18:21 #16
Jeg har prøvet at logge ud og så logge ind igen jeg kan stadigvæk ikke en accepteret knap. det er jeg sku godt nok ked af Terry, men jeg ved ikke hvad jeg skal gøre? Jeg har givet dig point før, så det er ikke det at jeg ikke vil.
Avatar billede mosquitoman Nybegynder
16. september 2009 - 18:23 #17
så var der point til Terry og tak igen for hjælpen.
Avatar billede terry Ekspert
16. september 2009 - 18:30 #18
selv tak
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester