Hab das Skript jetzt ebenfalls auf Win200 getestet. Es waren wirklich keine Label zu sehen. Danach habe ich die Datei gdiplus.dll von einem WinXP SP2 Rechner entnommen, einfach bei Win2000 ins System32-Verzeichnis kopiert und schon lief es einwandfrei. Ich musste die Dll nicht mal registrieren.
Rasta, ich habe gelesen, dass es alte Versionen von gdiplus.dll gibt. Vllt hast du eine solche?
Beiträge von funkey
-
-
Hätte es so gemacht:
Spoiler anzeigen
[autoit]#include <Timers.au3>
[/autoit] [autoit][/autoit] [autoit]HotKeySet("{Esc}", "terminate")
[/autoit] [autoit][/autoit] [autoit]Global $Zeitvorgabe = 10 ; Sekunden
[/autoit] [autoit][/autoit] [autoit]
Local $TimeWhile 1
[/autoit] [autoit][/autoit] [autoit]
$Time = _Timer_GetIdleTime()
If $Time > $Zeitvorgabe * 1000 Then MouseMove(Random(0, @DesktopWidth, 1), Random(0, @DesktopHeight, 1))
Sleep(1000)
WEndFunc terminate()
[/autoit]
Exit
EndFunc ;==>terminate -
Was du suchst heißt:
[autoit]_Timer_GetIdleTime
[/autoit] -
Funktioniert bei mir genauso wie du es hast, aber die Schriftart heißt doch Papyrus, oder?
http://www.selket.de/einerlei1.htmEdit: Hab deinen Download zu spät gesehen.
-
Das dachte ich mir, dass Colonna MT nicht auf jedem PC zu finden ist, aber Arial sollte es überall geben. Deswegen verstehe ich nicht warum bei Rasta überhaupt nichts zu sehen ist!? Funktioniert GDI+ auf Win2000 noch nicht richtig?
-
Das Hilfebeispiel funktioniert genauso wie es soll!
Aber hier mal ein anderes Beispiel für das Verständnis!
[autoit]#include <GuiMonthCal.au3>
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Global $gui = GUICreate('Kalender')
[/autoit] [autoit][/autoit] [autoit]Global $kalender = _GUICtrlMonthCal_Create($gui, 100, 20)
[/autoit] [autoit][/autoit] [autoit]
Global $button_waehlen = GUICtrlCreateButton('Button', 10, 20)GUISetState()
[/autoit] [autoit][/autoit] [autoit]Do
[/autoit]
$msg = GUIGetMsg()
If $msg = $button_waehlen Then
$tTime = _GUICtrlMonthCal_GetCurSel($kalender)
MsgBox(0, "Gewähltes Datum", StringFormat("%02d.%02d.%04d", DllStructGetData($tTime, "Day"), _
DllStructGetData($tTime, "Month"), _
DllStructGetData($tTime, "Year")))
EndIf
Until $msg = -3 -
Du bekommst eine Struktur zurück. Schau dir das Hilfebeispiel dazu an.
-
Natürlich kann man das.
Einfach
[autoit]#include-once
[/autoit]
#include <GDIPlus.au3>und die 2 Funktionen in einer neuen Datei abspeichern.
-
Mit Hilfe des Skriptes TextMeter von Bugfix und auf Grund dieses Posts, habe ich ein Skript geschrieben, welches einfach mehrfärbige Labels erzeugt.
Viel Spaß damit!
Spoiler anzeigen
[autoit]#include <GDIPlus.au3>
[/autoit] [autoit][/autoit] [autoit]GUICreate('Bunte Labels by funkey', 500, 200)
[/autoit] [autoit][/autoit] [autoit]_GuiCtrlCreateColoredLabel('Hallo[0x0000FF] Autoit.de![0x00FF00] Wie gefällt euch das?[0xFF0000]', 20, 20, 'Arial', 20)
[/autoit] [autoit][/autoit] [autoit]
_GuiCtrlCreateColoredLabel('D[0xFF00FF]a[0x0000FF]s[0x00FFFF] ist[0x00FF00] e[0xFFFF00]in[0xFFFFFF] ers[0x000000]ter Farb[0xFF0000]test[0x0000FF]', 20, 80, 'Times New Roman', 15)GUISetState()
[/autoit] [autoit][/autoit] [autoit]_GuiCtrlCreateColoredLabel('A[0x0000FF]n[0xFF0000]i[0x0000FF]m[0xFF0000]a[0x0000FF]t[0xFF0000]i[0x0000FF]o[0xFF0000]n[0x0000FF] :)[0x00FFFF]', 40, 130, 'Microsoft Sans Serif', 45, 6, 300)
[/autoit] [autoit][/autoit] [autoit]Do
[/autoit] [autoit][/autoit] [autoit]
Sleep(10)
Until GUIGetMsg() = -3Func _GuiCtrlCreateColoredLabel($sText, $iPosX, $iPosY, $sFont = 'Microsoft Sans Serif', $iFontSize = 8.5, $iFontAttributes = 0, $iSleep = 0)
[/autoit] [autoit][/autoit] [autoit]
;Author: funkey
Local $aTextPart = StringRegExp($sText, '.+?]', 3)
Local $aText, $hLabel[UBound($aTextPart)], $aSize[2] = [0, 0], $iWidthOld
For $i = 0 To UBound($aTextPart) - 1
$aText = StringSplit(StringTrimRight($aTextPart[$i], 1), '[', 2)
$iWidthOld += $aSize[0] - $iFontSize / 2
$aSize = _GetTextSize($aText[0], $sFont, $iFontSize, $iFontAttributes)
$hLabel[$i] = GUICtrlCreateLabel($aText[0], $iPosX + $iWidthOld, $iPosY, $aSize[0], $aSize[1])
GUICtrlSetColor(-1, $aText[1])
GUICtrlSetBkColor(-1, -2) ; $GUI_BKCOLOR_TRANSPARENT
GUICtrlSetFont(-1, $iFontSize, 400, $iFontAttributes, $sFont)
Sleep($iSleep)
Next
Return $hLabel
EndFunc ;==>_GuiCtrlCreateColoredLabelFunc _GetTextSize($nText, $sFont = 'Microsoft Sans Serif', $iFontSize = 8.5, $iFontAttributes = 0)
[/autoit]
;Author: Bugfix
;Modified: funkey
If $nText = '' Then Return
Local $hGui = GUICreate("Textmeter by Bugfix")
_GDIPlus_Startup()
Local $hFormat = _GDIPlus_StringFormatCreate(0)
Local $hFamily = _GDIPlus_FontFamilyCreate($sFont)
Local $hFont = _GDIPlus_FontCreate($hFamily, $iFontSize, $iFontAttributes, 3)
Local $tLayout = _GDIPlus_RectFCreate(15, 171, 0, 0)
Local $hGraphic = _GDIPlus_GraphicsCreateFromHWND($hGui)
Local $aInfo = _GDIPlus_GraphicsMeasureString($hGraphic, $nText, $hFont, $tLayout, $hFormat)
Local $iWidth = Ceiling(DllStructGetData($aInfo[0], "Width"))
Local $iHeight = Ceiling(DllStructGetData($aInfo[0], "Height"))
_GDIPlus_StringFormatDispose($hFormat)
_GDIPlus_FontDispose($hFont)
_GDIPlus_FontFamilyDispose($hFamily)
_GDIPlus_GraphicsDispose($hGraphic)
_GDIPlus_Shutdown()
GUIDelete($hGui)
Local $aSize[2] = [$iWidth, $iHeight]
Return $aSize
EndFunc ;==>_GetTextSizeEdit: Beispiel-Schriftart geändert
-
Vorschlag: Du könntest dir einen Hotkey zum Beenden des Skriptes machen, der abhängig vom Parameter ist

--> primary - ^!p
--> nas - ^!n -
@h0scHberT: Das ist beim Original aber genau so! It's no bug, it's a feature!
-
-
Dann versuchs mit der BlockInputEx-UDF.
-
Versuch mal BlockInput(1) nur im aufgerufenen Skript zu verwenden. Besser wäre sowieso Control...-Befehle anstelle von Send zu verwenden.
-
So geht's auch:
Spoiler anzeigen
[autoit]$A = InputBox("übung", "Geben Sie eine Rechnung ein:", '1+2')
[/autoit]
$B = Execute($A)
MsgBox(0,"", $B)Aber am besten ist, wenn du dir eine eigene Gui baust und GUICtrlCreateInput mit $ES_NUMBER verwendest.
Oder du nimmst das tolle Skript: RestrictControlRegExp-UDF - Fehleingaben direkt verhindern, Eingabentypen festlegen -
So zum Beispiel:
Spoiler anzeigen
[autoit]$FullPath = 'C:\Programme\Anwendung\Datei.exe'
[/autoit]
$Path = StringLeft($FullPath, StringInStr($FullPath, '\', 0, -1))
MsgBox(0,"", $Path)Es gibt aber auch _PathSplit.
-
Versuch mal bei _SQLite_Open einen Pfad auzugeben.
-
Ich empfinde diese (Fehl-)Funktion eher als störend.
-
Von FileZilla weiß ich nichts.
Edit: Oder meinst du die Standard-Schriftart von Autoit-Programmen? Hängt die nicht von den Windows-Einstellungen ab?
-
Weiß nicht ob ichs richtig verstanden habe!?
Spoiler anzeigen
[autoit]Global $x = 15
[/autoit] [autoit][/autoit] [autoit]
Global $y = 20For $z = 1 To 5
[/autoit]
If $x <= $y - $z Then
MsgBox(0, "", "x: "&$x &@CRLF & "y: "&$y &@CRLF & "z: "&$z)
EndIf
Next