Ципихович Эндрю 1508 / 478 / 56 Регистрация: 10.04.2009 Сообщений: 8,008 |
||||
1 |
||||
Как программно узнать разрешение экрана15.01.2012, 15:25. Показов 22048. Ответов 26 Метки getdevicecaps (Все метки)
Здравствуйте
Всё условно, реальный размер экрана монитора узнать можно?, у меня отображает MsgBox разрешение 1024*768, размер 769*529
0 |
Заблокирован |
||||
16.01.2012, 07:39 |
2 |
|||
Не по теме: Ципихович Эндрю, а вес монитора Вас не интересует:D Добавлено через 36 минут
Существует вот такой подход к решению,
3 |
1702 / 189 / 19 Регистрация: 20.11.2011 Сообщений: 281 |
|
16.01.2012, 10:41 |
3 |
Для получения подобной инфы, мне кажется, нужна база по производителям, маркам и т.д. и т.п. Привет, Володь. Все гораздо проще. Рулетки будет достаточно:-) Производители часто неверно указывают параметры своих изделий.
0 |
6644 / 1511 / 169 Регистрация: 09.01.2010 Сообщений: 4,298 |
|
16.01.2012, 17:03 |
4 |
Производители часто неверно указывают параметры своих изделий как на коробках 0,25 Вт акустики пишут 300 Вт !!!
0 |
1508 / 478 / 56 Регистрация: 10.04.2009 Сообщений: 8,008 |
|
16.01.2012, 20:01 [ТС] |
5 |
270*203 — неутешительно, против
А реально размер монитора — 370*305
0 |
Dragokas |
16.01.2012, 20:12
|
Не по теме: AIDA64 как-то мАгёт (раздел монитор).
0 |
1508 / 478 / 56 Регистрация: 10.04.2009 Сообщений: 8,008 |
|
16.01.2012, 20:20 [ТС] |
7 |
может я не с того конца зашёл, тема такая есть на работе монитор 24″, широкоэкранный, сделаешь всё там, про формы говорю, делаю большими, домой придёшь, на 19″ не очень удобно. Вот программно инициализацию активацию формы хочу править- как лучше поступить?
0 |
gaw |
16.01.2012, 20:53
|
Не по теме:
как лучше поступить на работе — работать, а формы — дома, ну если конечно это Ваша работа — формы делать, тогда где то поменять монитор — самое то
0 |
Заблокирован |
|
16.01.2012, 20:58 |
9 |
Вот программно инициализацию активацию формы хочу править- как лучше поступить? Не с размеров экрана, а с разрешения надо начинать! ‘Get the Screen size in pixels for X & Y
0 |
1508 / 478 / 56 Регистрация: 10.04.2009 Сообщений: 8,008 |
|
16.01.2012, 21:12 [ТС] |
10 |
разрешение 1024*768 и что это даёт?
0 |
1508 / 478 / 56 Регистрация: 10.04.2009 Сообщений: 8,008 |
|
18.01.2012, 05:17 [ТС] |
11 |
апну тему
и что это даёт?
0 |
Заблокирован |
||||
18.01.2012, 10:30 |
12 |
|||
реальный размер экрана монитора узнать можно?
AIDA64 как-то мАгёт (раздел монитор). Нашел полный список констант для GetDeviceCaps — всё оказалось до смешного просто
2 |
6169 / 934 / 309 Регистрация: 25.02.2011 Сообщений: 1,359 Записей в блоге: 1 |
|
18.01.2012, 11:27 |
13 |
Нашел полный список констант для GetDeviceCaps — всё оказалось до смешного просто У меня практически не врет, измерил линейкой, расхождение в пару милиметров.
0 |
gaw 6644 / 1511 / 169 Регистрация: 09.01.2010 Сообщений: 4,298 |
||||
18.01.2012, 11:45 |
14 |
|||
2 |
Заблокирован |
|
18.01.2012, 14:49 |
15 |
Me.Width = k * Screen.Width Идея понятна, но в VBA нет объекта Screen,
1 |
6644 / 1511 / 169 Регистрация: 09.01.2010 Сообщений: 4,298 |
|
18.01.2012, 16:38 |
16 |
Идея понятна, но в VBA нет объекта Screen виноват, — исправлюсь ==> это Ципихович Ендрю наверное онлайн гипнозом обладает
0 |
Ципихович Эндрю 1508 / 478 / 56 Регистрация: 10.04.2009 Сообщений: 8,008 |
||||
18.01.2012, 19:11 [ТС] |
17 |
|||
Только не понятно, зачем нужен именно размер в миллиметрах, когда нужно ориентироваться на разрешение экрана. так я и спрашиваю как? знаю разрешение, как далее считать?
MsgBox GetDeviceCaps(GetDC(0), 4) & » X » & GetDeviceCaps(GetDC(0), 6) & » mm» выдаёт 380*285 против
А реально размер монитора — 370*305 ну более мене похоже на правду, замерю завтра у других Добавлено через 5 минут
я имею ввиду — константы для общего развития?
0 |
126 / 1 / 1 Регистрация: 15.11.2011 Сообщений: 80 |
|
01.01.2013, 22:45 |
18 |
Столкнулась с такой же проблемой как и автор темы. Но так и не вижу решения.
0 |
Казанский 15136 / 6410 / 1730 Регистрация: 24.09.2011 Сообщений: 9,999 |
||||
01.01.2013, 23:40 |
19 |
|||
Не хотите «user32» (почему?!) — используйте WMI (это медленнее)
Утянуто с http://blogs.technet.com/b/hey… puter.aspx и слегка переработано
2 |
126 / 1 / 1 Регистрация: 15.11.2011 Сообщений: 80 |
|
02.01.2013, 00:17 |
20 |
Не хотите «user32» (почему?!) — используйте WMI (это медленнее)[ на 64-битной системе все эти библиотеки не работают.
0 |
You may develop an Excel application that needs to adjust itself depending on the video resolution of the user. For
example, you might have an application that requires a certain range to show so you’ll need to adjust Excel’s zoom factor.
Here is a way by using GetSystemMetrics API function of windows :
CODE :
Declare Function GetSystemMetrics32 Lib "User32" Alias "GetSystemMetrics" (ByVal nIndex As Long) As Long Sub DisplayScreenResolution() Dim lngWidth As Long Dim lngHeight As Long lngWidth = GetSystemMetrics32(0) ' width in points lngHeight = GetSystemMetrics32(1) ' height in points MsgBox Format(lngWidth, "#,##0") & " x " & Format(lngHeight, "#,##0"), vbInformation, "Screen Resolution (width x height)" End Sub
What is Display Resolution?
The number of Pixels displayed in your Monitor is called Screen Resolution.
It is represented as how many Pixels displayed in Screen height x Screen width. To get the screen height and width use these codes as per your programming language. The computer or mobile devices do not have standard screen resolutions.
It varies with every manufacturer and every computer model. So, the developers have to design their application to be compatible with the user’s device resolution limits.
Be it an application developer or a Web developer, everyone have to use any of these codes at some point of time.
1. What is my Screen Resolution? – VBA using Windows API
The VBA code below retrieves screen resolution parameters using 2 different methods, both using the Win api functions.
Option Explicit 'For Method 1 Private Declare Function GetClientRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long Private Declare Function GetDesktopWindow Lib "user32" () As Long Private Type RECT Left As Long Top As Long Right As Long Bottom As Long End Type 'For Method 2 Private Declare Function GetSystemMetrics Lib "user32.dll" (ByVal nIndex As Long) As Long Const SM_CXSCREEN = 0 Const SM_CYSCREEN = 1 Private Sub VBA_Screen_Resolution() 'Method 1 Dim rScreen As RECT GetClientRect CLng(GetDesktopWindow()), rScreen ThisWorkbook.Sheets(1).Cells(1, 1) = "Left" ThisWorkbook.Sheets(1).Cells(2, 1) = "Right" ThisWorkbook.Sheets(1).Cells(3, 1) = "Top" ThisWorkbook.Sheets(1).Cells(4, 1) = "Bottom" ThisWorkbook.Sheets(1).Cells(1, 2) = rScreen.Left ThisWorkbook.Sheets(1).Cells(2, 2) = rScreen.Right ThisWorkbook.Sheets(1).Cells(3, 2) = rScreen.Top ThisWorkbook.Sheets(1).Cells(4, 2) = rScreen.Bottom 'Method 2 MsgBox "Screen Resolution - " & GetSystemMetrics(SM_CXSCREEN) & " x " & GetSystemMetrics(SM_CYSCREEN) End Sub
Note: Function used in method 2 in above example can be used in C Programming to get screen width & height. Include Windows.h and then use the function with same parameters in your C program.
2. Get Display resolution in Javascript
It is easy to get screen width and height with Javascript. You just need to use the ‘Screen’ Object as in below code sample.
var wscr = “Screen Width: “ + screen.width var hscr = “Screen Height: “ + screen.height var awscr = “Screen Width excluding Taskbar: “ + screen.availWidth var ahscr = “Screen Width excluding Taskbar: “ + screen.availHeight
The above can be tested right from your internet browser Firefox, Chrome or IE. To test it in Firefox, press Ctrl + Shift + q, then choose ‘Console’. Type this command ‘console.log (wscr);’ and press enter.
Firefox console will display the screen width.
3. Find Windows Screen Height & Width from Command Prompt
Open command prompt and type this command. Just so simplest of all.
wmic desktopmonitor get screenheight, screenwidth 'Or this command to open the windows screen resolution display settings. rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,3
By now you would be able to answer ‘What is Display resolution’ of your computer using the above free codes. If you require the coding in any specific programming language, please leave us a comment.
Вставь этот код в новый программный модуль (а не в модуль листа или книги, как ты делал это раньше)
Код:
Declare Function GetSystemMetrics Lib «user32.dll» (ByVal nIndex As Long) As Long
Const SM_CXSCREEN = 0, SM_CYSCREEN = 1
Private Sub Workbook_Open()
x = GetSystemMetrics(SM_CXSCREEN)
y = GetSystemMetrics(SM_CYSCREEN)
MsgBox «Разрешение экрана » & x & » * » & y
End Sub
Пиксели и твипы на VBA
https://www.programmersforum.ru/showthread.php?t=208444
Цитата:
вытащил GetDeviceCaps(hDC, HORZRES)=1024, a GetDeviceCaps(hDC, VERTRES)=768[/SIZE]!
Это размеры дисплея?
Цитата:
Но в каких единицах измерения выдаваемые числа?
Цитата:
В каких единицах измерения задаются UserForm1.Top, UserForm1.Left, UserForm1.Height, UserForm1.Width?
Цитата:
Как все эти понятия (пиксели, поинты, твипы и DPI) связаны друг с другом?
Яндекс вам в помощь, в этом вопросе
А нафига вам это всё?
Для вывода формы в нужном месте экрана всё это вроде как не требуется.
Цитата:
дабы закрыть от пользователя нижнее Window’ое меню с кнопкой пуск и вкладку Excel’я с листами
зачем так извращаться?
Полностью скрыть или отобразить панель задач Windows можно через WinAPI
(по сути, это то же самое окно, которому можно послать любую команду),
и делается это совсем несложно:
http://www.cyberforum.ru/vb-net/thread450625.html
How can you access the dimensions of the screen in Visual Basic? I have looked online and it says to use Screen.width and Screen.length, but it doesn’t recognize those properties… any tips?
asked Oct 21, 2011 at 1:46
MonkeyanatorMonkeyanator
1,3482 gold badges14 silver badges29 bronze badges
In VB you can use Screen.Width
and Screen.Height
. They’re not in VBA but you can use an API call instead. Add these declarations:
Public Declare Function GetSystemMetrics Lib "user32.dll" (ByVal index As Long) As Long
Public Const SM_CXSCREEN = 0
Public Const SM_CYSCREEN = 1
Then use like so:
MsgBox GetSystemMetrics(SM_CXSCREEN) & "x" & GetSystemMetrics(SM_CYSCREEN)
answered Oct 21, 2011 at 1:59
7
разрешение экрана и Экселя как соотнести? |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
Вывод разрешения монитора
Разрешение монитора просматривается и редактируется в окне свойств экрана (Пуск ? Настройка ? Панель управления ? Экран ? Параметры). Однако для просмотра разрешения можно написать соответствующий макрос (листинг 3.71). Чтобы определить разрешение монитора, следует использовать функцию Windows API GetSystemMetrics. В качестве единственного параметра она принимает номер системной настройки, значение которой необходимо узнать (в данном случае 0 – это ширина изображения, 1 – высота). Функция GetSystemMetrics возвращает численное значение запрашиваемого параметра.
Листинг 3.71. Разрешение монитора
‘ Объявление API-функции
Declare Function GetSystemMetrics Lib «user32» _
(ByVal nIndex As Long) As Long
‘ Константы, которые передаются в функцию для определения _
горизонтального и вертикального размеров изображения
Const SM_CXSCREEN = 0
Const SM_CYSCREEN = 1
Sub GetMonitorResolution()
Dim lngHorzRes As Long
Dim lngVertRes As Long
‘ Получение ширины и высоты изображения на мониторе
lngHorzRes = GetSystemMetrics(SM_CXSCREEN)
lngVertRes = GetSystemMetrics(SM_CYSCREEN)
‘ Отображение сообщения
MsgBox «Текущее разрешение: » & lngHorzRes & «x» & lngVertRes
End Sub
После того как запущен макрос (в окне выбора макросов он будет называться GetMonitorResolution), на экране отобразится окно, в котором будет показано текущее разрешение монитора.