Erstelle doch einfach die Batch aus deinem Skript heraus und rufe sie dann entsprechend auf!
Gruß,
UEZ
Erstelle doch einfach die Batch aus deinem Skript heraus und rufe sie dann entsprechend auf!
Gruß,
UEZ
Dachte mir schon, dass die Frage kommen würde. Deshalb hatte ich breits den Code im Beitrag #9 angepasst.
Gruß,
UEZ ![]()
Probiere es mal damit:
[autoit]
$Var1 = 1
$Var2 = 2
$Var3 = 3
$Var4 = 4
$Var5 = 6
$i = 2
$previous = Execute("$Var1")
Do
$current = Execute("$Var" & $i)
If $current <> $previous + 1 Then
MsgBox(16, "Fehler", "Keine Folge")
Exit
Else
$previous = $current
EndIf
$i += 1
Until Not IsDeclared("Var" & $i)
MsgBox(64, "Information", "Ist eine Folge!")
[/autoit]Macht so keinen Sinn eine Zahlenfolge zu prüfen, aber egal...
Gruß,
UEZ
ja aber rausgenommen hast sie auchnich nachdem $hImageS mitlerweile schon weiter oben deklariert wird ;D.
Das kannst du schön selbst machen! ![]()
Zitat
gibts dafür auch eine elegante lösung wenn die GUI größer wäre als das bild?mfg sgtigram
Das verstehe ich nicht oder meinst du, wenn das Bild größer als der Desktop ist?
Gruß,
UEZ
Dann musst du anstelle eines Buttons ein Picture Control erstellen.
Gruß,
UEZ
danke für die schnelle antwort. hat geklappt auch wenn ich bei deiner korrektur noch das
[autoit]Global $hImageS,$hGraphicS
[/autoit]rausnehmen musste
schade ist auch das diese lösung nur funktioniert wenn die grafik so groß wie die ganze gui ist
mfg
sgtigram
Nicht die Grafik ist so groß wie die GUI, sondern genau umgekehrt - die GUI ist so groß wie die Grafik.
Die Zeile Global $hImageS,$hGraphicS habe ich nicht hinzugefügt, sondern so gelassen, wie du es gepostest hattest. ![]()
Gruß,
UEZ
Probiere es mal damit:
#include <GDIPlus.au3>
#include <WindowsConstants.au3>
_GDIPlus_Startup()
_splatter()
Func _splatter()
$hImageS = _GDIPlus_ImageLoadFromFile("blut.png")
$iW = _GDIPlus_ImageGetWidth($hImageS)
$iH = _GDIPlus_ImageGetHeight($hImageS)
$GUIsplatter = GUICreate("",$iW, $iH,0,@DesktopHeight-$iH,$WS_POPUP,BitOR($WS_EX_LAYERED,$WS_EX_TOPMOST))
;~ GUISetBkColor(0xABCDEF)
GUISetState(@SW_SHOW)
;~ Sleep(1000)
;~ _WinAPI_SetLayeredWindowAttributes($GUIsplatter, 0xABCDEF, 255)
Global $hImageS, $hGraphicS
$hGraphicS = _GDIPlus_GraphicsCreateFromHWND($GUIsplatter)
$splatterBlut = _GDIPlus_GraphicsDrawImage($hGraphicS,$hImageS,0,0)
SetTransparentBitmap($GUIsplatter, $hImageS)
sleep(5000)
_GDIPlus_GraphicsDispose($hGraphicS)
_GDIPlus_ImageDispose($hImageS)
GUIDelete($GUIsplatter)
EndFunc
Func SetTransparentBitmap($hGUI, $hImage, $iOpacity = 0xFF)
Local $hScrDC, $hMemDC, $hBitmap, $hOld, $pSize, $tSize, $pSource, $tSource, $pBlend, $tBlend
$hScrDC = _WinAPI_GetDC(0)
$hMemDC = _WinAPI_CreateCompatibleDC($hScrDC)
$hBitmap = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hImage)
$hOld = _WinAPI_SelectObject($hMemDC, $hBitmap)
$tSize = DllStructCreate($tagSIZE)
$pSize = DllStructGetPtr($tSize)
DllStructSetData($tSize, "X", _GDIPlus_ImageGetWidth($hImage))
DllStructSetData($tSize, "Y", _GDIPlus_ImageGetHeight($hImage))
$tSource = DllStructCreate($tagPOINT)
$pSource = DllStructGetPtr($tSource)
$tBlend = DllStructCreate($tagBLENDFUNCTION)
$pBlend = DllStructGetPtr($tBlend)
DllStructSetData($tBlend, "Alpha", $iOpacity)
DllStructSetData($tBlend, "Format", 1)
_WinAPI_UpdateLayeredWindow($hGUI, $hMemDC, 0, $pSize, $hMemDC, $pSource, 0, $pBlend, $ULW_ALPHA)
_WinAPI_ReleaseDC(0, $hScrDC)
_WinAPI_SelectObject($hMemDC, $hOld)
_WinAPI_DeleteObject($hBitmap)
_WinAPI_DeleteDC($hMemDC)
EndFunc ;==>SetTransparentBitmap
Gruß,
UEZ
Oder so:
[autoit]
$text = " Mir geht es gut "
$neu = StringRegExpReplace($text, ".*(geht).*", "$1")
MsgBox(0, "Test", $neu)
Gruß,
UEZ
Habe den Code vom Beitrag#9 aktualisiert.
Gruß,
UEZ
Das habe ich jetzt auch bemerkt, dachte nur, dass jetzt was falsch läuft!
Jetzt kann man ja auch Hex($x, 16) darstellen...
Danke für die Aufklärung!
Gruß,
UEZ
In den früheren Versionen spuckte AutoIt immer 01 aus.
[autoit]
Global $hGUI, $red, $green, $blue, $v
$hGUI = GUICreate("Test")
GUISetState()
Do
$red = Hex(0xFF * (Cos($v * 1.20) + 1) / 2, 2)
$green = Hex(0xFF * (Sin($v * 1.10) + 1) / 2, 2)
$blue = Hex(0xFF * (Sin($v * 1.00) + 1) / 2, 2)
GUISetBkColor("0x" & $red & $green & $blue, $hGUI)
$v += 0.1
Until GUIGetMsg() = -3
In den älteren Versionen ist der Übergang so wie er sein sollte. Nun flimmert's gewaltig, da die Fließkomma Zahlen jetzt anders dargestellt werden.
Gruß,
UEZ
Scheint immer noch einen Bug zu haben:
[autoit]
ConsoleWrite(Hex(1.2, 2) & @LF)
Oder?
Die ganzen Farbenspielereien in GDI+ flimmern jetzt... ![]()
Br,
UEZ
Schaue mal hier nach: http://www.autoitscript.com/forum/topic/13…-and-office-key
Gruß,
UEZ
Hilft dir das hier weiter:
#include <GUIConstantsEx.au3>
#include <GuiButton.au3>
#include <WindowsConstants.au3>
#include <GDIPlus.au3>
;~ #Include <WinAPI.au3>
#include <IE.au3>
Global $hGUI, $hImage, $hGraphic, $hImage
Global Const $SC_DRAGMOVE = 0xF012
Global $iImagePfad = @ScriptDir & "\Bilder\", $i
Global Const $IMAGE_BITMAP = 0
Global Const $STM_SETIMAGE = 0x0172
_GDIPlus_StartUp()
$hImage = _GDIPlus_ImageLoadFromFile($iImagePfad & "background.png")
$hImage_Pic1 = _GDIPlus_ImageLoadFromFile($iImagePfad & "start_2.png")
$hImage_Pic2 = _GDIPlus_ImageLoadFromFile($iImagePfad & "start_1.png")
$iWidth = _GDIPlus_ImageGetWidth($hImage)
$iHeight = _GDIPlus_ImageGetHeight($hImage)
$hHBMP = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hImage)
$hHBMP_Pic1 = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hImage_Pic1)
$hHBMP_Pic2 = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hImage_Pic2)
;~ $oIE=_IECreateEmbedded()
[/autoit] [autoit][/autoit] [autoit]; Create GUI
$hGUI = GUICreate("Test", $iWidth, $iHeight, -1, -1, $WS_POPUP, $WS_EX_LAYERED + $WS_EX_TOPMOST)
$idBackgroundPic = GUICtrlCreatePic("", 0, 0, $iWidth, $iHeight)
GUICtrlSetState(-1, $GUI_DISABLE)
$idPic = GUICtrlCreatePic("",50,50,126,38)
GUISetState(@SW_SHOW, $hGUI)
_WinAPI_DeleteObject(GUICtrlSendMsg($idBackgroundPic, $STM_SETIMAGE, $IMAGE_BITMAP, $hHBMP))
SetTransparentBitmap($hGUI, $hImage)
[/autoit] [autoit][/autoit] [autoit];~ GUICtrlCreatePic ($iImagePfad & "\start_1.jpg",50,50,143,33)
[/autoit] [autoit][/autoit] [autoit];~ GUICtrlCreateObj ($oIE,50,50,100,100)
;~ _IENavigate($oIE, 'http://google.de')
GUIRegisterMsg($WM_LBUTTONDOWN, "_WM_LBUTTONDOWN")
[/autoit] [autoit][/autoit] [autoit]$isHover = False
$mem = True
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
ExitLoop
Case $idPic
MsgBox(262144, "Test", "Test")
EndSwitch
$aCoord = GUIGetCursorInfo($hGUI)
If $aCoord[4] = $idPic Then
If Not $isHover Then
GUICtrlSendMsg($idPic, $STM_SETIMAGE, $IMAGE_BITMAP, $hHBMP_Pic1)
$isHover = True
$mem = True
EndIf
Else
If $mem Then
GUICtrlSendMsg($idPic, $STM_SETIMAGE, $IMAGE_BITMAP, $hHBMP_Pic2)
$mem = False
$isHover = False
EndIf
EndIf
WEnd
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]; Clean up resources
_GDIPlus_ImageDispose($hImage)
_GDIPlus_ImageDispose($hImage_Pic1)
_GDIPlus_ImageDispose($hImage_Pic2)
_WinAPI_DeleteObject($hHBMP)
_WinAPI_DeleteObject($hHBMP_Pic1)
_WinAPI_DeleteObject($hHBMP_Pic2)
_GDIPlus_ShutDown()
Exit
Func _WM_LBUTTONDOWN($hWnd, $iMsg, $wParam, $lParam)
_SendMessage($hGUI, $WM_SYSCOMMAND, $SC_DRAGMOVE, 0)
EndFunc ;==>_WM_LBUTTONDOWN
Func SetTransparentBitmap($hGUI, $hImage, $iOpacity = 0xFF)
Local $hScrDC, $hMemDC, $hBitmap, $hOld, $pSize, $tSize, $pSource, $tSource, $pBlend, $tBlend
$hScrDC = _WinAPI_GetDC(0)
$hMemDC = _WinAPI_CreateCompatibleDC($hScrDC)
$hBitmap = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hImage)
$hOld = _WinAPI_SelectObject($hMemDC, $hBitmap)
$tSize = DllStructCreate($tagSIZE)
$pSize = DllStructGetPtr($tSize)
DllStructSetData($tSize, "X", _GDIPlus_ImageGetWidth($hImage))
DllStructSetData($tSize, "Y", _GDIPlus_ImageGetHeight($hImage))
$tSource = DllStructCreate($tagPOINT)
$pSource = DllStructGetPtr($tSource)
$tBlend = DllStructCreate($tagBLENDFUNCTION)
$pBlend = DllStructGetPtr($tBlend)
DllStructSetData($tBlend, "Alpha", $iOpacity)
DllStructSetData($tBlend, "Format", 1)
_WinAPI_UpdateLayeredWindow($hGUI, 0, 0, $pSize, $hMemDC, $pSource, 0, $pBlend, $ULW_ALPHA)
_WinAPI_ReleaseDC(0, $hScrDC)
_WinAPI_SelectObject($hMemDC, $hOld)
_WinAPI_DeleteObject($hBitmap)
_WinAPI_DeleteDC($hMemDC)
EndFunc ;==>SetBitmap
Gruß,
UEZ
Schaue mal hier rein: http://www.autoitscript.com/forum/topic/12…in-tab-control/
Gruß,
UEZ
Probiere es mal damit:
[autoit]
$date = FileRead("Test.csv")
$k = StringSplit($date, ";", 2)
Global $new
For $i = 0 to UBound($k) - 1
If Mod($i + 1, 2) Then
$k[$i] = StringReplace(StringStripCR($k[$i]), @LF, "")
Else
$k[$i] = StringReplace(StringStripCR($k[$i]), @LF, " ")
$new &= $k[$i - 1] & ";" & StringStripWS($k[$i], 3) & ";" & @CRLF
EndIf
Next
$hFile = FileOpen("New.csv", 2)
FileWrite($hFile, $new)
FileClose($hFile)
Run("Notepad.exe" & " New.csv")
Gruß,
UEZ