تبلیغات :
ماهان سرور
آکوستیک ، فوم شانه تخم مرغی ، پنل صداگیر ، یونولیت
دستگاه جوجه کشی حرفه ای
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




صفحه 1 از 2 12 آخرآخر
نمايش نتايج 1 به 10 از 12

نام تاپيک: مي خوام رزوليشن رو تغيير بدم .

  1. #1
    پروفشنال sari-1369's Avatar
    تاريخ عضويت
    Nov 2007
    محل سكونت
    ساري
    پست ها
    766

    پيش فرض مي خوام رزوليشن رو تغيير بدم .

    سلام دوستان ...
    ميخوام وقتي كه برنامه رو اجرا ميكنم . اول رزوليشن فعلي مانيتور رو بگيره . و بعد رزوليشن رو به اون اندازه اي كه من از قبل تعيين كردم تغيير بده .
    ودر انتها كه برنامه end ميشه به رزوليشن اولي برگرده .

  2. #2
    پروفشنال sari-1369's Avatar
    تاريخ عضويت
    Nov 2007
    محل سكونت
    ساري
    پست ها
    766

    پيش فرض

    سلام دوستان ...
    ميخوام وقتي كه برنامه رو اجرا ميكنم . اول رزوليشن فعلي مانيتور رو بگيره . و بعد رزوليشن رو به اون اندازه اي كه من از قبل تعيين كردم تغيير بده .
    ودر انتها كه برنامه end ميشه به رزوليشن اولي برگرده .
    چرا كسي كمكم نميكنه ....

  3. #3
    اگه نباشه جاش خالی می مونه nibble's Avatar
    تاريخ عضويت
    Sep 2007
    محل سكونت
    USA Boston MA
    پست ها
    477

    پيش فرض

    سلام
    راحت ترين راهش اينه كه با Api اين كار رو انجام بديد شما راه ديگه اي مي خواين ؟
    Last edited by nibble; 01-02-2008 at 09:13.

  4. #4
    داره خودمونی میشه من من's Avatar
    تاريخ عضويت
    Nov 2007
    پست ها
    31

    پيش فرض

    منم می خوام بدونم ....

    api دیگه چیه؟

  5. #5
    پروفشنال sari-1369's Avatar
    تاريخ عضويت
    Nov 2007
    محل سكونت
    ساري
    پست ها
    766

    پيش فرض

    سلام
    راحت ترين راهش اينه كه با Api اين كار رو انجام بديد شما راه ديگه اي مي خواين ؟
    سلام دوست عزيز....
    ميشه بگي از كدوم تابع api استفاده كنم ..
    اگه ميتونستي يه سورس كد بهم بدي خيلي خوب مي شد .

  6. #6
    اگه نباشه جاش خالی می مونه nibble's Avatar
    تاريخ عضويت
    Sep 2007
    محل سكونت
    USA Boston MA
    پست ها
    477

    پيش فرض

    سلام از تابع ChangeDisplaySettingsEx استفاده كنيد
    اينم كد برنامه اي كه مي خواهيد:
    البته ببخشيد خود برنامه رو نزاشتم فقط كدش و اين جا مي زارم
    Private Const DM_PELSWIDTH = &H80000
    Private Const DM_PELSHEIGHT = &H100000
    Private Const CDS_UPDATEREGISTRY = &H1

    Private Type DEVMODE
    dmDeviceName As String * 32
    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 * 32
    dmUnusedPadding As Integer
    dmBitsPerPel As Integer
    dmPelsWidth As Long
    dmPelsHeight As Long
    dmDisplayFlags As Long
    dmDisplayFrequency As Long
    dmPanningWidth As Long
    dmPanningHeight As Long
    End Type

    Private Declare Function ChangeDisplaySettingsEx Lib "user32" Alias "ChangeDisplaySettingsExA" (lpszDeviceName As Any, lpDevode As Any, ByVal hWnd As Long, ByVal dwFlags As Long, lParam As Any) As Long

    Dim PrevX As Long, PrevY As Long

    Private Sub Form_Load()
    Dim Dev As DEVMODE
    PrevX = Screen.Width / Screen.TwipsPerPixelX
    PrevY = Screen.Height / Screen.TwipsPerPixelY
    Dev.dmSize = Len(Dev)
    Dev.dmFields = DM_PELSWIDTH Or DM_PELSHEIGHT
    Dev.dmPelsWidth = 800
    Dev.dmPelsHeight = 600
    ChangeDisplaySettingsEx ByVal 0&, Dev, ByVal 0&, CDS_UPDATEREGISTR, ByVal 0&
    End Sub

    Private Sub Form_Unload(Cancel As Integer)
    Dim Dev As DEVMODE
    Dev.dmSize = Len(Dev)
    Dev.dmPelsWidth = PrevX
    Dev.dmPelsHeight = PrevY
    ChangeDisplaySettingsEx ByVal 0&, Dev, ByVal 0&, CDS_UPDATEREGISTR, ByVal 0&
    End Sub

  7. #7
    اگه نباشه جاش خالی می مونه nibble's Avatar
    تاريخ عضويت
    Sep 2007
    محل سكونت
    USA Boston MA
    پست ها
    477

    پيش فرض

    البته براي گرفتن resolution مي تونيد از تابعEnumDisplaySettings هم استفاده كنيد
    Last edited by nibble; 02-02-2008 at 07:50.

  8. #8
    آخر فروم باز lord_ashkan_z's Avatar
    تاريخ عضويت
    Oct 2007
    محل سكونت
    The Board Black Pearl
    پست ها
    1,129

    پيش فرض

    سلام از تابع ChangeDisplaySettingsEx استفاده كنيد
    اينم كد برنامه اي كه مي خواهيد:
    البته ببخشيد خود برنامه رو نزاشتم فقط كدش و اين جا مي زارم
    Private Const DM_PELSWIDTH = &H80000
    Private Const DM_PELSHEIGHT = &H100000
    Private Const CDS_UPDATEREGISTRY = &H1

    Private Type DEVMODE
    dmDeviceName As String * 32
    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 * 32
    dmUnusedPadding As Integer
    dmBitsPerPel As Integer
    dmPelsWidth As Long
    dmPelsHeight As Long
    dmDisplayFlags As Long
    dmDisplayFrequency As Long
    dmPanningWidth As Long
    dmPanningHeight As Long
    End Type

    Private Declare Function ChangeDisplaySettingsEx Lib "user32" Alias "ChangeDisplaySettingsExA" (lpszDeviceName As Any, lpDevode As Any, ByVal hWnd As Long, ByVal dwFlags As Long, lParam As Any) As Long

    Dim PrevX As Long, PrevY As Long

    Private Sub Form_Load()
    Dim Dev As DEVMODE
    PrevX = Screen.Width / Screen.TwipsPerPixelX
    PrevY = Screen.Height / Screen.TwipsPerPixelY
    Dev.dmSize = Len(Dev)
    Dev.dmFields = DM_PELSWIDTH Or DM_PELSHEIGHT
    Dev.dmPelsWidth = 800
    Dev.dmPelsHeight = 600
    ChangeDisplaySettingsEx ByVal 0&, Dev, ByVal 0&, CDS_UPDATEREGISTR, ByVal 0&
    End Sub

    Private Sub Form_Unload(Cancel As Integer)
    Dim Dev As DEVMODE
    Dev.dmSize = Len(Dev)
    Dev.dmPelsWidth = PrevX
    Dev.dmPelsHeight = PrevY
    ChangeDisplaySettingsEx ByVal 0&, Dev, ByVal 0&, CDS_UPDATEREGISTR, ByVal 0&
    End Sub
    اگر میشه یه توضیحی بدین ...
    من می خوام بفهمم شما چه کرده اید، نه آنکه فقط کپی کنم.
    mer30

  9. #9
    پروفشنال sari-1369's Avatar
    تاريخ عضويت
    Nov 2007
    محل سكونت
    ساري
    پست ها
    766

    پيش فرض

    سلام از تابع ChangeDisplaySettingsEx استفاده كنيد
    اينم كد برنامه اي كه مي خواهيد:
    البته ببخشيد خود برنامه رو نزاشتم فقط كدش و اين جا مي زارم
    Private Const DM_PELSWIDTH = &H80000
    Private Const DM_PELSHEIGHT = &H100000
    Private Const CDS_UPDATEREGISTRY = &H1

    Private Type DEVMODE
    dmDeviceName As String * 32
    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 * 32
    dmUnusedPadding As Integer
    dmBitsPerPel As Integer
    dmPelsWidth As Long
    dmPelsHeight As Long
    dmDisplayFlags As Long
    dmDisplayFrequency As Long
    dmPanningWidth As Long
    dmPanningHeight As Long
    End Type

    Private Declare Function ChangeDisplaySettingsEx Lib "user32" Alias "ChangeDisplaySettingsExA" (lpszDeviceName As Any, lpDevode As Any, ByVal hWnd As Long, ByVal dwFlags As Long, lParam As Any) As Long

    Dim PrevX As Long, PrevY As Long

    Private Sub Form_Load()
    Dim Dev As DEVMODE
    PrevX = Screen.Width / Screen.TwipsPerPixelX
    PrevY = Screen.Height / Screen.TwipsPerPixelY
    Dev.dmSize = Len(Dev)
    Dev.dmFields = DM_PELSWIDTH Or DM_PELSHEIGHT
    Dev.dmPelsWidth = 800
    Dev.dmPelsHeight = 600
    ChangeDisplaySettingsEx ByVal 0&, Dev, ByVal 0&, CDS_UPDATEREGISTR, ByVal 0&
    End Sub

    Private Sub Form_Unload(Cancel As Integer)
    Dim Dev As DEVMODE
    Dev.dmSize = Len(Dev)
    Dev.dmPelsWidth = PrevX
    Dev.dmPelsHeight = PrevY
    ChangeDisplaySettingsEx ByVal 0&, Dev, ByVal 0&, CDS_UPDATEREGISTR, ByVal 0&
    End Sub
    ممنونم ........

  10. #10
    اگه نباشه جاش خالی می مونه nibble's Avatar
    تاريخ عضويت
    Sep 2007
    محل سكونت
    USA Boston MA
    پست ها
    477

    پيش فرض

    خواهش مي كنم

    اگر میشه یه توضیحی بدین ...
    من می خوام بفهمم شما چه کرده اید، نه آنکه فقط کپی کنم.
    mer30
    خوب توي اين برنامه مي خواهيم وقتي برنامه اجرا مي شه resolution رو تغيير بده و وقتي برنامه تمام مي شه resolution به حالت قبل بركرده پس لازم داريم قبل از تغيير resolution مقدار قبلي اون رو ذخيره كنيم
    تغيير resolution را با تابع ChangeDisplaySettingsEx انجام مي دهيم
    توي form load قبل از تغيير مقدار قبلي resolution رو در متغير هاي prevx, prevy ذخيره مي كنيم ( Screen.Width عرض صفحه نمايش و Screen.TwipsPerPixelX تعداد twip رو در هر پيكسل افقي بر مي گرداند بنابراين با تقسيم Screen.Width / Screen.TwipsPerPixelX تعداد پيكسل هاي صفحه نمايش بدست مي ياد ) و بعد هم در Dev.dmPelsWidth و Dev.dmPelsHeight مقدارهاي جديد رو وارد مي كنيد و تابع رو صدا مي زنيم تا resolution رو تغير بده
    توي form unlaod مقدار قبلي resolution رو كه در prevx,prevy ذخيره كرديم به Dev.dmPelsWidth و Dev.dmPelsHeight انتساب مي ديم و تابع رو صدا مي زنيم تا دوباره به حالت اول برگرده

    ديگه هر چي كه توضيح داشت گفتم اميدوارم فهميده باشيد

صفحه 1 از 2 12 آخرآخر

Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •