Eigentlich kann mans gar nicht falsch verstehen.
Du siehst doch, dass man kann ![]()
Auch nach der jetzigen Erklärung bin ich mir nicht sicher, was du meinst.
Eigentlich kann mans gar nicht falsch verstehen.
Du siehst doch, dass man kann ![]()
Auch nach der jetzigen Erklärung bin ich mir nicht sicher, was du meinst.
Oder so:
#include <GDIPlus.au3>
#include <WinAPI.au3>
Opt('MustDeclareVars', 1)
_Main()
[/autoit] [autoit][/autoit] [autoit]Func _Main()
Local $hGUI, $file, $hImage1, $hGraphic, $width, $height
$hGUI = GUICreate("GDI+", 600, 400)
GUISetState()
_GDIPlus_Startup()
$file = @SystemDir & '\oobe\images\mslogo.jpg'
$hImage1 = _GDIPlus_BitmapCreateFromFile($file)
$width = _GDIPlus_ImageGetWidth($hImage1)
$height = _GDIPlus_ImageGetHeight($hImage1)
$hGraphic = _GDIPlus_GraphicsCreateFromHWND($hGUI)
;DrawInsert($hGraphic, $hImage2, $iX, $iY, $nAngle, $iWidth, $iHeight, $iARGB = 0xFF000000, $nWidth = 1)
DrawInsert($hGraphic, $hImage1, 150, 10, 20, $width + 2, $height + 2, 0xFFFF8000, 2)
Do
Until GUIGetMsg() = -3
_GDIPlus_ImageDispose($hImage1)
_GDIPlus_Shutdown()
EndFunc ;==>_Main
; #FUNCTION# ==================================================================================================
;Name...........: DrawInsert
; Description ...: Draw one image in another
; Syntax.........: DrawInsert($hGraphic, $hImage2, $iX, $iY, $nAngle, $iWidth, $iHeight, $iARGB = 0xFF000000, $nWidth = 1)
; inserts Graphics $hImage2 into $hGraphic
; Parameters ....: $hGraphics - Handle to a Graphics object
; $hImage - Handle to an Image object to be inserted
; $iX - The X coordinate of the upper left corner of the inserted image
; $iY - The Y coordinate of the upper left corner of the inserted image
; $iWidth - The width of the rectangle Border around insert
; $iHeight - The height of the rectangle Border around insert
; $iARGB - Alpha, Red, Green and Blue components of pen color - Border colour
; $nWidth - The width of the pen measured in the units specified in the $iUnit parameter - Border Width
; Return values .: Success - True
; Failure - False
;==================================================================================================
Func DrawInsert($hGraphic, $hImage2, $iX, $iY, $nAngle, $iWidth, $iHeight, $iARGB = 0xFF000000, $nWidth = 1)
Local $hMatrix, $hPen2
;Rotation Matrix
$hMatrix = _GDIPlus_MatrixCreate()
_GDIPlus_MatrixRotate($hMatrix, $nAngle, "False")
_GDIPlus_GraphicsSetTransform($hGraphic, $hMatrix)
_GDIPlus_GraphicsDrawImage($hGraphic, $hImage2, $iX, $iY)
[/autoit] [autoit][/autoit] [autoit];get pen + color
$hPen2 = _GDIPlus_PenCreate($iARGB, $nWidth)
; Draw a frame around the inserted image
_GDIPlus_GraphicsDrawRect($hGraphic, $iX, $iY, $iWidth, $iHeight, $hPen2)
; Clean up resources
_GDIPlus_MatrixDispose($hMatrix)
_GDIPlus_PenDispose($hPen2)
Return 1
EndFunc ;==>DrawInsert
Neue Version:
- keine Begrenzung der Spaltenzahl mehr!
- Auch bei mehreren Listview werden alle Formatierungsdaten in einem Array verwaltet
- die Prüfung, ob ein (Sub)Item formatiert ist, läuft wesentlich schneller
- Management zur Verwaltung der Formatinfos zu den Items ist integriert (UDF-Funktionen angepaßt)
- Listview kann sortiert, Einträge können eingefügt, gelöscht werden etc.
Details s. Bsp. 5_LV_Format.au3 in Post 1
![]()
Hab grad bemerkt, dass ich es viel zu kompliziert gemacht hatte.
Geht deutlich kürzer:
#include <GUIConstantsEx.au3>
#include <ProgressConstants.au3>
$gui = GUICreate('test')
$progress = GUICtrlCreateProgress(20, 50, 200, 20, $PBS_SMOOTH)
$pPos = ControlGetPos($gui, '', $progress)
GUISetState()
While 1
$msg = GUIGetMsg()
Switch $msg
Case -3
Exit
Case $GUI_EVENT_PRIMARYDOWN
$mPos = GUIGetCursorInfo($gui)
If $mPos[4] = $progress Then
$iProg = ($mPos[0] - $pPos[0]) / $pPos[2] *100
GUICtrlSetData($progress, $iProg)
EndIf
EndSwitch
WEnd
Ich weiß zwar nicht, wozu das zu gebrauchen sein soll
aber so geht es:
#include <GUIConstantsEx.au3>
[/autoit][autoit][/autoit][autoit]$gui = GUICreate('test')
$progress = GUICtrlCreateProgress(20, 50, 200, 20)
$pPos = ControlGetPos($gui, '', $progress)
GUISetState()
While 1
$msg = GUIGetMsg()
Switch $msg
Case -3
Exit
Case $GUI_EVENT_PRIMARYDOWN
$old = Opt('MouseCoordMode', 2)
$mPos = MouseGetPos()
If ($mPos[0] >= $pPos[0] And $mPos[0] <= $pPos[0] + $pPos[2]) And _
($mPos[1] >= $pPos[1] And $mPos[1] <= $pPos[1] + $pPos[3]) Then
$iProg = ($mPos[0] - $pPos[0]) / $pPos[2] *100
GUICtrlSetData($progress, $iProg)
EndIf
Opt('MouseCoordMode', $old)
EndSwitch
WEnd
war10ck
Das ist Leichenfledderei!
Letzter Post:
ZitatSonntag, 18. November 2007, 15:12
Ich kenne eigentlich nur eine sinnvolle Anwendung:
Der Internetprovider vergibt eine statische IP, diese ist gekoppelt an die MAC-Adresse des Endgerätes. Wenn nun der PC (oder nur die Netzwerkkarte) getauscht wird muß die alte MAC-Adresse auf die neue Karte übertragen um den Account weiter nutzen zu können ohne extra den Provider zu kontaktieren.
habe nur ich das Problem?
Nö ![]()
Da war ein Fehler in der Deklaration.
Übernimm mal diese Zeile (34):
Local $currYear = @YEAR, $currM_D = '/' & @MON & '/' & @MDAY
[/autoit]Wenn du eine Funktion über ihren String aufrufen willst, verwende den Befehl: Call()
[autoit]Call("meineFunc")
[/autoit][autoit][/autoit][autoit]Func meineFunc()
; dein Code
EndFunc
Ich glaub, das hier war es:
[ neu ] Arbeitszeit Rechner
Genau diese Fragestellung wurde im Forum schon mal behandelt (und gelöst). Aber ich weiß nicht mehr unter welchem Titel. Vielleicht erinnert sich ja noch jemand anders daran.
Die Hersteller sehen dies eben nicht als Mangel an, da der Grafikchip mir ja gaaaaaaanz tolle Bilder und Frameraten liefert, und mehr braucht eine Grafikkarte nicht zu tun, rein rechtlich gesehen.
Auch wenn ich kein Jurist bin, so ist diese Argumentation selbstredend auf den Hersteller zugeschnitten und entspricht m.E. nicht der Rechtslage.
- Es ist korrekt, die GraKa erfüllt die von ihr geforderte Funktion fehlerfrei
ABER
- Die GraKa bringt eine Funktion mit (Zusatzgeräusch), die nicht zum Funktionsumfang der GraKa gehört und somit muß der Käufer diese ungewollte Funktion nicht ertragen.
Somit liegt ein Mangel vor, nicht wegen Fehlfunktion, sondern wegen Vorhandensein von Funktionen, die nicht den technischen Spezifikationen der GraKa entsprechen.
Kannst dich auch mal an den Verbraucherschutz wenden, die werden sich mit Freude drauf stürzen.
Übrigens gibt es gesetzliche Normen, die die Lautstärke und Frequenz von jedem erdenklichen elektrischen Bauteil festlegen. Insofern stellt der Krach u.U. auch eine Verletzung von Normativen dar.
Ich würde es passend finden, wenn du dazu schreibst, welchem Zweck die Funktion dient.
Aus dem Funktionsnamen allein ist dies nicht zu entnehmen.
nochmal "umgedreht". Der Grund erschliesst sich mir nicht....
Ist vermutlich an die übliche AutoIt-Syntax angepaßt: 1 = True, 0 = False
Je mehr der Wert gegen 1 läuft, desto 'wahrer', also größer ist die Übereinstimmung.
Ich finde das sehr passend.
Du benötigst in der INI nur einen Schlüssel um festzulegen, an welchen Tagen die Sicherung laufen soll:
#cs - diese Werte speicherst du als Summe für mehrere Tage in der INI
1 - Sonntag
2 - Montag
4 - Dienstag
8 - Mittwoch
16 - Donnerstag
32 - Freitag
64 - Samstag
#ce
; z.B.
Local $arCheckBox[7]
$arCheckBox[0] = GUICtrlCreateCheckbox('Sonntag',...)
$arCheckBox[1] = GUICtrlCreateCheckbox('Montag',...)
; usw.
; Auslesen
Local $checked = 0
For $i = 0 To 6
If BitAND(GUICtrlRead($arCheckBox[$i]), $GUI_CHECKED) Then
$checked = BitOR($checked, 2^$i)
EndIf
Next
; in INI schreiben
IniWrite($INI, 'sicherung', 'tage', $checked)
#cs Muster-INI
[sicherung]
tage=42
#ce
; 2 + 8 + 32 = Mo/Mi/Fr
; aus INI lesen
Local $savedays = IniRead($INI, 'sicherung', 'tage', 0)
; prüfen ob aktueller Tag für Sicherung vorgesehen ist
If BitAND($savedays, 2^(@WDAY-1)) Then
; starte Sicherung
EndIf
Wichtig ist, dass der Sonntag in der Reihenfolge der erste Tag ist, da @WDAY für Sonntag 1 zurückgibt. Auf der GUI kannst du das ja anders anordnen, aber im Array muß Sonntag an [0] sein.
ZitatDienstag, 11. April 2006, 16:18
Oh Franzi, das ist doch Leichenschändung. ![]()
Zur Frage: Schau mal _FileListToArray() an.
Noch 'ne Variante:
[autoit]$text = 'Das ist ein Test'
$array = StringSplit($text, '')
$rueckwaerts = ''
For $i = $array[0] To 1 Step -1
$rueckwaerts &= $array[$i]
Next
ConsoleWrite($rueckwaerts & @CRLF)
Ich weiß ja nicht, was du ganz exakt mit dem Skript erreichen möchtest. Die Array-Operationen innerhalb der Schleife bremsen gewaltig. Muß das überhaupt sein?
Gib mal genau an:
- Zustand vorher
- gewünschter Zustand
könntest du mir aber bitte
==> $ret = StringRegExp(FileRead($file), '(?:EAN-Code: )(\d+)', 3) <== erklären ?
'(?:EAN-Code: )(\d+)' - ist das Suchmuster (Pattern)
(?:EAN-Code: ) - erster Ausdruck in Klammern (Backreferenz) dient zum Finden des Strings (EAN...)
?: ist die Anweisung: diese Backreferenz im Ergebnis nicht aufführen
(\d+) - zweite Backreferenz, ist zu berücksichtigen.
\d bedeutet Ziffer, + ist ein Quantifier und heißt mindestens 1-mal bis beliebig oft
Probier mal so:
[autoit]Local $vonDate = '2009/01/02'
Local $bisDate = '2009/01/03'
Local $array[3] = [ _
'01.01.2009,13:34:49, hallo', _
'02.01.2009,13:34:49, hallo2', _
'03.01.2009,13:34:49, hallo3']
For $i = 0 To UBound($array) -1
$Date = _strToDate(StringLeft($array[$i], 10))
If $Date >= $vonDate And $Date <= $bisDate Then ConsoleWrite(StringTrimLeft($array[$i], 21) & @CRLF)
Next
Func _strToDate($s)
Return StringRight($s, 4) & '/' & StringMid($s, 4, 2) & '/' & StringLeft($s, 2)
EndFunc