Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Возможно ли в свойствах ярлыка поменять размер шрифта посредством cmd/vbs?

Ответить
Настройки темы
CMD/BAT - [решено] Возможно ли в свойствах ярлыка поменять размер шрифта посредством cmd/vbs?

Аватара для Anton04

Ветеран


Сообщения: 2075
Благодарности: 393


Конфигурация

Профиль | Отправить PM | Цитировать


Возможно ли в свойствах ярлыка поменять размер шрифта посредством cmd/vbs?

Например после установки "Far manager" появляется ярлык на рабочем столе, но по умолчанию там стоит 20 размер шрифта, а хочется (для примера) 28.

Интересует, в основном, решение на cmd, но на vbs то же пойдёт.

-------
Слабый всю жизнь идёт лёгкой дорогой, черта сильного выбрать трудный путь.
Будь осторожен в своих желаниях, ибо они иногда сбываются.


Отправлено: 12:57, 02-08-2011

 

Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата Anton04:
хочу "Точечные шрифты" и размером 10х18. »
Anton04, посмотрел. Примерно так:
читать дальше »
Код: Выделить весь код
Option Explicit

Const SSFMOpenReadWrite = 1

Const strConsoleDataBlockSignature = "CC000000020000A0"
Const lngFontSizePosition          = 24


Dim objFSO
Dim objSpeechFileStream

Dim strLnkFileName
Dim lngConsoleDataBlockPosition

Dim arrContent

Dim byteValue
Dim strFontName
Dim i

'strLnkFileName = "E:\Песочница\0063\Far2.lnk"
strLnkFileName = WScript.Arguments.Item(0)

Set objFSO                = WScript.CreateObject("Scripting.FileSystemObject")
Set objSpeechFileStream   = WScript.CreateObject("SAPI.spFileStream")

With objFSO
	If .FileExists(strLnkFileName) Then
		If UCase(.GetExtensionName(strLnkFileName)) = UCase("lnk") Then
			.GetFile(strLnkFileName).Copy strLnkFileName & ".bak", True
			
			With objSpeechFileStream
				.Open strLnkFileName, SSFMOpenReadWrite
				.Read arrContent, objFSO.GetFile(strLnkFileName).Size
				
				lngConsoleDataBlockPosition = InStr(ConvertByteArray2HexString(arrContent), strConsoleDataBlockSignature)
				
				If lngConsoleDataBlockPosition <> 0 Then
					.Seek lngConsoleDataBlockPosition \ 2 + Len(strConsoleDataBlockSignature) / 2 + lngFontSizePosition
					
					' FontSize: 10x18
					.Write CByte(&H0A)
					.Write CByte(&H00)
					.Write CByte(&H12)
					.Write CByte(&H00)
					
					' FontFamily: FF_MODERN
					.Write CByte(&H30)
					.Write CByte(&H00)
					.Write CByte(&H00)
					.Write CByte(&H00)
					
					' FontWeight: 400
					.Write CByte(&H90)
					.Write CByte(&H01)
					.Write CByte(&H00)
					.Write CByte(&H00)
					
					' Face Name: Terminal
					strFontName = Left("Terminal" & String(32, Chr(0)), 32)
					
					For i = 1 To Len(strFontName)
						.Write Asc(Mid(strFontName, i, 1))
					Next
				Else
					WScript.Echo "Can't find ConsoleDataBlock section in [" & strLnkFileName & "]"
				End If
				
				.Close()
			End With
		Else
			WScript.Echo "File [" & strLnkFileName & "] is not *.lnk file"
		End If
	Else
		WScript.Echo "File [" & strLnkFileName & "] not found"
	End If
End With

Set objSpeechFileStream   = Nothing
Set objFSO                = Nothing

WScript.Quit 0
'=============================================================================

'=============================================================================
Function ConvertByteArray2HexString(arrByteArray)
	Dim i
	Dim strValue
	
	strValue = ""
	
	For i = 1 To LenB(arrByteArray)
		strValue = strValue & Right("00" & Hex(AscB(MidB(arrByteArray, i, 1))), 2)
	Next
	
	ConvertByteArray2HexString = strValue
End Function
'=============================================================================
Это сообщение посчитали полезным следующие участники:

Отправлено: 09:09, 03-09-2011 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Anton04

Ветеран


Сообщения: 2075
Благодарности: 393

Профиль | Отправить PM | Цитировать


Iska,

Так всё хорошо, но вот если неизвестно какой размер и тип шрифта установлен, а известно какой хочется чтоб был, как тогда быть!?

-------
Слабый всю жизнь идёт лёгкой дорогой, черта сильного выбрать трудный путь.
Будь осторожен в своих желаниях, ибо они иногда сбываются.


Отправлено: 10:49, 05-09-2011 | #12


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата Anton04:
Так всё хорошо, но вот если неизвестно какой размер и тип шрифта установлен, а известно какой хочется чтоб был, как тогда быть!? »
Поясните Ваш вопрос. Я не понял.

Отправлено: 11:05, 05-09-2011 | #13


Аватара для Anton04

Ветеран


Сообщения: 2075
Благодарности: 393

Профиль | Отправить PM | Цитировать


Iska,

Ну вот данный скрипт мы натравливали на ярлык фара после его установки, где было заранее известно какой размер шрифта установлен (в нашем примере это 24). А теперь представим ситуацию когда размер этого шрифта (да и тип Consolas, Lucida Console или Точечный шрифт) неизвестен, т.е. какой размер или тип шрифта неясен (ну изменили на какой-то и всё тут). А вот какой поставить хочется мы знаем.
Можно же реализовать это в скрипте?

P.S. Конечно универсальней было бы, если бы все параметры прописывались в командной строке при запуске скрипта, ну типа: my.vbs 10х18 "Точечный шрифт"%ALLUSERSPROFILE%\Рабочий стол\FAR manager.lnk" или my.vbs 28 "Lucida Console"%ALLUSERSPROFILE%\Рабочий стол\FAR manager.lnk" ну и т.п.

-------
Слабый всю жизнь идёт лёгкой дорогой, черта сильного выбрать трудный путь.
Будь осторожен в своих желаниях, ибо они иногда сбываются.


Последний раз редактировалось Anton04, 05-09-2011 в 12:08.


Отправлено: 11:21, 05-09-2011 | #14


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Anton04, так и есть. Какой размер хотите — такой и ставьте, какой шрифт хотите — такой и пишите. В роли «точечного шрифта» в Windows выступает шрифт Terminal. Есть определённые ограничения на использование шрифтов для консольных приложений, но не более того.

Цитата Anton04:
Ну вот данный скрипт мы натравливали на ярлык фара после его установки, где было заранее известно какой размер шрифта установлен (в нашем примере это 24).
Без разницы, какой до этого был задан шрифт и размер в ярлыке.
Цитата Anton04:
А вот какой поставить хочется мы знаем. Можно же реализовать это в скрипте? »
Именно это и было выше сделано. Что не так?

Отправлено: 13:09, 05-09-2011 | #15


Аватара для Anton04

Ветеран


Сообщения: 2075
Благодарности: 393

Профиль | Отправить PM | Цитировать


Iska,

А всё увидел, не заметил Terminal...

Но всё же по поводу универсальности
Цитата Anton04:
P.S. Конечно универсальней было бы, если бы все параметры прописывались в командной строке при запуске скрипта, ну типа: my.vbs 10х18 "Точечный шрифт"%ALLUSERSPROFILE%\Рабочий стол\FAR manager.lnk" или my.vbs 28 "Lucida Console"%ALLUSERSPROFILE%\Рабочий стол\FAR manager.lnk" ну и т.п. »
может реализуем!?

-------
Слабый всю жизнь идёт лёгкой дорогой, черта сильного выбрать трудный путь.
Будь осторожен в своих желаниях, ибо они иногда сбываются.


Отправлено: 13:24, 05-09-2011 | #16


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата Anton04:
может реализуем!? »
Конечно, можно. А смысл? Сколько нынче осталось консольных приложений, для которых нужны ярлыки с уникальными настройками шрифтов? Навскидку я кроме Far Manager'а ничего не припомню, где бы такое реально требовалось.

Что скажете?

Отправлено: 14:21, 05-09-2011 | #17


Аватара для Anton04

Ветеран


Сообщения: 2075
Благодарности: 393

Профиль | Отправить PM | Цитировать


Цитата Iska:
Конечно, можно. А смысл? Сколько нынче осталось консольных приложений, для которых нужны ярлыки с уникальными настройками шрифтов? »
Это то конечно да их действительно не много, просто хотелось универсальности вдруг где ещё пригодится. Запас карман не тянет...

-------
Слабый всю жизнь идёт лёгкой дорогой, черта сильного выбрать трудный путь.
Будь осторожен в своих желаниях, ибо они иногда сбываются.


Отправлено: 14:50, 05-09-2011 | #18


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Если делать такой вариант — нужно будет предусмотреть обработку аргументов, включая требование непротиворечивости, корректности, достаточности и т.п. Т.е., уметь обрабатывать все возможные ошибочные ситуации с аргументами. Размер скрипта вырастет втрое.

Другое дело, если, допустим, взяться и нарисовать компонент (хотя бы и *.wsc), который будет всем этим заниматься, отслеживать и обрабатывать — тогда другое дело. Мне вот, допустим, хотелось бы внедрять в ярлык Far Manager'а ту палитру цветов, которая была характерна для Windows 9x (вместо нынешней), ибо править палитру цветов самим редактором ярлыков — это натуральный мазохизм.
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:45, 05-09-2011 | #19


Аватара для Anton04

Ветеран


Сообщения: 2075
Благодарности: 393

Профиль | Отправить PM | Цитировать


Цитата Iska:
Если делать такой вариант — нужно будет предусмотреть обработку аргументов, включая требование непротиворечивости, корректности, достаточности и т.п. Т.е., уметь обрабатывать все возможные ошибочные ситуации с аргументами. Размер скрипта вырастет втрое. »
Всё понял, не оправдано и не перспективно... Ещё раз спасибо Iska

Тему закрываю....

-------
Слабый всю жизнь идёт лёгкой дорогой, черта сильного выбрать трудный путь.
Будь осторожен в своих желаниях, ибо они иногда сбываются.


Отправлено: 13:50, 06-09-2011 | #20



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Возможно ли в свойствах ярлыка поменять размер шрифта посредством cmd/vbs?

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Интерфейс - [решено] Размер шрифта в CHM-справке Belomor Программное обеспечение Windows 4 04-09-2011 19:46
CMD/BAT - [решено] Как создать ярлык и поменять его иконку или поменять иконку уже существующего ярлыка Centrinar Скриптовые языки администрирования Windows 6 04-09-2011 10:56
Интерфейс - Размер шрифта , помогите hutnet2 Microsoft Windows 2000/XP 2 06-07-2010 13:41
Интерфейс - [решено] найти объект в свойствах ярлыка поместить в контекстное меню emergency Microsoft Windows 2000/XP 5 27-10-2008 23:02
Изменение шрифта ярлыка на десктопе Koddy Microsoft Windows 2000/XP 11 10-03-2005 07:52




 
Переход