نمایش نتایج 1 تا 13 از 13

نام تاپیک: تغییر resolution مانیتور در ابتدای برنامه

  1. #1

    تغییر resolution مانیتور در ابتدای برنامه

    سلام دوستان
    من می خوام کدی بنویسم که اول برنامه دقت صفحه نمایش رو 600 در 800 کنه .کسی میتونه به من کمک کنه؟
    متشکرم

  2. #2
    کاربر دائمی آواتار Beyondsoft
    تاریخ عضویت
    تیر 1384
    محل زندگی
    ایران
    پست
    336
    این کار کاملا اشتباه است!
    و اصلا شما حق این کار رو نداری مگن برای یک برنامه Multy media یا یک بازی بخوای

  3. #3
    کاربر دائمی
    تاریخ عضویت
    تیر 1384
    محل زندگی
    ایران-قم
    پست
    457
    حالا اگه کسی خواست یه برنامه ی مولتی مدیا یا یه بازی بسازه چی؟

  4. #4
    سلام
    تابع ChangeDisplaySettings
    ممنون علی

  5. #5
    کاربر دائمی آواتار Peyman_Ranjbar
    تاریخ عضویت
    مرداد 1383
    محل زندگی
    شیراز
    پست
    608
    نقل قول نوشته شده توسط Beyondsoft
    این کار کاملا اشتباه است!
    و اصلا شما حق این کار رو نداری مگن برای یک برنامه Multy media یا یک بازی بخوای
    ببخشید کی این حق رو از ما گرفته|؟؟؟

  6. #6
    کاربر دائمی آواتار Beyondsoft
    تاریخ عضویت
    تیر 1384
    محل زندگی
    ایران
    پست
    336
    راجع به این که این حق را کی از شما گرفته باید بگم که کسی این کار رو نکرده است. به هر حال در هر جا یکسری استاندارد وجود دارد. به هر حال یک سری چارچوب کاری است.
    شما می توانید پشت صفحه ی برنامتون رو زرد کنید با فونت سفید !
    ولی آیا این مناسبه؟ و آیا این رعایت چارچوب کاری است؟

  7. #7
    اگه بعدا رزولوشن به حالت اوش برگردونده بشه فکر نمی کنم چیزی هیچ استانداردی رو نقض کنه اما ایده ال ترین روش اینه که شما برنامتون رو طوری بنویسید که خودش رو با رزولوشنی که کاربر انتخاب کرده تطبیق بده و با رزولوشن های مختلف انعطاف پذیر باشه.
    اینو میگن User Friendly !!!!

  8. #8
    کاربر دائمی آواتار Beyondsoft
    تاریخ عضویت
    تیر 1384
    محل زندگی
    ایران
    پست
    336
    ابته این درسته که برنامه باید طوری نوشته بشود که انعطاف پذیر باشه ولی این user friendly نیست.
    به این می گن سازگاری

  9. #9
    اینجا فقط سر به سر هم می زارید که چی بشه یک کمی هم از اون 2 گووله هاتون کار بکشید
    آقا اینم کد تغییر وضوح به 800 در 600:

    یه کلاس می سازی این کد رو قرار می دی اونجا

    Imports System
    Imports System.Windows.Forms
    Imports System.Runtime.InteropServices
    Public Class Resolution

    <StructLayout(LayoutKind.Sequential)> _
    Public Structure DEVMODE1
    <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=32)> _
    Public dmDeviceName As String
    Public dmSpecVersion As Short
    Public dmDriverVersion As Short
    Public dmSize As Short
    Public dmDriverExtra As Short
    Public dmFields As Integer
    Public dmOrientation As Short
    Public dmPaperSize As Short
    Public dmPaperLength As Short
    Public dmPaperWidth As Short
    Public dmScale As Short
    Public dmCopies As Short
    Public dmDefaultSource As Short
    Public dmPrintQuality As Short
    Public dmColor As Short
    Public dmDuplex As Short
    Public dmYResolution As Short
    Public dmTTOption As Short
    Public dmCollate As Short
    <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=32)> _
    Public dmFormName As String
    Public dmLogPixels As Short
    Public dmBitsPerPel As Short
    Public dmPelsWidth As Integer
    Public dmPelsHeight As Integer
    Public dmDisplayFlags As Integer
    Public dmDisplayFrequency As Integer
    Public dmICMMethod As Integer
    Public dmICMIntent As Integer
    Public dmMediaType As Integer
    Public dmDitherType As Integer
    Public dmReserved1 As Integer
    Public dmReserved2 As Integer
    Public dmPanningWidth As Integer
    Public dmPanningHeight As Integer
    End Structure

    Class User_32

    <DllImport("user32.dll")> _
    Public Shared Function EnumDisplaySettings(ByVal deviceName As String, ByVal modeNum As Integer, ByRef devMode As DEVMODE1) As Integer
    End Function

    <DllImport("user32.dll")> _
    Public Shared Function ChangeDisplaySettings(ByRef devMode As DEVMODE1, ByVal flags As Integer) As Integer
    End Function
    Public Const ENUM_CURRENT_SETTINGS As Integer = -1
    Public Const CDS_UPDATEREGISTRY As Integer = 1
    Public Const CDS_TEST As Integer = 2
    Public Const DISP_CHANGE_SUCCESSFUL As Integer = 0
    Public Const DISP_CHANGE_RESTART As Integer = 1
    Public Const DISP_CHANGE_FAILED As Integer = -1
    End Class

    Class CResolution

    Public Sub New(ByVal a As Integer, ByVal b As Integer)
    Dim screen As Screen = screen.PrimaryScreen
    Dim iWidth As Integer = a
    Dim iHeight As Integer = b
    Dim dm As DEVMODE1 = New DEVMODE1
    dm.dmDeviceName = New String(New Char(32) {})
    dm.dmFormName = New String(New Char(32) {})
    dm.dmSize = CType(Marshal.SizeOf(dm), Short)
    If Not (0 = User_32.EnumDisplaySettings(Nothing, User_32.ENUM_CURRENT_SETTINGS, dm)) Then
    dm.dmPelsWidth = iWidth
    dm.dmPelsHeight = iHeight
    Dim iRet As Integer = User_32.ChangeDisplaySettings(dm, User_32.CDS_TEST)
    If iRet = User_32.DISP_CHANGE_FAILED Then
    MessageBox.Show("Unable to process your request")
    MessageBox.Show("Description: Unable To Process Your Request. Sorry For This Inconvenience.", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information)
    Else
    iRet = User_32.ChangeDisplaySettings(dm, User_32.CDS_UPDATEREGISTRY)
    Select Case iRet
    Case User_32.DISP_CHANGE_SUCCESSFUL

    Case User_32.DISP_CHANGE_RESTART

    MessageBox.Show("Description: You Need To Reboot For The Change To Happen." & Microsoft.VisualBasic.Chr(10) & " If You Feel Any Problem After Rebooting Your Machine" & Microsoft.VisualBasic.Chr(10) & "Then Try To Change Resolution In Safe Mode.", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information)
    Case Else
    MessageBox.Show("Description: Failed To Change The Resolution.", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information)

    End Select
    End If
    End If
    End Sub
    End Class
    End Class


    بعدش کد زیر رو هر جا که می خوای برنامه ات وضوح نمایش رو تغییر بده قرار می دی


    Dim ChangeRes As Resolution.CResolution
    Dim XRes As Short = System.Windows.Forms.Screen.PrimaryScreen.Bounds.W idth
    Dim YRes As Short = System.Windows.Forms.Screen.PrimaryScreen.Bounds.H eight

    ChangeRes = New Resolution.CResolution(800, 600)


    برای اینکه وضوح نمایش رو به حالت اول برگردونی هم می تونی از کد زیر استفاده کنی


    'در زمان خروج از برنامه برنامه
    ChangeRes = New Resolution.CResolution(XRes, YRes)


    توجه به جای ChangeRes = New Resolution.CResolution(800, 600) هر وضوح تصویر استانداردی می تونید قرار بدهید

  10. #10
    سلام
    اگه کاربر در هنگام که برنامه run هست resolution را عوض کند چیکار باید کرد؟آیا راهی هست که جلوی این کار گرفته شود؟

    باتشکر

  11. #11
    کاربر دائمی آواتار leilav_1984
    تاریخ عضویت
    مرداد 1384
    محل زندگی
    تهران
    پست
    307
    نقل قول نوشته شده توسط Peyman_Ranjbar مشاهده تاپیک
    ببخشید کی این حق رو از ما گرفته|؟؟؟
    خوب شاید user بخت برگشته یه برنامه در حال اجرای دیگه هم داشته باشه که با Resolutionی که ما میدیم جور نباشه
    یا اصلا VGAش اون resolution رو نده

  12. #12

    نقل قول: تغییر resolution مانیتور در ابتدای برنامه

    استاد عزیز آیا میتونی سورس این کد رو با VB.NET بزاری تو همین تاپیک ممنون میشم

  13. #13
    کاربر تازه وارد آواتار eli_joon
    تاریخ عضویت
    شهریور 1387
    محل زندگی
    پاریس کوچولو
    پست
    56

    نقل قول: تغییر resolution مانیتور در ابتدای برنامه

    سلام دوست عزیز .
    منم به سورس این کد نیاز دارم .
    ممنون

تاپیک های مشابه

  1. تغییر resolution-خیلی خیلی فوری
    نوشته شده توسط ayani2002 در بخش ASP.NET Web Forms
    پاسخ: 2
    آخرین پست: شنبه 13 بهمن 1386, 13:20 عصر
  2. تو دات نت نمی تونم resolution رو تغییر بدم
    نوشته شده توسط bashir_nashi در بخش VB.NET
    پاسخ: 2
    آخرین پست: شنبه 12 دی 1383, 15:42 عصر
  3. تغییر Resolution صفحه نمایش
    نوشته شده توسط SReza1 در بخش مباحث عمومی دلفی و پاسکال
    پاسخ: 5
    آخرین پست: سه شنبه 08 مهر 1382, 22:27 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •