Aha... Ich habe mal nach _RecursivFileSearch gesucht, und das hier gefunden. Hast du überhaupt gesucht oder warst du zu faul dazu? ![]()
Beiträge von name22
-
-
Wenn du mit "liegepunkt" den vollständigen Pfad zur exe Datei meinst, dann ja ;).
Du müsstest mit einer Funktion wie _RecursiveFileSearch (ich finde den Link nicht merh ^^) o.Ä. nach dem Dateinamen suchen, dann hast du ja den Pfad und kannst die exe z.B. mit Run ausführen. Allerdings müsste dann der Name der exe einmalig sein... -
Hab mal eine kleine Funktion mit GDI+ gebastelt.

Spoiler anzeigen
[autoit]#include <GDIPlus.au3>
[/autoit] [autoit][/autoit] [autoit]_RepeatPicture(@ScriptDir & "\stripes.png", @ScriptDir & "\Test.png", 400, 400)
[/autoit] [autoit][/autoit] [autoit]Func _RepeatPicture($sPath_Src, $sPath_Dst, $iWidth_Dst, $iHeight_Dst)
[/autoit] [autoit][/autoit] [autoit]
; Author: name22(http://www.autoit.de)_GDIPlus_Startup()
[/autoit] [autoit][/autoit] [autoit]$hImage_Src = _GDIPlus_ImageLoadFromFile($sPath_Src)
[/autoit] [autoit][/autoit] [autoit]
$hTexture_Src = _GDIPlus_TextureCreate($hImage_Src)$hGraphic_Tmp = _GDIPlus_GraphicsCreateFromHWND(WinGetHandle(AutoItWinGetTitle()))
[/autoit] [autoit][/autoit] [autoit]
$hBitmap_Dst = _GDIPlus_BitmapCreateFromGraphics($iWidth_Dst, $iHeight_Dst, $hGraphic_Tmp)
$hGraphic_Dst = _GDIPlus_ImageGetGraphicsContext($hBitmap_Dst)_GDIPlus_GraphicsFillRect($hGraphic_Dst, 0, 0, $iWidth_Dst, $iHeight_Dst, $hTexture_Src)
[/autoit] [autoit][/autoit] [autoit]
_GDIPlus_ImageSaveToFile($hBitmap_Dst, $sPath_Dst)_GDIPlus_GraphicsDispose($hGraphic_Tmp)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
_GDIPlus_GraphicsDispose($hGraphic_Dst)
_GDIPlus_BitmapDispose($hBitmap_Dst)
_GDIPlus_ImageDispose($hImage_Src)
_GDIPlus_BrushDispose($hTexture_Src)
_GDIPlus_Shutdown()
EndFunc; #FUNCTION# ====================================================================================================================
[/autoit] [autoit][/autoit] [autoit]
; Name...........: _GDIPlus_TextureCreate
; Description ...: Creates a TextureBrush object based on an image and a wrap mode
; Syntax.........: _GDIPlus_TextureCreate($hImage[, $iWrapMode = 0])
; Parameters ....: $hImage - Pointer to an Image object
; $iWrapMode - Wrap mode that specifies how repeated copies of an image are used to tile an area when it is
; +painted with the texture brush:
; |0 - Tiling without flipping
; |1 - Tiles are flipped horizontally as you move from one tile to the next in a row
; |2 - Tiles are flipped vertically as you move from one tile to the next in a column
; |3 - Tiles are flipped horizontally as you move along a row and flipped vertically as you move along a column
; |4 - No tiling takes place
; Return values .: Success - Pointer to a new TextureBrush object
; Failure - 0 and either:
; |@error and @extended are set if DllCall failed
; |$GDIP_STATUS contains a non zero value specifying the error code
; Remarks .......: The size of the brush defaults to the size of the image, so the entire image is used by the brush
; After you are done with the object, call _GDIPlus_BrushDispose to release the object resources
; Related .......: _GDIPlus_BrushDispose
; Link ..........; @@MsdnLink@@ GdipCreateTexture
; Example .......; No
; ===============================================================================================================================
Func _GDIPlus_TextureCreate($hImage, $iWrapMode = 0)
Local $aResult = DllCall($ghGDIPDll, "uint", "GdipCreateTexture", "hwnd", $hImage, "int", $iWrapMode, "int*", 0)If @error Then Return SetError(@error, @extended, 0)
[/autoit]
$GDIP_STATUS = $aResult[0]
Return $aResult[3]
EndFunc ;==>_GDIPlus_TextureCreate -
Hey cool! Das kann ich echt gut gebrauchen
. Ich brauche es zwar eher um das genaue Gegenteil seines Verwendungswecks zu machen (nämlich die Dateinamen aus den Tags zusammensetzen), aber die ID3.au3 wird noch nützlich sein :D. -
Das geht auch einfacher, hier mal ein Beispiel ;).
Spoiler anzeigen
[autoit]#include <GUIConstants.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <Array.au3>
#include <Date.au3>Global $aLights[40], $aRemaining[40], $bStart = False, $iCurTarget = Random(0, 39, 1), $Timer, $iH, $iM, $iS
[/autoit] [autoit][/autoit] [autoit]
For $i = 0 To 39
$aRemaining[$i] = $i
Next$hWnd = GUICreate("Test", 355, 450, 0, 0)
[/autoit] [autoit][/autoit] [autoit]
$iX = 5
$iY = 5
For $i = 1 To 40
$aLights[$i - 1] = GUICtrlCreateButton("", $iX, $iY, 50, 50)
GUICtrlSetBkColor(-1, 0x505050)
$iX += 55
If Not Mod($i, 5) Then
$iY += 55
$iX = 5
EndIf
Next
$cStart = GUICtrlCreateButton("Start", 290, 5, 60, 25)
GUISetState()While 1
[/autoit] [autoit][/autoit] [autoit]
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $cStart
If $bStart = False Then
_Reset()
$bStart = True
$iCurTarget = $aRemaining[Random(0, UBound($aRemaining) - 1, 1)]
GUICtrlSetBkColor($aLights[$iCurTarget], 0xFF0000)
_ArrayDelete($aRemaining, _ArrayInterpolationSearch($aRemaining, $iCurTarget))
$Timer = TimerInit()
EndIf
Case $aLights[$iCurTarget]
If $bStart Then
GUICtrlSetState($aLights[$iCurTarget], $GUI_DISABLE)
GUICtrlSetBkColor($aLights[$iCurTarget], 0x00FF00)If UBound($aRemaining) = 1 Then
[/autoit] [autoit][/autoit] [autoit]
$iCurTarget = $aRemaining[Random(0, UBound($aRemaining) - 1, 1)]
GUICtrlSetBkColor($aLights[$iCurTarget], 0xFF0000)
$aRemaining = 0
ElseIf UBound($aRemaining) > 1 Then
$iCurTarget = $aRemaining[Random(0, UBound($aRemaining) - 1, 1)]
GUICtrlSetBkColor($aLights[$iCurTarget], 0xFF0000)
_ArrayDelete($aRemaining, _ArrayInterpolationSearch($aRemaining, $iCurTarget))
ElseIf Not $aRemaining Then
_TicksToTime(Floor(TimerDiff($Timer)), $iH, $iM, $iS)
If Not $iH Then
MsgBox(64, "Info", "Du hast innerhalb von " & StringFormat("%02d:%02d", $iM, $iS) & " Sekunden alle Lichter ausgemacht.")
Else
MsgBox(16, "Error", "Mann, bist du langsam! Du hast ganze " & $iH & " Stunden gebraucht.")
EndIf
$bStart = False
EndIf
EndIf
EndSwitch
WEndFunc _Reset()
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
Dim $aRemaining[40]
For $i = 0 To 39
GUICtrlSetState($aLights[$i], $GUI_ENABLE)
GUICtrlSetBkColor($aLights[$i], 0x505050)
$aRemaining[$i] = $i
Next
EndFunc ;==>_ResetFunc _ArrayInterpolationSearch(ByRef $a_Search, $iValue, $iStart = 0, $iEnd = -1)
[/autoit] [autoit][/autoit] [autoit]
; Author: name22 (http://www.autoit.de)
If $iEnd = -1 Then $iEnd = UBound($a_Search) - 1
If $a_Search[$iStart] > $iValue Then Return SetError(2, 0, -1)
If $a_Search[$iEnd] < $iValue Then Return SetError(3, 0, -1)While $iValue >= $a_Search[$iStart] And $iValue <= $a_Search[$iEnd]
[/autoit] [autoit][/autoit] [autoit]
$iPotentialPos = Round($iStart + (($iValue - $a_Search[$iStart]) / ($a_Search[$iEnd] - $a_Search[$iStart])) * ($iEnd - $iStart))
Select
Case $a_Search[$iPotentialPos] = $iValue
Return $iPotentialPos
Case $a_Search[$iPotentialPos] > $iValue
$iEnd = $iPotentialPos - 1
Case $a_Search[$iPotentialPos] < $iValue
$iStart = $iPotentialPos + 1
EndSelect
WEndReturn SetError(1, 0, -1)
[/autoit]
EndFunc ;==>_ArrayInterpolationSearch -
Ja, aber wenn er Probleme hat _StringEncrypt zu verstehen würde ich es erstmal bei dieser Funktion belassen ^^.
-
Ach so ^^. Ja das sieht eigenartig aus. Man könnte ja den "Glow" in der Nähe des Randes verkleinern oder Das ganze Logo verkleinern...
-
Zitat
Übrigens sieht der Glow-Effekt beim großen Icon etwas komisch aus, da er an den Rändern von Icon abgeschnitten ist.
Wenn man das Bild aus dem Icon extrahiert ohne die Masken des Icons zu berücksichtigen sieht das komisch aus. Oder wie meinst du das? -
So kannst du deinen Text mit _StringEncrypt verschlüsseln:
[autoit]$sCrypt = _StringEncrypt(1, $sText, '3!7FmTI>:N]@pv{+>')
[/autoit]
Welches Passwort du nimmst ist relativ unwichtig. Den Rückgabewert speicherst du in einer .ini und falls du den Text dann aus der .ini wieder ausliest und entschlüsseln willst, verwendest du _StringEncrypt mit dem selben Passwort aber einer 0 als ersten Parameter. Das Passwort wird im Script gespeichert, das ist nicht sehr sicher, aber definitiv sicherer als die Daten einfach so in der .ini zu speichern.
-
Zitat
ja aber jetzt ist das der umgekehrte fall das er den Wert 1 nicht mehr an nimmt und sagt das es nicht nötig ist wobei es immer noch auf 0 steht.
Öhm. Was?
Sorry aber ich kann dir gerade nicht so ganz folgen... Sag doch mal wann der Schlüssel auf welchen Wert gesetzt werden soll. -
Funktioniert das hier?
[autoit]RegRead("HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System", "DisableTaskMgr")
[/autoit]
If @error Then
RegWrite ("HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System", "DisableTaskMgr","REG_DWORD","0")
MsgBox(0,'','wurde erstellt')
Else
MsgBox(0,'','nicht nötig')
EndIf -
Überprüfe doch einfach @error nach dem Aufruf von RegRead, dann weißt du ob der Schlüssel existiert oder nicht.

-
Genau. Damit dürfte dann ja das Problem gelöst sein und du könntest dann auch das Präfix des Threads auf gelöst stellen.

-
Kopf -> Tisch... Ups, da hab ich wohl was verwechselt :pinch: .
-
Verwende doch einfach die "Win" Funktionen mit dem Handle statt dem Titel des Fensters ;). Also so:
[autoit]WinMove($hWnd, "", 50, 50)
[/autoit] -
Das Beispiel aus der Hilfe zu _StringEncrypt dürfte doch alles erklären, oder?
-
Zitat
Kann mir jemand helfen?
Nur wenn du mit diesem Doubleposting aufhörst.
Wie meinst du das? Klick einfach auf das Fadenkreuz und ziehe die Maus mit gedrückter linker Maustaste auf das gewünschte Control. Dann bekommst du alle Infos aufgelistet. -
Zitat
und wie kann ich Classname und instance eines Fensters herausfinden?
Mit dem AutoItWindowInfo Tool kannst du die eines Controls herausfinden ;). Ein Fenster hat keine Instance... Ich rede von Controls, und nicht deren Fenstern. -
Zitat
Weiß jemand woran das liegt???
Nicht jedes Fenster hat ein Control Mit dem Classname Edit und der Instance 1 ;). -
[autoit]Zitat2.: Wie verschlüssle ich Daten, die ich in einer ".ini" Datei speichere, und mache sie nachher aber für AutoIt wieder lesbar? Es geht um eine Art Loginscript.
_StringEncrypt
[/autoit]
Oder die Funktionen der Crypt.au3.