ورود

View Full Version : تغییر رزولیشن و پایین اومدن refresh rate



bashir_nashi
یک شنبه 23 مرداد 1384, 15:59 عصر
سلام.
به کدی برای تغییر رزولیشن نیاز دارم که سرعت رفرش مانیتور رو پایین نداره .
وقتی رزولیشن رو تغییر می دم خودش میاد رو 60هرتز .
کدی برای تغییر اون سراغ ندارین ؟
با تشکر.

vcldeveloper
دوشنبه 24 مرداد 1384, 02:46 صبح
وقتی رزولیشن رو تغییر می دم خودش میاد رو 60هرتز .
هر کارت گرافیکی مجموعه ای از resolution های مختلف به همراه refresh rate مناسب برای اون resolution رو پشتیبانی میکنه. اگه با تغییر resolution تصویر refresh rate کاهش پیدا میکنه، علتش اینه که کارت گرافیک شما اون resolution رو حداکثر با refresh rate 60 Hz پشتیبانی میکنه.

در هر حال برای تغییر resolution و refresh rate تصویر می تونید از تابع API زیر استفاده کنید:
ChangeDisplaySettings

vb341
دوشنبه 24 مرداد 1384, 08:29 صبح
به این یه نگاهی بینداز

bashir_nashi
دوشنبه 24 مرداد 1384, 14:42 عصر
با تشکر
آقای کشاورز درسته که با تغییر رزولیشن رفرش ریت پایین میاد ولی دستی میتونم اونو تا 85 بالا ببرم . یعنی این بخاطر ضعف کارت گرافیک یا مانیتو نیست .
vb341 برنامه ای که داده بودید رو اجرا کردم ولی همون مشکل رو داشتم . پایین آمدن رقرش ریت تا 60 . اگه اون برنامه تو سیستم شما این مشکل رو ایجاد نمی کنه حتما بگید تا من یه فکر دیگه بکنم .

mohsengrisly
دوشنبه 24 مرداد 1384, 23:23 عصر
نه اقا همه جا همینطوره
یادمه یه تابع برای این کار بود
با اون شما برای مثلا نمایش یک برنامه اموزشی به اندازه 600*800 می رفتی و وقتی خارج میشی و به حالت اولیه بر می گردی هنوزم روی همون 85 که قبلا تنظیم کردی می مونه
اگر پیدا کردم شما رو هم در جریان میذارم

bashir_nashi
چهارشنبه 26 مرداد 1384, 21:20 عصر
ممنون میشم . اگه به نتیجه ای رسیدین دست ما رو هم بگیرید.

subsub
شنبه 13 خرداد 1385, 13:01 عصر
یه کلیدی هست توی رجیستری به این آدرس


HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Hardware Profiles\Current\System\CurrentControlSet\Control\ VIDEO\{1E694909-AAB4-4965-8E2C-921C05731AA6}\0000
اسم خود کلید هم DefaultSettings.VRefresh هست. این کلید رفرش ریت جاری سیستم رو ذخیره می کنه.
اگه ممکنه همه تو کامپیوتراشون چک کنند چنین کلیدی تو رجیستری شون هست یا نه؟ اگه همه چنین کلید رو داشته باشند، می تونیم رفرش ریت رو از همین کلید بخونیم

hadi2345
شنبه 13 خرداد 1385, 16:03 عصر
یه کلیدی هست توی رجیستری به این آدرس

اسم خود کلید هم DefaultSettings.VRefresh هست. این کلید رفرش ریت جاری سیستم رو ذخیره می کنه.
اگه ممکنه همه تو کامپیوتراشون چک کنند چنین کلیدی تو رجیستری شون هست یا نه؟ اگه همه چنین کلید رو داشته باشند، می تونیم رفرش ریت رو از همین کلید بخونیم

بله موجوده ! و روی این مساله کار میکنم تا اگه بشه این مشکل رو حل کنیم . چون خود من این مساله رو تو www.vbcity.com مطرح کردم و جواب درست و حسابی نگرفتم . امیدوارم که تو همه کامپیوتر ها این کلید وجود داشته باشه ( فکر میکنم وجود داره ) تا از طریق رجیستری این مشکلو حل کنیم .

موفق باشید .

hadi2345
یک شنبه 14 خرداد 1385, 07:59 صبح
با سلام مجدد ...
من برنامه شو دیروز نوشتم و تست کردم . متاسفانه باز هم جواب نداد !! من از طریق کد مقدار رفرش ریت رو در رجیستری تغییر میدم و مشکلی هم پیش نمیاد ولی وقتی که رفرش ریت مانیتور رو چک میکنم میبینم که هنوز 60 باقی مونده !!! .

موفق باشید .

subsub
چهارشنبه 17 خرداد 1385, 12:28 عصر
بهتره نام و مسیر یه کلید ثابت که توی همه کامپیوترها وجود داره رو از خود مایکروسافت بپرسیم. یکی از دوستان از مایکروسافت سوال کنه؟ من که خیلی زبانم خوب نیست.

subsub
پنج شنبه 18 خرداد 1385, 11:57 صبح
با سلام مجدد ...
من برنامه شو دیروز نوشتم و تست کردم . متاسفانه باز هم جواب نداد !! من از طریق کد مقدار رفرش ریت رو در رجیستری تغییر میدم و مشکلی هم پیش نمیاد ولی وقتی که رفرش ریت مانیتور رو چک میکنم میبینم که هنوز 60 باقی مونده !!! .

موفق باشید .
من که نگفتم اگه رفرش ریت رو توی رجیستری تغییر دادی، رفرش ریت مانیتور عوض می شه. فقط از طریق این کلید می تونی رفرش ریت رو بفهمی. برای تغییر رفرش ریت باید از API استفاده کنی.

subsub
دوشنبه 19 تیر 1385, 12:16 عصر
خیلی جالبه
انجمن تخصصی وی بی ولی هنوز کسی جواب درست و حسابی نداره

sabair
پنج شنبه 05 مهر 1386, 15:00 عصر
سلام.
به کدی برای تغییر رزولیشن نیاز دارم که سرعت رفرش مانیتور رو پایین نداره .
وقتی رزولیشن رو تغییر می دم خودش میاد رو 60هرتز .
کدی برای تغییر اون سراغ ندارین ؟
با تشکر.

هیچ کس از شما برنامه نویس نیست که بتواند به این سئوال پاسخ دهد.

subsub
جمعه 06 مهر 1386, 16:02 عصر
هیچ کس از شما برنامه نویس نیست که بتواند به این سئوال پاسخ دهد.

من یادمه که یه جایی کد تغییر رزولوشن بدون تغییر رفرش ریت رو دیدم. اگه پیداش کردم براتون می‌زارم.:چشمک:

Payman62
شنبه 07 مهر 1386, 02:25 صبح
سلام.
در این تابع که برات نوشتم میتونی فرکانس مورد نظرت رو هم هنگام تغییر رزولیشن وارد کنی.
رزولیشن مورد نظرتو به صورت طول و عرض به همراه کیفیت رنگ ها و فرکانس مورد نظرت بده.

Private Declare Function EnumDisplaySettingsA Lib "user32.dll" (ByVal lpszDeviceName As String, ByVal iModeNum As Long, lpDevMode As DEVMODE) As Long
Private Declare Function ChangeDisplaySettingsA Lib "user32.dll" (lpDevMode As Any, ByVal dwFlags As Long) As Long
Private Const ENUM_CURRENT_SETTINGS = -1
Private Const CDS_UPDATEREGISTRY = &H1
Private Const CCHDEVICENAME = 32
Private Const CCHFORMNAME = 32
Private Type DEVMODE
dmDeviceName As String * CCHDEVICENAME
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 * CCHFORMNAME
dmUnusedPadding As Integer
dmBitsPerPel As Long
dmPelsWidth As Long
dmPelsHeight As Long
dmDisplayFlags As Long
dmDisplayFrequency As Long
End Type

Private Sub SetDisplaySetting(intWidth As Integer, intHeight As Integer, bytBitsPerPel As Byte, bytFrequency As Byte)
Dim dvmDisplay As DEVMODE
dvmDisplay.dmSize = Len(dvmDisplay)
EnumDisplaySettingsA vbNullString, ENUM_CURRENT_SETTINGS, dvmDisplay

dvmDisplay.dmPelsWidth = intWidth
dvmDisplay.dmPelsHeight = intHeight
dvmDisplay.dmBitsPerPel = bytBitsPerPel
dvmDisplay.dmDisplayFrequency = bytFrequency

ChangeDisplaySettingsA dvmDisplay, CDS_UPDATEREGISTRY
End Sub

Private Sub Form_Load()
SetDisplaySetting 1024, 768, 32, 85
End Sub

sabair
شنبه 07 مهر 1386, 02:34 صبح
بابا واقعا شما برنامه نویس هستید خیلی متشکرم از شما

Payman62
یک شنبه 08 مهر 1386, 01:53 صبح
بابا واقعا شما برنامه نویس هستید خیلی متشکرم از شما
سلام.
خواهش میکنم.

بعضی ها عادت دارن جوابشونو که میگیرن دیگه پشتشونم نگاه نمیکنن. یه جوابی چیزی که بفهمیم کد جواب داده که دفعه بد دلگرم بشیم برای پاسخ دادن. حالا تشکر بماند.