huhu,
falls noch jmd. einmal installierte schriften mit denen, die im web gängig sind, vergleichen möchte, könnte dieses skript hilfreich sein.
Spoiler anzeigen
#include <GUIConstants.au3>
#include <Array.au3>
#include <Misc.au3>
#include <IE.au3>
Opt("TrayMenuMode",1)
$oIE1 = _IECreateEmbedded()
$oIE2 = _IECreateEmbedded()
$Gui = GUICreate("TypeTester", 370, 219, 323, 285)
$Group1 = GUICtrlCreateGroup("Costum", 0, 0, 185, 137)
$Combo1 = GUICtrlCreateCombo("", 0, 16, 185, 25)
$Fonts1 = GUICtrlCreateObj($oIE1, 0, 40, 175, 97)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Group2 = GUICtrlCreateGroup("Web", 184, 0, 185, 137)
$Combo2 = GUICtrlCreateCombo("", 184, 16, 185, 25)
$Fonts2 = GUICtrlCreateObj($oIE2, 184, 40, 175, 97)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Group3 = GUICtrlCreateGroup("Text Costum", 0, 136, 369, 41)
$Input1 = GUICtrlCreateInput("", 0, 152, 369, 23)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Group4 = GUICtrlCreateGroup("Text Web", 0, 176, 369, 41)
$Input2 = GUICtrlCreateInput("", 0, 192, 369, 23)
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUISetState(@SW_HIDE)
Global $control = 0, $web= "Arial|Comic Sans MS|Courier New|Georgia|Impact|Times New Roman|Trebuchet MS|Verdana"
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Combo1
insert_($Input1, $Combo1)
Case $Combo2
insert_($Input2, $Combo2)
EndSwitch
If $control <> 1 Then
read_()
EndIf
If _IsPressed("1B") Then
Exit
EndIf
WEnd
Func read_()
Local $key = 'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts', $instances[1000], $wert[1000], $text_combo1 = ""
TrayTip("Info", "TypeTester wird gestartet. Dies kann einige Zeit in Anspruch nehmen...", 15, 1)
For $i = 1 to 1000
$instances[$i] = RegEnumVal($key, $i)
If @Error <> 0 Then ExitLoop
Next
For $j = $i to 999
_ArrayDelete($instances, $j)
Next
_ArrayDelete($instances, 0)
_ArraySort($instances)
_ArrayDeleteEx($instances, filter_($instances, "Bold"))
_ArrayDeleteEx($instances, filter_($instances, "Fett"))
_ArrayDeleteEx($instances, filter_($instances, "Kursiv"))
_ArrayDeleteEx($instances, filter_($instances, "Italic"))
_ArrayDeleteEx($instances, filter_($instances, "Regular"))
_IENavigate($oIE1, "about:blank")
For $k = 0 To (UBound($instances)-1)
$string = StringSplit($instances[$k], "(", 2)
$string = StringTrimRight($string[0], 1)
ie_text($string, $oIE1, $string)
$text_combo1 = $text_combo1 & "|" & $string
Next
GUICtrlSetData($Combo1, $text_combo1, "Arial")
$string = StringSplit($web, "|", 2)
_IENavigate($oIE2, "about:blank")
For $k = 0 To (UBound($string)-1)
ie_text($string[$k], $oIE2, $string[$k])
Next
GUICtrlSetData($Combo2, $web, $string[0])
GUISetState(@SW_SHOW)
$control = 1
EndFunc
Func insert_($Input, $Combo)
GUICtrlSetFont($Input, 12, 400, 0, GUICtrlRead($Combo))
EndFunc
Func ie_text($msg, $id, $font)
$src = _IEDocReadHTML($id)
$src = $src & '<font face="' & $font & '">' & $msg & '</font><br>'
$go = _IEDocWriteHTML($id, $src)
EndFunc
Func filter_($array, $split);_ArraySearchForString UDF; @Error = 1 wenn $array kein String; @Error = 2 wenn $split kein String; #include <Array.au3>; gibt 0 aus, wenn Fehler austreten
Local $i = 0, $count[UBound($array)]
For $i = 0 To (UBound($array)-1)
If Not IsString($array[$i]) Then
Return 0
SetError(1)
ExitLoop
EndIf
Next
If IsString($split) Then
For $i = 0 To (UBound($array)-1)
If StringInStr($array[$i], $split) <> 0 Then $count[$i] = 1
Next
$count_ = _ArrayFindAll($count, 1)
Return $count_
Else
Return 0
SetError(2)
EndIf
EndFunc
Func _ArrayDeleteEx(ByRef $array, $del_array); _ArrayDeleteEx UDF; @Error = 1 wenn $array kein Array; @Error = 2 wenn $del_array kein Array; #include <Array.au3>; gibt 0 aus, wenn Fehler auftreten
Local $i = 0
If Not IsArray($array) Then
Return 0
SetError(1)
EndIf
If Not IsArray($del_array) Then
Return 0
SetError(2)
EndIf
For $i = (UBound($del_array)-1) To 0 Step -1
_ArrayDelete($array, $del_array[$i])
Next
Return 1
EndFunc
neue gui
Spoiler anzeigen
#include <GUIConstants.au3>
#include <EditConstants.au3>
#include <WindowsConstants.au3>
#include <Array.au3>
#include <Misc.au3>
#include <IE.au3>
Opt("TrayMenuMode",1)
$oIE1 = _IECreateEmbedded()
$oIE2 = _IECreateEmbedded()
$Gui = GUICreate("TypeTester", 626, 478, 285, 157)
;GUISetBkColor(0xFFFFFF)
$Group1 = GUICtrlCreateGroup("Costum", 0, 0, 625, 237)
$Combo1 = GUICtrlCreateCombo("Combo1", 0, 16, 145, 25)
$Edit1 = GUICtrlCreateEdit("Ich bin nur ein Beispieltext, damit Zeichen verglichen werden können.", 175, 16, 200, 125, BitOR($WS_VSCROLL, $ES_WANTRETURN, $ES_READONLY))
GUICtrlSetBkColor(-1, 0xFFFFFF)
GUICtrlSetFont(-1, 12)
$Edit3 = GUICtrlCreateEdit("", 392, 16, 225, 215, BitOR($WS_VSCROLL, $ES_WANTRETURN))
$Fonts1 = GUICtrlCreateObj($oIE1, 0, 40, 150, 185)
$Input1 = GUICtrlCreateInput("12", 171, 178, 45, 32)
GUICtrlSetFont(-1, 14, 400, 0, "Comic Sans MS")
$Group3 = GUICtrlCreateGroup("", 233, 173, 126, 38)
$Radio1 = GUICtrlCreateRadio("Normal", 241, 189, 57, 17)
GUICtrlSetState(-1, $GUI_CHECKED)
$Radio2 = GUICtrlCreateRadio("Kursiv", 302, 189, 49, 17)
;$Radio3 = GUICtrlCreateRadio("Fett", 344, 189, 37, 17)
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Group2 = GUICtrlCreateGroup("Web", 0, 240, 625, 237)
$Combo2 = GUICtrlCreateCombo("Combo2", 0, 256, 145, 25)
$Edit2 = GUICtrlCreateEdit("Ich bin nur ein Beispieltext, damit Zeichen verglichen werden können.", 175, 256, 200, 125, BitOR($WS_VSCROLL, $ES_WANTRETURN, $ES_READONLY))
GUICtrlSetBkColor(-1, 0xFFFFFF)
GUICtrlSetFont(-1, 12)
$Edit4 = GUICtrlCreateEdit("", 392, 256, 225, 215, BitOR($WS_VSCROLL, $ES_WANTRETURN))
$Fonts2 = GUICtrlCreateObj($oIE2, 0, 280, 150, 185)
$Input2 = GUICtrlCreateInput("12", 171, 418, 45, 32)
GUICtrlSetFont(-1, 14, 400, 0, "Comic Sans MS")
$Group4 = GUICtrlCreateGroup("", 233, 413, 126, 38)
$Radio3 = GUICtrlCreateRadio("Normal", 241, 429, 57, 17)
GUICtrlSetState(-1, $GUI_CHECKED)
$Radio4 = GUICtrlCreateRadio("Kursiv", 302, 429, 49, 17)
;$Radio6 = GUICtrlCreateRadio("Fett", 344, 429, 37, 17)
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUISetState(@SW_HIDE)
Global $control = 0, $web= "Arial|Comic Sans MS|Courier New|Georgia|Impact|Times New Roman|Trebuchet MS|Verdana"
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Combo1
If GUICtrlRead($Radio1) = 1 Then
$attr = 0
Else
$attr = 2
EndIf
insert_($Edit1, $Combo1, $attr, $Input1)
insert_($Edit3, $Combo1, $attr, $Input1)
Case $Combo2
If GUICtrlRead($Radio3) = 1 Then
$attr_ = 0
Else
$attr_ = 2
EndIf
insert_($Edit2, $Combo2, $attr_, $Input2)
insert_($Edit4, $Combo2, $attr_, $Input2)
Case $Input1
If GUICtrlRead($Radio1) = 1 Then
$attr = 0
Else
$attr = 2
EndIf
insert_($Edit1, $Combo1, $attr, $Input1)
insert_($Edit3, $Combo1, $attr, $Input1)
Case $Input2
If GUICtrlRead($Radio3) = 1 Then
$attr_ = 0
Else
$attr_ = 2
EndIf
insert_($Edit2, $Combo2, $attr_, $Input2)
insert_($Edit4, $Combo2, $attr_, $Input2)
Case $Radio1
insert_($Edit1, $Combo1, 0, $Input1)
insert_($Edit3, $Combo1, 0, $Input1)
Case $Radio2
insert_($Edit1, $Combo1, 2, $Input1)
insert_($Edit3, $Combo1, 2, $Input1)
Case $Radio3
insert_($Edit2, $Combo2, 0, $Input2)
insert_($Edit4, $Combo2, 0, $Input2)
Case $Radio4
insert_($Edit2, $Combo2, 2, $Input2)
insert_($Edit4, $Combo2, 2, $Input2)
EndSwitch
If $control <> 1 Then
read_()
EndIf
If _IsPressed("1B") Then
Exit
EndIf
WEnd
Func read_()
Local $key = 'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts', $instances[1000], $wert[1000], $text_combo1 = ""
TrayTip("Info", "TypeTester wird gestartet. Dies kann einige Zeit in Anspruch nehmen...", 15, 1)
For $i = 1 to 1000
$instances[$i] = RegEnumVal($key, $i)
If @Error <> 0 Then ExitLoop
Next
For $j = $i to 999
_ArrayDelete($instances, $j)
Next
_ArrayDelete($instances, 0)
_ArraySort($instances)
_ArrayDeleteEx($instances, filter_($instances, "Bold"))
_ArrayDeleteEx($instances, filter_($instances, "Fett"))
_ArrayDeleteEx($instances, filter_($instances, "Kursiv"))
_ArrayDeleteEx($instances, filter_($instances, "Italic"))
_ArrayDeleteEx($instances, filter_($instances, "Regular"))
_IENavigate($oIE1, "about:blank")
For $k = 0 To (UBound($instances)-1)
$string = StringSplit($instances[$k], "(", 2)
$string = StringTrimRight($string[0], 1)
ie_text($string, $oIE1, $string)
$text_combo1 = $text_combo1 & "|" & $string
Next
GUICtrlSetData($Combo1, $text_combo1, "Arial")
$string = StringSplit($web, "|", 2)
_IENavigate($oIE2, "about:blank")
For $k = 0 To (UBound($string)-1)
ie_text($string[$k], $oIE2, $string[$k])
Next
GUICtrlSetData($Combo2, $web, $string[0])
GUISetState(@SW_SHOW)
$control = 1
EndFunc
Func insert_($Edit, $Combo, $attr, $Input)
If Number(GUICtrlRead($Input)) > 0 Then
GUICtrlSetFont($Edit, Int(Number(GUICtrlRead($Input))), 400, $attr, GUICtrlRead($Combo))
Else
GUICtrlSetFont($Edit, 12, 400, $attr, GUICtrlRead($Combo))
EndIf
EndFunc
Func ie_text($msg, $id, $font)
$src = _IEDocReadHTML($id)
$src = $src & '<font face="' & $font & '">' & $msg & '</font><br>'
$go = _IEDocWriteHTML($id, $src)
EndFunc
Func filter_($array, $split);_ArraySearchForString UDF; @Error = 1 wenn $array kein String; @Error = 2 wenn $split kein String; #include <Array.au3>; gibt 0 aus, wenn Fehler austreten
Local $i = 0, $count[UBound($array)]
For $i = 0 To (UBound($array)-1)
If Not IsString($array[$i]) Then
Return 0
SetError(1)
ExitLoop
EndIf
Next
If IsString($split) Then
For $i = 0 To (UBound($array)-1)
If StringInStr($array[$i], $split) <> 0 Then $count[$i] = 1
Next
$count_ = _ArrayFindAll($count, 1)
Return $count_
Else
Return 0
SetError(2)
EndIf
EndFunc
Func _ArrayDeleteEx(ByRef $array, $del_array); _ArrayDeleteEx UDF; @Error = 1 wenn $array kein Array; @Error = 2 wenn $del_array kein Array; #include <Array.au3>; gibt 0 aus, wenn Fehler auftreten
Local $i = 0
If Not IsArray($array) Then
Return 0
SetError(1)
EndIf
If Not IsArray($del_array) Then
Return 0
SetError(2)
EndIf
For $i = (UBound($del_array)-1) To 0 Step -1
_ArrayDelete($array, $del_array[$i])
Next
Return 1
EndFunc
das eintragen der daten könnte schneller sein.
viel spaß damit, falls es mal jmd benötigt. :p
update:
filter eingebaut
gui wird sichtbar, nachdem alle fonts einegtragen sind (tooltip weist darauf hin)
flimmern müsste behoben sein
neue gui hinzugefügt
schriftattribute bei neuer gui gesetzt