warezoogle3
Новичок
- Сообщения
- 73
- Репутация
- 1
Добрый день!
Понадобилось установить около 300 шрифтов на рабочие машины.
Раньше разок тоже понадобилось и Уважаемый Garrett предоставил мне вот это
,за что огромное спасибо ему,но...
этот код отлично работает,есть требуемых установить шрифтов очень немного,а при 300 штук работает очень медленно,даже быстрее делать в ручную. А этот скрипт единственный (который у меня есть),который не требует перезагрузки операционной системы,а это для меня очень важно.
Кстати,я немного изменил скрипт и получилось вот так
Но дело в том,моя добавленная часть,то есть
не работает (это часть кода должна проверять,есть ли окно,говорящее,что шрифт уже установлен, нажать кнопку да,чтобы заменить/замещать его).
То есть у меня сразу две проблемы/задачи:
1.Медленно работающий код
2.Вообще не работающая часть кода
Помогите пожалуйста,очень прошу!
Заранее огромное спасибо!
:beer: :IL_AutoIt_1:
Понадобилось установить около 300 шрифтов на рабочие машины.
Раньше разок тоже понадобилось и Уважаемый Garrett предоставил мне вот это
Код:
Const $FONTS = 0x14
$oShell = ObjCreate("Shell.Application")
$oWinFonts = $oShell.Namespace($FONTS)
; шрифты должны быть в директории скрипта
$sFirstFile = FileFindFirstFile("*.*")
If $sFirstFile = -1 Then
Exit
EndIf
While 1
Local $sFile = FileFindNextFile($sFirstFile)
If @error Then ExitLoop
Switch StringRight($sFile, 3)
Case 'ttf', 'otf', 'pfm', 'fon'
$sWinFontsPath = @WindowsDir & '\Fonts\' & $sFile
$sLocFontsPath = @ScriptDir & '\' & $sFile
If NOT FileExists($sWinFontsPath) Then
$oWinFonts.CopyHere($sLocFontsPath)
Else
MsgBox(262144, $sFile, 'Файл уже установлен', 1)
EndIf
EndSwitch
WEnd
этот код отлично работает,есть требуемых установить шрифтов очень немного,а при 300 штук работает очень медленно,даже быстрее делать в ручную. А этот скрипт единственный (который у меня есть),который не требует перезагрузки операционной системы,а это для меня очень важно.
Кстати,я немного изменил скрипт и получилось вот так
Код:
Const $FONTS = 0x14
$oShell = ObjCreate("Shell.Application")
$oWinFonts = $oShell.Namespace($FONTS)
; Fonts must be in the same directory
$sFirstFile = FileFindFirstFile("*.*")
If $sFirstFile = -1 Then
Exit
EndIf
While 1
Local $sFile = FileFindNextFile($sFirstFile)
If @error Then ExitLoop
Switch StringRight($sFile, 3)
Case 'ttf', 'otf', 'pfm', 'fon'
$sWinFontsPath = @WindowsDir & '\Fonts\' & $sFile
$sLocFontsPath = @ScriptDir & '\' & $sFile
If Not FileExists($sWinFontsPath) Then
$oWinFonts.CopyHere($sLocFontsPath)
$FontTitle = "Install Font"
If WinExists("$FontTitle") Then
WinActivate($FontTitle)
WinWaitActive($FontTitle)
ControlClick($FontTitle, "", "Button1")
EndIf
Else
MsgBox(262144, $sFile, 'The font is already installed', 1)
EndIf
EndSwitch
WEnd
Но дело в том,моя добавленная часть,то есть
Код:
$FontTitle = "Install Font"
If WinExists("$FontTitle") Then
WinActivate($FontTitle)
WinWaitActive($FontTitle)
ControlClick($FontTitle, "", "Button1")
не работает (это часть кода должна проверять,есть ли окно,говорящее,что шрифт уже установлен, нажать кнопку да,чтобы заменить/замещать его).
То есть у меня сразу две проблемы/задачи:
1.Медленно работающий код
2.Вообще не работающая часть кода
Помогите пожалуйста,очень прошу!
Заранее огромное спасибо!
:beer: :IL_AutoIt_1: