Что нового

После компиляции не отображается шрифт в GUI на другом компьютере!

SurikenTSD

Новичок
Сообщения
67
Репутация
1
Написал скрипт. Оформил GUI. Скомпилировал, отдал на тест другому человеку. А он мне скрин высылает.
Вероятно такие кубики из-за того, что у него нету шрифта, который я использовал, т.к. у меня все прекрасно отображается, но разве при компиляции не должен нестандартный виндовский шрифт включаться в экзешку?

dc8782a183e6afcb22a3c24fd846c3d7.png
 

asdf8

Скриптер
Сообщения
564
Репутация
152
SurikenTSD [?]
но разве при компиляции не должен нестандартный виндовский шрифт включаться в экзешку?

И слава богу, что не включаются автоматически. Да и с какого перепугу должно включаться?
Вы наверное перепутали с офисным или pdf документом.
 
Автор
S

SurikenTSD

Новичок
Сообщения
67
Репутация
1
Ну а каков тогда выход из ситуации?
Я использовал шрифт, который считаю подходящим и приятным, у других возможных пользователей его нет... Не менять же шрифт на какой-нибудь ариал.
 
Автор
S

SurikenTSD

Новичок
Сообщения
67
Репутация
1
Я правильно сделал?

Код:
#Region
#AutoIt3Wrapper_Res_File_Add=Still Time Cyr.ttf, TTF, Century_Schoolbook
#AutoIt3Wrapper_Res_File_Add=Still Time Cyr.ttf, TTF, Modern_No_20
#AutoIt3Wrapper_Res_File_Add=Still Time Cyr.ttf, TTF, Ravie
#EndRegion

#Region
#AutoIt3Wrapper_UseUpx=n
#AutoIt3Wrapper_Run_After=Utilities\ResHacker.exe -add %out%, %out%, CENSCBK.ttf, TTF, Century_Schoolbook,
#AutoIt3Wrapper_Run_After=Utilities\Upx.exe %out% --best --no-backup --overlay=copy --compress-exports=1 --compress-resources=0 --strip-relocs=1
#AutoIt3Wrapper_UseUpx=n
#AutoIt3Wrapper_Run_After=Utilities\ResHacker.exe -add %out%, %out%, MOD20.ttf, TTF, Modern_No_20,
#AutoIt3Wrapper_Run_After=Utilities\Upx.exe %out% --best --no-backup --overlay=copy --compress-exports=1 --compress-resources=0 --strip-relocs=1
#AutoIt3Wrapper_UseUpx=n
#AutoIt3Wrapper_Run_After=Utilities\ResHacker.exe -add %out%, %out%, ravie.ttf, TTF, Ravie,
#AutoIt3Wrapper_Run_After=Utilities\Upx.exe %out% --best --no-backup --overlay=copy --compress-exports=1 --compress-resources=0 --strip-relocs=1
#EndRegion

#Region ### START Koda GUI section ### Form=D:\Files\AutoIt3\TSO\MainFrame.kxf
$MainFrame = GUICreate("The Settlers Online SR Bot", 615, 416, 192, 148)
$hInstance = _WinAPI_GetModuleHandle(0)
_LoadResourceFont($hInstance, "TTF", "Ravie")
GUISetFont(8, 400, 0, "Ravie")
$TSOSRLabel = GUICtrlCreateLabel("The Settlers Online SR Bot", 0, 0, 618, 50, BitOR($SS_CENTER,$SS_CENTERIMAGE,$WS_BORDER))
GUICtrlSetFont(-1, 16, 400, 0, "Ravie")
$Tab = GUICtrlCreateTab(0, 56, 618, 369, -1, $TCS_EX_FLATSEPARATORS)
$TabSheet1 = GUICtrlCreateTabItem("Main")
$GGInfo = GUICtrlCreateButton("Сбор данных", 12, 89, 89, 41)
$hInstance = _WinAPI_GetModuleHandle(0)
_LoadResourceFont($hInstance, "TTF", "Modern_No_20")
GUICtrlSetFont(-1, 8, 800, 0, "Modern No. 20")
$TabSheet2 = GUICtrlCreateTabItem("Buffs")
GUICtrlSetState(-1,$GUI_SHOW)
$Group1 = GUICtrlCreateGroup("Бафлист", 13, 93, 129, 313)
$hInstance = _WinAPI_GetModuleHandle(0)
_LoadResourceFont($hInstance, "TTF", "Century_Schoolbook")
GUICtrlSetFont(-1, 10, 400, 2, "Century Schoolbook")
$S1BuffList = GUICtrlCreateButton("Сектор 1", 21, 117, 113, 25)
GUICtrlSetFont(-1, 10, 800, 0, "Modern No. 20")
$S2BuffList = GUICtrlCreateButton("Сектор 2", 21, 149, 113, 25)
GUICtrlSetFont(-1, 10, 800, 0, "Modern No. 20")
$S3BuffList = GUICtrlCreateButton("Сектор 3", 21, 181, 113, 25)
GUICtrlSetFont(-1, 10, 800, 0, "Modern No. 20")
$S4BuffList = GUICtrlCreateButton("Сектор 4", 21, 213, 113, 25)
GUICtrlSetFont(-1, 10, 800, 0, "Modern No. 20")
$S5BuffList = GUICtrlCreateButton("Сектор 5", 21, 245, 113, 25)
GUICtrlSetFont(-1, 10, 800, 0, "Modern No. 20")
$S6BuffList = GUICtrlCreateButton("Сектор 6", 21, 277, 113, 25)
GUICtrlSetFont(-1, 10, 800, 0, "Modern No. 20")
$S7BuffList = GUICtrlCreateButton("Сектор 7", 21, 309, 113, 25)
GUICtrlSetFont(-1, 10, 800, 0, "Modern No. 20")
$S8BuffList = GUICtrlCreateButton("Сектор 8", 21, 341, 113, 25)
GUICtrlSetFont(-1, 10, 800, 0, "Modern No. 20")
$S9BuffList = GUICtrlCreateButton("Сектор 9", 21, 373, 113, 25)
GUICtrlSetFont(-1, 10, 800, 0, "Modern No. 20")
GUICtrlCreateGroup("", -99, -99, 1, 1)
$StartAutoBuff = GUICtrlCreateButton("Автобаф", 397, 341, 193, 57)
GUICtrlSetFont(-1, 14, 800, 0, "Modern No. 20")
GUICtrlCreateTabItem("")
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

Func _LoadResourceFont($hInstance, $sResType, $sResName, $iResLanguage = 0)

    Local $hInfo, $hData, $pData, $iSize, $hFont

    If $iResLanguage Then
        $hInfo = _WinAPI_FindResourceEx($hInstance, $sResType, $sResName, $iResLanguage)
    Else
        $hInfo = _WinAPI_FindResource($hInstance, $sResType, $sResName)
    EndIf
    $hData = _WinAPI_LoadResource($hInstance, $hInfo)
    $iSize = _WinAPI_SizeOfResource($hInstance, $hInfo)
    $pData = _WinAPI_LockResource($hData)
    If @error Then
        Return SetError(1, 0, 0)
    EndIf
    $hFont = _WinAPI_AddFontMemResourceEx($pData, $iSize)
    If @error Then
        Return SetError(1, 0, 0)
    EndIf
    Return $hFont
EndFunc


Теперь после компиляции все будет тип-топ?
 

asdf8

Скриптер
Сообщения
564
Репутация
152
SurikenTSD [?]
Теперь после компиляции все будет тип-топ?

Теперь скрипт даже не скомпилируется.
Можно попробовать так :
Код:
#AutoIt3Wrapper_Res_File_Add=C:\WINDOWS\Fonts\CENSCBK.ttf, TTF, Century_Schoolbook
#AutoIt3Wrapper_Res_File_Add=C:\WINDOWS\Fonts\Still MOD20.ttf, TTF, Modern_No_20
#AutoIt3Wrapper_Res_File_Add=C:\WINDOWS\Fonts\ravie.ttf, TTF, Ravie

#Include <StaticConstants.au3>
#Include <WindowsConstants.au3>
#Include <TabConstants.au3>
#Include <GUIConstantsEx.au3>
#Include <WinAPIEx.au3>

$hInstance = _WinAPI_GetModuleHandle(0)
_LoadResourceFont($hInstance, "TTF", "Ravie")
_LoadResourceFont($hInstance, "TTF", "Modern_No_20")
_LoadResourceFont($hInstance, "TTF", "Century_Schoolbook")

#Region ### START Koda GUI section ### Form=D:\Files\AutoIt3\TSO\MainFrame.kxf
$MainFrame = GUICreate("The Settlers Online SR Bot", 615, 416, 192, 148)
GUISetFont(8, 400, 0, "Ravie")
$TSOSRLabel = GUICtrlCreateLabel("The Settlers Online SR Bot", 0, 0, 618, 50, BitOR($SS_CENTER, $SS_CENTERIMAGE, $WS_BORDER))
GUICtrlSetFont(-1, 16, 400, 0, "Ravie")
$Tab = GUICtrlCreateTab(0, 56, 618, 369, -1, $TCS_EX_FLATSEPARATORS)
$TabSheet1 = GUICtrlCreateTabItem("Main")
$GGInfo = GUICtrlCreateButton("Сбор данных", 12, 89, 89, 41)
GUICtrlSetFont(-1, 8, 800, 0, "Modern No. 20")
$TabSheet2 = GUICtrlCreateTabItem("Buffs")
GUICtrlSetState(-1, $GUI_SHOW)
$Group1 = GUICtrlCreateGroup("Бафлист", 13, 93, 129, 313)
GUICtrlSetFont(-1, 10, 400, 2, "Century Schoolbook")
$S1BuffList = GUICtrlCreateButton("Сектор 1", 21, 117, 113, 25)
GUICtrlSetFont(-1, 10, 800, 0, "Modern No. 20")
$S2BuffList = GUICtrlCreateButton("Сектор 2", 21, 149, 113, 25)
GUICtrlSetFont(-1, 10, 800, 0, "Modern No. 20")
$S3BuffList = GUICtrlCreateButton("Сектор 3", 21, 181, 113, 25)
GUICtrlSetFont(-1, 10, 800, 0, "Modern No. 20")
$S4BuffList = GUICtrlCreateButton("Сектор 4", 21, 213, 113, 25)
GUICtrlSetFont(-1, 10, 800, 0, "Modern No. 20")
$S5BuffList = GUICtrlCreateButton("Сектор 5", 21, 245, 113, 25)
GUICtrlSetFont(-1, 10, 800, 0, "Modern No. 20")
$S6BuffList = GUICtrlCreateButton("Сектор 6", 21, 277, 113, 25)
GUICtrlSetFont(-1, 10, 800, 0, "Modern No. 20")
$S7BuffList = GUICtrlCreateButton("Сектор 7", 21, 309, 113, 25)
GUICtrlSetFont(-1, 10, 800, 0, "Modern No. 20")
$S8BuffList = GUICtrlCreateButton("Сектор 8", 21, 341, 113, 25)
GUICtrlSetFont(-1, 10, 800, 0, "Modern No. 20")
$S9BuffList = GUICtrlCreateButton("Сектор 9", 21, 373, 113, 25)
GUICtrlSetFont(-1, 10, 800, 0, "Modern No. 20")
GUICtrlCreateGroup("", -99, -99, 1, 1)
$StartAutoBuff = GUICtrlCreateButton("Автобаф", 397, 341, 193, 57)
GUICtrlSetFont(-1, 14, 800, 0, "Modern No. 20")
GUICtrlCreateTabItem("")
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

Func _LoadResourceFont($hInstance, $sResType, $sResName, $iResLanguage = 0)
	
	Local $hInfo, $hData, $pData, $iSize, $hFont
	
	If $iResLanguage Then
		$hInfo = _WinAPI_FindResourceEx($hInstance, $sResType, $sResName, $iResLanguage)
	Else
		$hInfo = _WinAPI_FindResource($hInstance, $sResType, $sResName)
	EndIf
	$hData = _WinAPI_LoadResource($hInstance, $hInfo)
	$iSize = _WinAPI_SizeOfResource($hInstance, $hInfo)
	$pData = _WinAPI_LockResource($hData)
	If @Error Then
		Return SetError(1, 0, 0)
	EndIf
	$hFont = _WinAPI_AddFontMemResourceEx($pData, $iSize)
	If @Error Then
		Return SetError(1, 0, 0)
	EndIf
	Return $hFont
EndFunc

И то - это заработает, если имеется библиотека WinAPIEx.au3 и правильно определены названия шрифтов.
 
Автор
S

SurikenTSD

Новичок
Сообщения
67
Репутация
1
Спасибо большое! :laugh: :beer: :IL_AutoIt_1:


Добавлено:
Сообщение автоматически объединено:

Код:
#Include <WinAPIEx.au3>

#Region
#AutoIt3Wrapper_Res_File_Add=CENSCBK.ttf, TTF, Century_Schoolbook
#AutoIt3Wrapper_Res_File_Add=MOD20.ttf, TTF, Modern_No_20
#AutoIt3Wrapper_Res_File_Add=RAVIE.ttf, TTF, Ravie
#EndRegion

#Region
#AutoIt3Wrapper_UseUpx=n
#AutoIt3Wrapper_Run_After=Utilities\ResHacker.exe -add %out%, %out%, CENSCBK.ttf, TTF, Century_Schoolbook,
#AutoIt3Wrapper_Run_After=Utilities\Upx.exe %out% --best --no-backup --overlay=copy --compress-exports=1 --compress-resources=0 --strip-relocs=1
#AutoIt3Wrapper_UseUpx=n
#AutoIt3Wrapper_Run_After=Utilities\ResHacker.exe -add %out%, %out%, MOD20.ttf, TTF, Modern_No_20,
#AutoIt3Wrapper_Run_After=Utilities\Upx.exe %out% --best --no-backup --overlay=copy --compress-exports=1 --compress-resources=0 --strip-relocs=1
#AutoIt3Wrapper_UseUpx=n
#AutoIt3Wrapper_Run_After=Utilities\ResHacker.exe -add %out%, %out%, ravie.ttf, TTF, Ravie,
#AutoIt3Wrapper_Run_After=Utilities\Upx.exe %out% --best --no-backup --overlay=copy --compress-exports=1 --compress-resources=0 --strip-relocs=1
#EndRegion

$hInstance = _WinAPI_GetModuleHandle(0)
_LoadResourceFont($hInstance, "TTF", "Ravie")
_LoadResourceFont($hInstance, "TTF", "Modern_No_20")
_LoadResourceFont($hInstance, "TTF", "Century_Schoolbook")

#Region ### START Koda GUI section ### Form=D:\Files\AutoIt3\TSO\MainFrame.kxf
$MainFrame = GUICreate("The Settlers Online SR Bot", 615, 416, 192, 148)
GUISetFont(8, 400, 0, "Ravie")
$TSOSRLabel = GUICtrlCreateLabel("The Settlers Online SR Bot", 0, 0, 618, 50, BitOR($SS_CENTER,$SS_CENTERIMAGE,$WS_BORDER))
GUICtrlSetFont(-1, 16, 400, 0, "Ravie")
$Tab = GUICtrlCreateTab(0, 56, 618, 369, -1, $TCS_EX_FLATSEPARATORS)
$TabSheet1 = GUICtrlCreateTabItem("Main")
$GGInfo = GUICtrlCreateButton("Сбор данных", 12, 89, 89, 41)
GUICtrlSetFont(-1, 8, 800, 0, "Modern No. 20")
$TabSheet2 = GUICtrlCreateTabItem("Buffs")
GUICtrlSetState(-1,$GUI_SHOW)
$Group1 = GUICtrlCreateGroup("Бафлист", 13, 93, 129, 313)
GUICtrlSetFont(-1, 10, 400, 2, "Century Schoolbook")
$S1BuffList = GUICtrlCreateButton("Сектор 1", 21, 117, 113, 25)
GUICtrlSetFont(-1, 10, 800, 0, "Modern No. 20")
$S2BuffList = GUICtrlCreateButton("Сектор 2", 21, 149, 113, 25)
GUICtrlSetFont(-1, 10, 800, 0, "Modern No. 20")
$S3BuffList = GUICtrlCreateButton("Сектор 3", 21, 181, 113, 25)
GUICtrlSetFont(-1, 10, 800, 0, "Modern No. 20")
$S4BuffList = GUICtrlCreateButton("Сектор 4", 21, 213, 113, 25)
GUICtrlSetFont(-1, 10, 800, 0, "Modern No. 20")
$S5BuffList = GUICtrlCreateButton("Сектор 5", 21, 245, 113, 25)
GUICtrlSetFont(-1, 10, 800, 0, "Modern No. 20")
$S6BuffList = GUICtrlCreateButton("Сектор 6", 21, 277, 113, 25)
GUICtrlSetFont(-1, 10, 800, 0, "Modern No. 20")
$S7BuffList = GUICtrlCreateButton("Сектор 7", 21, 309, 113, 25)
GUICtrlSetFont(-1, 10, 800, 0, "Modern No. 20")
$S8BuffList = GUICtrlCreateButton("Сектор 8", 21, 341, 113, 25)
GUICtrlSetFont(-1, 10, 800, 0, "Modern No. 20")
$S9BuffList = GUICtrlCreateButton("Сектор 9", 21, 373, 113, 25)
GUICtrlSetFont(-1, 10, 800, 0, "Modern No. 20")
GUICtrlCreateGroup("", -99, -99, 1, 1)
$StartAutoBuff = GUICtrlCreateButton("Автобаф", 397, 341, 193, 57)
GUICtrlSetFont(-1, 14, 800, 0, "Modern No. 20")
GUICtrlCreateTabItem("")
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

Func _LoadResourceFont($hInstance, $sResType, $sResName, $iResLanguage = 0)

    Local $hInfo, $hData, $pData, $iSize, $hFont

    If $iResLanguage Then
        $hInfo = _WinAPI_FindResourceEx($hInstance, $sResType, $sResName, $iResLanguage)
    Else
        $hInfo = _WinAPI_FindResource($hInstance, $sResType, $sResName)
    EndIf
    $hData = _WinAPI_LoadResource($hInstance, $hInfo)
    $iSize = _WinAPI_SizeOfResource($hInstance, $hInfo)
    $pData = _WinAPI_LockResource($hData)
    If @error Then
        Return SetError(1, 0, 0)
    EndIf
    $hFont = _WinAPI_AddFontMemResourceEx($pData, $iSize)
    If @error Then
        Return SetError(1, 0, 0)
    EndIf
    Return $hFont
EndFunc


Вот так сделал, все равно говорят, не показывает шрифтов им. :( Проверку синтаксиса проходит хорошо, ошибок при компиляции нету... ( в чем проблема?

Так, все равно не работает :(
 

asdf8

Скриптер
Сообщения
564
Репутация
152
SurikenTSD [?]
все равно говорят, не показывает шрифтов им.
sad.gif
Проверку синтаксиса проходит хорошо, ошибок при компиляции нету... ( в чем проблема?

Попробуйте скомпилировать мой код (ваш от него отличается командами враппера).
шрифты должны быть в наличии, т.е. должны существовать файлы :
Код:
C:\WINDOWS\Fonts\CENSCBK.ttf
C:\WINDOWS\Fonts\Still MOD20.ttf
C:\WINDOWS\Fonts\ravie.ttf

Названия шрифтов должны быть правильные (можно узнать каким нибудь менеджером или просмотрщиком шрифтов).

Нужна не урезанная версия AutoIt-редактора (в нем должен быть AutoIt3Wrapper.exe).
 
Автор
S

SurikenTSD

Новичок
Сообщения
67
Репутация
1
D:\Files\AutoIt3\SciTE\AutoIt3Wrapper - тута находится экзешник.
Имена ттф смотрел через фонт вьюер.
Пробовал и как изначально писал и с добавлением полного пути, как до папки фонтс в папке виндоус, так и выносил от туда шрифты и прописывал другой путь.

Последняя версия выглядит так

Код:
#Region
#AutoIt3Wrapper_Res_File_Add=D:\Files\AutoIt3\Fonts\RAVIE.ttf, TTF, Ravie
#AutoIt3Wrapper_Res_File_Add=D:\Files\AutoIt3\Fonts\MOD20.ttf, TTF, Modern_No_20
#AutoIt3Wrapper_Res_File_Add=D:\Files\AutoIt3\Fonts\CENSCBK.ttf, TTF, Century_Schoolbook
#EndRegion


Кстати, файл модерна без Still, он mod20.ttf называется. Там я просто забыл из примера с фака заменить название, но даже эта замена ничего решила. (


Добавлено:
Сообщение автоматически объединено:

Кстати, при выносе скулбук еще несколько файлов с собой прихватил, но основная проблема в шрифте мод20.
Я на ргхост залил архивчик со скриптом и шрифтами. Попробуйте у себя, пожалуйста, кто-нибудь скомпилировать, может у меня руки со спины растут? (

http://rghost.ru/40189268
 

asdf8

Скриптер
Сообщения
564
Репутация
152
SurikenTSD [?]
Я на ргхост залил архивчик со скриптом и шрифтами.

Ну нету в шрифтах RAVIE.TTF и MOD20.TTF русских букв, соответственно и отображаться нечему.
 
Автор
S

SurikenTSD

Новичок
Сообщения
67
Репутация
1
еррм... у меня ж отображается... а если удалить из виндоус фонтс тот же мод20, то у меня шрифтяк меняется на ариал или какой-то другой...

Тот же Arial показывает, будто нету русских букв, но ведь на деле-то имеет...?? или я че-то не понимаю.

f3d7b9bf8a34a0f9b9f99cec2a725047.png


Добавлено:
Сообщение автоматически объединено:

Кстати, да, то что нету в ravie русских букв - это я знаю, там текст латиницей написан.
 

AZJIO

Меценат
Меценат
Сообщения
2,874
Репутация
1,194
SurikenTSD
Можно при запуске проверить наличие нужного шрифта и при отсутствии предложить его установить, если отказался, то записать в ini-файл об отказе и больше не спрашивать, а в GUI при отсутствии нужного шрифта выбирать альтернативный.
 
Автор
S

SurikenTSD

Новичок
Сообщения
67
Репутация
1
AZJIO
Для меня это пока что слишком сложно, даже близко не подозреваю, как подобное действо осуществить.
А шрифтяк действительно оказался не рабочий, я другой подобрал - и теперь все хорошо. Только вот вопрос: почему у меня-то отображался русский текст на кнопках, а у других вместо него кубики... ох уж эта винда...
 

AZJIO

Меценат
Меценат
Сообщения
2,874
Репутация
1,194
SurikenTSD
RAVIE.TTF и MOD20.TTF не показывает русских букв. У меня GUI тоже в квадратиках.

Для меня это пока что слишком сложно, даже близко не подозреваю, как подобное действо осуществить.
FileExists - проверить файл, а в GUI обычное условие.
 
Верх