Gibt das einen weiteren BOT-Versuch ![]()
3/8 Threads von dir wurden bereits wegen BOTens ge-CLOSED. 1 wegen Spamens/Sinnlosigkeit, die anderen sind anscheinend durchgerutscht.
Ich votiere dafür auch diesen zu CLOSEn
mfg (Auto)Bert
Gibt das einen weiteren BOT-Versuch ![]()
3/8 Threads von dir wurden bereits wegen BOTens ge-CLOSED. 1 wegen Spamens/Sinnlosigkeit, die anderen sind anscheinend durchgerutscht.
Ich votiere dafür auch diesen zu CLOSEn
mfg (Auto)Bert
wo ist das Problem?
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("2 Inputs", 170, 58, 192, 124)
$Input1 = GUICtrlCreateInput("Input1", 24, 8, 121, 21)
$Input2 = GUICtrlCreateInput("Input2", 24, 32, 121, 21)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
case $Input1
MsgBox(0,"","Input1")
case $Input2
MsgBox(0,"","Input2")
EndSwitch
WEnd
mfg (Auto)Bert
Hallo com,
anbei ein kleines Skript, mit dem ich mir meine eigenen Bilder betrachte. Bilder können
Das Seitenverhältnis der Bilder wird berücksichtigt. Die Bilder werden
Getestet habe ich das Programm mit
unter Windows XP SP3
[autoit]#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Outfile=BMP-Viewer.exe
#AutoIt3Wrapper_UseUpx=n
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#cs -----------------------------------------------------------------------------------------------------------------------
AutoIt Version: 3.3.6.1
Author: AutoBert: http://www.autoit.de/index.php?page=Thread&threadID=21667
Skriptbeispiel für den Umgang mit FileOpenDialog, GUICtrlCreateListView, GUICtrlCreateListViewItem,
_GUICtrlListView_RegisterSortCallBack, _GUICtrlListView_SortItems
_PathSplit, FileGetTime, FileGetSize, GUIRegisterMsg speziell für das Event $GUI_EVENT_DROPPED
_GUICtrlPic_Create aus GuiCtrlPic von Großvater https://autoit.de/index.php?page…ICtrlPic_Create
Dank dieser Funktion können auch PNG -Bilder prblemls angezeigt werden.
#ce -------------------------------------------------------------------------------------------------------------------------
#include <ListViewConstants.au3>
#include <WindowsConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <GuiListView.au3>
#include <File.au3>
#include <array.au3>
#include "GUICtrlPic.au3"
#include <GDIPlus.au3>
Opt('MustDeclareVars', 1)
[/autoit] [autoit][/autoit] [autoit]Global $msg, $message, $var, $aFiles, $idfrmMain, $sSourcePath, $aItem, $dtCreated, $dtLast, $iSize
Global $szDrive, $szDir, $szFName, $szExt, $hPic = -99
Global $aDropFiles[1], $WM_DROPFILES = 0x233
$idfrmMain = GUICreate("BMP-, GIF- PNG, & JPG-Viewer", 924, 550, -1, -1, -1, $WS_EX_ACCEPTFILES)
Local $idfilemenu = GUICtrlCreateMenu("&Datei")
Local $idfileitem = GUICtrlCreateMenuItem("Öffnen", $idfilemenu)
GUICtrlSetState(-1, $GUI_DEFBUTTON)
Local $idexititem = GUICtrlCreateMenuItem("Beenden", $idfilemenu)
Local $idLV_Files = GUICtrlCreateListView("Name: |Pfad |erstellt am |letzte Änderung |Grösse KB", 519, 5, 400, 490, BitOR($LVS_SHOWSELALWAYS, $LVS_REPORT))
GUICtrlSetState(-1, $GUI_DROPACCEPTED)
Local $idLblXY =GUICtrlCreateLabel("",5,515,500,20)
Local $idbtnShow = GUICtrlCreateButton("&Zeige Bild", 519, 500, 140, 25)
Local $idClearLV = GUICtrlCreateButton("&Listview &leeren", 669, 500, 140, 25)
GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")
GUIRegisterMsg($WM_DROPFILES, "WM_DROPFILES_FUNC")
_GUICtrlListView_RegisterSortCallBack($idLV_Files)
GUISetState()
While 1
$msg = GUIGetMsg()
Switch $msg
Case $GUI_EVENT_DROPPED
_FilesDropped()
Case $idfileitem
$message = "Um mehrere Dateien auszuwählen, ist die Strg-Taste oder die Shift-Taste zu drücken."
[/autoit] [autoit][/autoit] [autoit]$var = FileOpenDialog($message, @MyDocumentsDir & "", "Bilder (*.jpg;*.bmp;*.gif;*.png)", 1 + 4)
If @error Then
MsgBox(4096, "", "Keine Datei(en) ausgewählt")
Else
_GUICtrlListView_BeginUpdate($idLV_Files)
$aFiles = StringSplit($var, "|")
If $aFiles[0] > 1 Then ;trifft nur bei Mehrfachauwal zu
;$aFiles[0] enthält Anzahl der Strings
;$aFiles[1] enthält den Pfad für alle ausgewählten Bilder
;$aFiles[2] enthält 1. Bild
;$aFiles[n+1] enthält n. Bild
;Rückgabe des Fileopenialogs in einzzenlne Strings für Array splitten
;_ArrayDisplay($aFiles) ;Array anzeigen nur zu Verständnisuwecken evtl. aktivieren
For $i = 2 To $aFiles[0]
;ConsoleWrite($aFiles[$i] & @CRLF)
$dtCreated = FileGetTime($aFiles[1] & "\" & $aFiles[$i], 1, 1)
$dtLast = FileGetTime($aFiles[1] & "\" & $aFiles[$i], 2, 1)
$iSize = Round(FileGetSize($aFiles[1] & "\" & $aFiles[$i]) / 1024, 0)
GUICtrlCreateListViewItem($aFiles[$i] & "|" & $aFiles[1] & "|" & _FormatDate($dtCreated) & "|" & _FormatDate($dtLast) & "|" & $iSize, $idLV_Files)
Next
Else ;nur eine Datei ausgewählt
;ConsoleWrite($aFiles[1] & @CRLF)
_PathSplit($aFiles[1], $szDrive, $szDir, $szFName, $szExt)
$dtCreated = FileGetTime($aFiles[1], 1, 1)
$dtLast = FileGetTime($aFiles[1], 2, 1)
$iSize = Round(FileGetSize($aFiles[1] / 1024), 0)
GUICtrlCreateListViewItem($szFName & $szExt & "|" & $szDrive & $szDir & "|" & _FormatDate($dtCreated) & "|" & _FormatDate($dtLast) & "|" & $iSize, $idLV_Files)
EndIf
_GUICtrlListView_SetColumnWidth($idLV_Files, 0, $LVSCW_AUTOSIZE)
;setzt die 1 Spalte auf die benötigte Breite des längsten Eintrags
_GUICtrlListView_SetColumnWidth($idLV_Files, 1, 0) ;zweite Spalte versteckt
_GUICtrlListView_EndUpdate($idLV_Files)
EndIf
Case $idClearLV
_GUICtrlListView_DeleteAllItems($idLV_Files)
Case $idbtnShow
$aItem = _GUICtrlListView_GetItemTextArray($idLV_Files)
_ShowPic($aItem)
Case $GUI_EVENT_CLOSE, $idexititem
_GUICtrlListView_UnRegisterSortCallBack($idLV_Files)
Exit
EndSwitch
WEnd
Func _FormatDate($sDT)
;ConsoleWrite($sDT & @CRLF)
Return StringMid($sDT, 7, 2) & "." & StringMid($sDT, 5, 2) & "." & StringLeft($sDT, 4) & " " & StringMid($sDT, 9, 2) & ":" & StringMid($sDT, 11, 2)
EndFunc ;==>_FormatDate
Func _ShowPic($aItem)
Local $sImageName = $aItem[2] & "\" & $aItem[1]
;$aItem[0] enthält Anzahl der Spalten [$aIem[1] die 1. Spalte usw.
;_ArrayDisplay($aItem) nur zu Verständnisuwecken evtl. aktivieren
;ConsoleWrite("Pfad zur Datei:" & $aItem[2] & "\" & $aItem[1] & @CRLF) ;nur zu Verständnisuwecken evtl. deaktivieren
_GDIPlus_Startup()
Local $hImage = _GDIPlus_ImageLoadFromFile($sImageName)
Local $iX = _GDIPlus_ImageGetWidth($hImage)
Local $iY = _GDIPlus_ImageGetHeight($hImage)
_GDIPlus_ImageDispose($hImage)
_GDIPlus_Shutdown()
Local $iRatio = $iX / $iY
GUICtrlSetData($idLblXY,StringFormat("Original-Grösse Breite: %6s Höhe: %6s ", $iX, $iY))
;ConsoleWrite("Orig.: " & $iX & " " & $iY & " " & $iRatio & @CRLF)
If $iRatio >= 1 Then
$iX = 500
$iY = $iX / $iRatio
Else
$iY = 300
$iX = $iY * $iRatio
EndIf
;ConsoleWrite("Neu: " & $iX & " " & $iY & " " & $iRatio & @CRLF)
If $hPic <> -99 Then GUICtrlDelete($hPic)
$hPic = _GUICtrlPic_Create($sImageName, 5, 5, $iX, $iY, $SS_CENTERIMAGE, Default)
EndFunc ;==>_ShowPic
#Region ;Drag and Drop und Doppelklick
Func WM_DROPFILES_FUNC($hWnd, $msgID, $wParam, $lParam)
;ConsoleWrite("WM_DropFiles_Func " & @CRLF)
Local $nSize, $pFileName
Local $nAmt = DllCall("shell32.dll", "int", "DragQueryFile", "hwnd", $wParam, "int", 0xFFFFFFFF, "ptr", 0, "int", 255)
For $i = 0 To $nAmt[0] - 1
$nSize = DllCall("shell32.dll", "int", "DragQueryFile", "hwnd", $wParam, "int", $i, "ptr", 0, "int", 0)
$nSize = $nSize[0] + 1
$pFileName = DllStructCreate("char[" & $nSize & "]")
DllCall("shell32.dll", "int", "DragQueryFile", "hwnd", $wParam, "int", $i, "ptr", DllStructGetPtr($pFileName), "int", $nSize)
ReDim $aDropFiles[$i + 1]
$aDropFiles[$i] = DllStructGetData($pFileName, 1)
$pFileName = 0
Next
EndFunc ;==>WM_DROPFILES_FUNC
Func _FilesDropped()
Local $szDrive, $szDir, $szFName, $szExt, $split, $sImageName, $sPath
_GUICtrlListView_BeginUpdate($idLV_Files)
;_ArrayDisplay($aDropFiles)
For $i = 0 To UBound($aDropFiles) - 1
$split = _PathSplit($aDropFiles[$i], $szDrive, $szDir, $szFName, $szExt)
$szExt = StringUpper($szExt)
;;;Consolewrite($aDropFiles[$i] & ", " & $szExt & @CRLF)
Switch $szExt
Case ".JPG", ".BMP", ".GIF", ".PNG"
$sImageName = $szFName & $szExt
$sPath = $szDrive & $szDir
;;ConsoleWrite($sPath & $sImageName & @CRLF)
$dtCreated = FileGetTime($sPath & $sImageName, 1, 1)
$dtLast = FileGetTime($sPath & $sImageName, 2, 1)
$iSize = Round(FileGetSize($sPath & $sImageName) / 1024, 0)
GUICtrlCreateListViewItem($sImageName & "|" & $sPath & "|" & _FormatDate($dtCreated) & " |" & _FormatDate($dtLast) & " |" & $iSize, $idLV_Files)
EndSwitch
Next
_GUICtrlListView_SetColumnWidth($idLV_Files, 0, $LVSCW_AUTOSIZE)
;setzt die 1 Spalte auf die benötigte Breite des längsten Eintrags
_GUICtrlListView_SetColumnWidth($idLV_Files, 1, 0) ;zweite Spalte versteckt
_GUICtrlListView_EndUpdate($idLV_Files)
EndFunc ;==>_FilesDropped
Func WM_NOTIFY($hWnd, $msgID, $wParam, $lParam)
Local $tagNMHDR, $event, $hwndFrom, $code, $aItem
$tagNMHDR = DllStructCreate("int;int;int", $lParam)
If @error Then Return 0
$code = DllStructGetData($tagNMHDR, 3)
ConsoleWrite($code & @TAB & $LVN_COLUMNCLICK & @CRLF)
If $wParam = $idLV_Files Then
Switch $code
Case - 3
If _GUICtrlListView_GetSelectedCount($idLV_Files) > 0 Then
$aItem = _GUICtrlListView_GetItemTextArray($idLV_Files)
;Consolewrite($aItem[1] & ", " & $aItem[3] & @CRLF)
_ShowPic($aItem)
EndIf
Case $LVN_COLUMNCLICK
_GUICtrlListView_SortItems($idLV_Files, GUICtrlGetState($idLV_Files))
EndSwitch
EndIf
Return $GUI_RUNDEFMSG
EndFunc ;==>WM_NOTIFY
#EndRegion ;Drag and Drop und Doppelklick
da es aus Beispielen der Hilfe zusammenkopiert ist, könnt ihr es selbstverständlich komplett oder in Teile benutzen,
Hir noch ein ScreenShot:
Edit: Erweitert mit Datei-Infos zu Erstellung,Änderung und Grösse
Edit2: PNG werden jetzt auch mit angezeigt, ausserdem sind die Listvieweinträge jetzt sortierbar durch Spaltenklick
mfg (Auto)Bert
Herzlich willkommen im Forum und viel Spass mit/auf AutoIt(.de).
Hier kannst du dir die Hilfe herunterladen.
Hier gibt es ein AutoIt-Tutorial: http://wiki.autoit.de/wiki/index.php/TutorialSehr hilfreich ist auch das Buch von peethebee
mfg (Auto)Bert
Zu 1) ich will erreichen das wenn sich in ein pixel in einem fenster veraendert bestimmte tasten gedrueckt werden oder woerter
Das hört sich doch nach einem BOT-Versuch an und widerspricht den Forenregeln.
MoD bitte closen
danke (Auto)Bert
Hallo Schumi,
stell doch bitte dein aktuelles komplette Skript und die INI dazu ein,
mfg (Auto)Bert
Hallo Sora White Dragon,
mir ist keine andere Methode als
[autoit]regdelete
[/autoit]bekannt. Vielleicht hattest du ja einen Tippfehler?
mfg (Auto)Bert
Während es in der Registry den Eintrag löscht, soll es auch den Zeile in der Listview löschen (dazu viel mir auch noch nichts ein.)
Zitat von HilfeAlles anzeigen_GUICtrlListView_DeleteItem
Löscht ein Item eines ListView-Controls
#Include <GuiListView.au3>
_GUICtrlListView_DeleteItem($hWnd, $iIndex)
Parameter
$hWnd ID/Handle des Controls
$iIndex 0-basierender Index des zu löschenden ListView Items
Rückgabewert
Erfolg: True
Fehler: False
Bemerkungen
Falls diese Funktion mit einem Listview, welches durch die Funktion GUICtrlCreateListView erstellt wurde, angewendet wird, muss der Befehl _GUICtrlListView_DeleteItem(GUICtrlGetHandle($ListView), iIndex) heißen, da sonst eine Fehlermeldung erscheint. ($ListView ist die Variable wie das Listview heißt)
oder auch
_GUICtrlListView_DeleteItemsSelected
[/autoit][autoit]Noch ein Problem wäre: Ich weiss nicht wie ich nur 2 Zellen machen kann (Name, Pfad). Pfad ist einfach zu kurz und man sieht ihn nicht vollständig außer wenn man ihn länger zieht.
_GUICtrlListView_SetColumnWidth
[/autoit]mfg (Auto)Bert
Ja aber wo bau ich die variable bei for ein?
und ich wollte noch fragen wie ich per Iniwrite eine checkbox mache mit passwort speicher
Tut mir leid das ich so viel frage
Bin noch am lernen
Du solltest vor allem lernen die Hilfe zu lesen:
ZitatFor <variable> = <start> To <stop> [Step <stepval>]
statements
...
Next
mfg (Auto)Bert
Gibt das einen weiteren BOT-Versuch ![]()
3. Threads von dir wurden bereits ge-CLOSED und ich votiere dafür auch diesen zu CLOSEn
Aber die GUI ist noch an den Rändern zusehen, wo es transperent ist.
das ist doch Sinn und Zweck, dass die darunterliegende Gui zu sehen ist
Sry.. So jetzt habe ich in GIF geändert und es hat so weit funkt.
schön, dann ist dein Problem ja gelöst, schön wäre es allerdings auch wenn du den Thread auf gelöst setzt. Einfach 1. Beitrag bearbeiten, Präfix (nähe Überschrift) ändern und speichern (absenden)
mfg (Auto)Bert
Hallo inferior,
schau dir https://autoit.de/index.php?page…4341#post164341 an, ich denke dass er dir weiterhilft.
mfg (Auto)Bert
Auch weil ich die Funktion
_GUICtrlListView_AddArray
Nicht richtig verstehe, jedenfalls nicht in dem Zusammenhang.
ich habe einmal ein Beispiel von mir umgeschrieben (Laden klicken)
#include <GUIConstantsEx.au3>
#include <GUIConstants.au3>
#include <WindowsConstants.au3>
#include <GuiListView.au3>
#include <ListViewConstants.au3>
#include <File.au3>
;#include <array.au3>
[/autoit] [autoit][/autoit] [autoit]Local $tZeit, $s1, $s2
[/autoit] [autoit][/autoit] [autoit]$main = GUICreate("Test Drag & Drop from LV1 to LV2 DblClick in LV1 with ContextMenu in LV1 (copies to ClipBoard", 600, 400)
$listview = GUICtrlCreateListView("Gruppe1| BlubText", 10, 10, 200, 100, BitOR($LVS_REPORT, $LVS_SHOWSELALWAYS), BitOR($LVS_EX_FULLROWSELECT, $WS_EX_CLIENTEDGE))
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_LV_ALTERNATE) ; legt fest, dass Hintergrundfarbe wechselt
GUICtrlSetBkColor(-1, 0xE6E6FA) ; Hintergrundfarbe 1
$listview2 = GUICtrlCreateListView("Gruppe2 | BlubText", 230, 10, 200, 100, BitOR($LVS_REPORT, $LVS_SHOWSELALWAYS), BitOR($LVS_EX_FULLROWSELECT, $WS_EX_CLIENTEDGE))
GUICtrlSetState($listview2, $GUI_DROPACCEPTED)
$hbtnInfo = GUICtrlCreateButton("Info", 10, 120, 100, 20)
$hbtnSave = GUICtrlCreateButton("&Speichern", 230, 120, 100, 20)
$hbtnLoad = GUICtrlCreateButton("&Laden", 230, 150, 100, 20)
For $i = 1 To 9
$listitem = GUICtrlCreateListViewItem("test" & $i & " |Blub " & Random(1, 9), $listview)
If $i = 5 Then GUICtrlSetFont($listitem, 14, 800)
GUICtrlSetBkColor(-1, 0xcccccc) ; Hintergrundfarbe 2
Next
$idContextmenu = GUICtrlCreateContextMenu($listview)
$idClipmenu = GUICtrlCreateMenuItem("Selektierte ins ClipBoard", $idContextmenu)
$idAllClipmenu = GUICtrlCreateMenuItem("Alle aus Splate 2 ins ClipBoard", $idContextmenu)
$idDragmenu = GUICtrlCreateMenuItem("In LV 2", $idContextmenu)
GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY") ;<=========================================== Bemachrichtigung Doppelklick
GUISetState()
$first = True
While 1
$msg = GUIGetMsg()
Switch $msg
Case $GUI_EVENT_DROPPED, $idDragmenu
$ar = _GUICtrlListView_GetSelectedIndices($listview, True)
;_ArrayDisplay($ar)
For $i = 1 To $ar[0]
$sItem = _GUICtrlListView_GetItemTextString($listview, $ar[$i])
GUICtrlCreateListViewItem($sItem, $listview2)
Next
Case $hbtnInfo
$Wert = _GUICtrlListView_GetItemTextArray($listview)
If $Wert[2] <> "" Then
MsgBox(0, "Eintrag für " & $Wert[1], "ist: " & $Wert[2])
Else
MsgBox(0, "", "Kein Eintrag ausgewählt")
EndIf
Case $hbtnSave
SaveLV(@ScriptDir & "\LV2.TXT")
Case $hbtnLoad
LoadLV(@ScriptDir & "\LV2.TXT")
Case $idClipmenu
$aItems = _GUICtrlListView_GetSelectedIndices($listview, True)
$sItemText = ""
For $i = 1 To $aItems[0]
;Schleifenbeginn 1 da $aItem[0] die Anzahl enhält
$sItemText &= _GUICtrlListView_GetItemTextString($listview, $aItems[$i]) & @CRLF
ConsoleWrite($sItemText & @CRLF)
Next ;= > weiter mit For
;ClipPut($sItemText & @CRLF)
Case $idAllClipmenu
$sToClip = ""
For $i = 0 To _GUICtrlListView_GetItemCount($listview)
$aItem = _GUICtrlListView_GetItemTextArray($listview, $i)
$sToClip &= $aItem[2] & @CRLF
Next
ClipPut($sToClip)
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
Func SaveLV($sFile)
Local $hFileOut, $aItem
$hFileOut = FileOpen($sFile, 2)
For $j = 0 To _GUICtrlListView_GetItemCount($listview2) - 1
$aItem = _GUICtrlListView_GetItemTextString($listview2, $j)
FileWriteLine($hFileOut, $aItem)
Next
FileClose($hFileOut)
EndFunc ;==>SaveLV
#cs
Func LoadLV($sFile)
Local $aItems
If FileExists($sFile) Then
_FileReadToArray($sFile, $aItems)
If IsArray($aItems) Then
_GUICtrlListView_DeleteAllItems($listview2)
;_ArrayDisplay($aItems)
For $j = 1 To $aItems[0]
GUICtrlCreateListViewItem($aItems[$j], $listview2)
Next
EndIf
EndIf
EndFunc ;==>LoadLV
#ce
Func LoadLV($sFile) ;zur Demo von _GUICtrlListView_AddArray
Local $aItems, $aItem, $aItemsNew
If FileExists($sFile) Then
_FileReadToArray($sFile, $aItems)
If IsArray($aItems) Then
_ArrayDelete($aItems, 0)
If IsArray($aItems) Then; könnte nach löschen von Eintrag 0 ja leer sein
Dim $aItemsNew[UBound($aItems)][2]
_GUICtrlListView_DeleteAllItems($listview2)
;_ArrayDisplay($aItems)
For $i = 0 to UBound($aItems) -1 ;Array mit Daten füllen
$aItem = StringSplit($aItems[$i],"|",2)
;ConsoleWrite($i & @CRLF)
$aItemsNew[$i][0] = $aItem[0]
$aItemsNew[$i][1] = $aItem[1]
Next
_ArrayDisplay($aItemsNew)
_GUICtrlListView_AddArray($listview2, $aItemsNew) ;<===== Array ins LV einfügen
EndIf
EndIf
EndIf
EndFunc ;==>LoadLV
Func WM_NOTIFY($hWnd, $MsgID, $wParam, $lParam)
Local $tagNMHDR, $event, $hwndFrom, $code
$tagNMHDR = DllStructCreate("int;int;int", $lParam)
If @error Then Return 0
$code = DllStructGetData($tagNMHDR, 3)
If $wParam = $listview Then
ConsoleWrite($code & @CRLF)
Switch $code
;case -2 ;Klick
Case -3 ;Doppelklick
If _GUICtrlListView_GetSelectedCount($listview) > 0 Then
For $i = 0 To _GUICtrlListView_GetItemCount($listview)
If _GUICtrlListView_GetItemSelected($listview, $i) Then
$aItem = _GUICtrlListView_GetItemTextArray($listview, $i)
MsgBox(0, "Doppel-Klick auf ", $aItem[1] & @CRLF & @CRLF & $aItem[2])
EndIf
Next
EndIf
EndSwitch
EndIf
Return $GUI_RUNDEFMSG
EndFunc ;==>WM_NOTIFY
Die dazu gehörige Textdatei:
mfg (Auto)Bert
Hallo XXlolimanxx,
zu 1.: hier ein Beispiel das du zu deinem Zweck umbauen kannst:
#include<WindowsConstants.au3>
#include<GUIConstantsEx.au3>
#include<StaticConstants.au3>
Global $pic = @SystemDir & '\oobe\images\nextover.jpg'
Global $pic2 = @SystemDir & '\oobe\images\nextdown.jpg'
$gui = GUICreate("Test", Default, Default, -1, -1)
$btnPic = GUICtrlCreatePic($pic, 30, 40, 24, 24,$SS_NOTIFY)
$btnPic2 = GUICtrlCreateButton("OK",-100,-100,1,1)
GUICtrlSetState($btnPic2,$GUI_FOCUS)
GUISetState()
While 1
$msg = GUIGetMsg()
Select
Case $msg = $btnPic
If _AnimButton($gui, $btnPic) Then MsgBox(0, '', 'click Pic')
GUICtrlSetState($btnPic2,$GUI_FOCUS)
Case $msg = $btnPic2
_AnimButton($gui, $btnPic)
MsgBox(0, '', 'auch ein click')
Case $msg = $GUI_EVENT_CLOSE
Exit
EndSelect
WEnd
;==================================================================================================
; Function Name: _AnimButton($IDgui, $IDbtn [, $delay=150])
; Description: animiert ein Pic, wie einen geklickten Button
; Parameter(s): $IDgui ID der GUI
; $IDbtn ID des Picture als Button
;==================================================================================================
Func _AnimButton($IDgui, $IDbtn)
Local $pos = ControlGetPos($IDgui, '', $IDbtn)
Local $pWin = WinGetPos(GUICtrlGetHandle($IDbtn))
ControlMove($IDgui, '', $IDbtn, $pos[0], $pos[1] + 1, $pos[2] - 1, $pos[3] - 1)
Sleep(10)
ControlMove($IDgui, '', $IDbtn, $pos[0], $pos[1] + 2, $pos[2] - 2, $pos[3] - 2)
Sleep(10)
ControlMove($IDgui, '', $IDbtn, $pos[0], $pos[1] + 3, $pos[2] - 3, $pos[3] - 3)
GUICtrlSetImage($IDbtn, $pic2)
;Local $tmpGui = GUICreate('', $pos[2], $pos[3], $pWin[0], $pWin[1], $WS_POPUP, $WS_EX_TOOLWINDOW)
;WinSetTrans($tmpGui, '', 120)
;GUISetState(@SW_SHOWNOACTIVATE, $tmpGui)
$return = 1
Do
$x = GUIGetCursorInfo($IDgui)
If $x[4] <> $IDbtn Then $return = 0
Sleep(10)
Until $x[2] = 0
;GUIDelete($tmpGui)
ControlMove($IDgui, '', $IDbtn, $pos[0], $pos[1] + 2, $pos[2] - 2, $pos[3] - 2)
Sleep(10)
ControlMove($IDgui, '', $IDbtn, $pos[0], $pos[1] + 1, $pos[2] - 1, $pos[3] - 1)
Sleep(10)
ControlMove($IDgui, '', $IDbtn, $pos[0], $pos[1], $pos[2], $pos[3])
GUICtrlSetImage($IDbtn, $pic)
Return $return
EndFunc ;==>_AnimButton
ist AFAIR von BugFix
zu 2.: mach es doch so:
>#include <GUIConstantsEx.au3>
#include <SliderConstants.au3>
#include <WindowsConstants.au3>
$Form1 = GUICreate("Test", 196, 65, 192, 124)
$Slider1 = GUICtrlCreateSlider(16, 16, 161, 25)
GUICtrlSetData(-1,50)
$iOldSlider = 50
$Label = GUICtrlCreateLabel("50",16,50,160)
GUISetState(@SW_SHOW)
While 1
$iSlider = GUICtrlRead($Slider1)
if $iSlider <> $iOldSlider Then
Test($iSlider)
$iOldSlider = $iSlider
EndIf
$nmsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
Func Test ($iPos)
GUICtrlSetData($Label,$iPos) ;nervt nicht so wie eine MsgBox
EndFunc
mfg (Auto)Bert
Hallo Bladerunner85,
teste es mal so:
$sdlinit = SDL_Init("SDL_INIT_VIDEO")
[/autoit] [autoit][/autoit] [autoit]MsgBox(0, "SDL_Init", $sdlinit)
Exit
Func SDL_Init($flag)
$sdl = DllOpen("SDL.dll")
$result=DllCall($sdl, "int", "SDL_Init", "uint32", $flag)
return $result
EndFunc
mfg (Auto)Bert
ja genau danke schön autobert
das ist genau das was ich meinte
.wenn ich noch weitere fragen habe zu dem script kann ich ddie dann hier posten oder soll ich dann immer ein neues thema eröffnen?
Wenn ein Thema erledigt/gelöst ist sollte dieses auf gelöst gesetzt werden. Einfach 1. Beitrag bearbeiten, Präfix (nähe Überschrift) ändern und speichern (absenden). Für neue Probleme/Fragen eröffnest du dann einfach ein neues Thema, wobei die Hilfe zu AutoIt sehr gut ist (natürlich auch das Tut und das Buch) so dass man nach einer gewissen Ein-/Umgewöhnung sehr gut damit zurecht kommt. Das Board hat auch eine eingebaute SUchFUnktion (fast ganz oben rechts) die man auch sehr hilfreich zur Problemlösung einsetzen kann,
mfg (Auto)Bert
Hallo spaki,
ich denke du wolltest dieses Ergebnis erreichen:
#include <GUIConstants.au3>
[/autoit] [autoit][/autoit] [autoit]#region ### START Koda GUI section ### Form=das is der pfad zu den bildern(gehts vllt auch ohne pfad)?
$Form2 = GUICreate("Form1", 383, 258, 497, 219)
$Button1 = GUICtrlCreateButton("Starten", 304, 16, 57, 25, 0)
$Button2 = GUICtrlCreateButton("Ende", 304, 56, 57, 25, 0)
$Pic1 = GUICtrlCreatePic("C:\Users\m\Desktop\hier is nen bild", 0, 0, 281, 257, 0)
$Pic2 = GUICtrlCreatePic("C:\Users\m\Desktop\und noch eins", 288, 136, 92, 121, 0)
GUISetState(@SW_SHOW)
#endregion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
case $Button1
MsgBox(0, "", "Start")
case $Button2
MsgBox(0, "", "Ende")
EndSwitch
WEnd
Hier kannst du dir die Hilfe herunterladen.
Hier gibt es ein AutoIt-Tutorial: http://wiki.autoit.de/wiki/index.php/TutorialSehr hilfreich ist auch das Buch von peethebee .
clezZ & ProblemUser solltet ihr vielleicht auch hinneinschauen, denn in einer Func kann jede Art von Schleife vorkommen. Bei Func' s die auf eine Nachricht des Programms (Button-Click) aufgerufen wurden sollte man "Endlos-Schleifen" auf jeden Fall vermeiden, da während der Ausführung der Func die Nachrichten zwar entgegengenommen (in eine Art Warteschlange gestellt) aber nicht abgearbeitet werden. Eine Ausnahme bildet hier GuiRegisterMsg diese werden sofort ausgeführt. Ist die blockierende Func zu Ende läuft das Skript normal weiter und alle Nachrichten werden der Reihe nach abgearbeitet
mfg (Auto)Bert
ja die datei ist ja im prinzip schon auf meinem server
ich führe das aus stoppe es dann nach 10 sek
lade die datei runter und sie ist leer
Dann führe einmal das von mir gepostete Skript (mit AutoIt.de ....) aus, Fehlendes & vorher ersetzen, danach musst du folgendes in der Konsole stehen haben
Danach änderst du das Skript auf deine INet-Seite und startest es. Das File darf auch jetzt nicht leer sein, ausser falsche URL oder Seite verlangt Authentifizierung
also ja die soll online sein
nach InetGet ist sie erst einmal lokal bei dir,
falls der Server auf dem gleichen Rechner läuft kannst du ja auch
[autoit]FileCopy;oder
FileMove
verwenden um sie ins richtige Verzeichnis zu stellen. Dann ist aber InetGet überflüssig.
Das heist du musst die Datei wieder online stellen. Dazu kann man Funktionen aus der FTPEx.au3 verwenden, übrigens gibt es dort auch ein Funktionen zum Downloaden von Dateien. Da ich aber keinen (FTP-)Server habe kenne ich mich damit auch nicht aus.
mfg (Auto)Bert
Hallo sumsum,
ganz sicher bekommst du das flackern weg, indem du dein Array so manipulierst, dass du danach mit
[autoit]_GUICtrlListView_AddArray
[/autoit]dieses einfügen kannst. Danach benutzt du eine Funktion con BugFix aus FormatSubItemLVex.au3 in ListView - SubItem einzeln färben/formatieren, Finale Version! um deine Items zu färben,
mfg (Auto)Bert