1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. autoBert

Beiträge von autoBert

  • ListView mehrere Items selektieren?

    • autoBert
    • 21. August 2015 um 12:43

    Dann erstelle die ListView mit GUICtrlCreateListView und damit du die erweiterten Funktionen der GuiListView.au3 (welche ja ein Handle erwarten) verwenden kannst ermittelst du einmal das Handle mit

    Code
    Global $hLV= GUICtrlGetHandle($idLV)

    . Dieses verwendest du im weiteren Programm.

    Edit: ich weis nicht mit welcher AutoIt-Version es eingeführt wurde, aber zumindest mit 3.3.14.1 funktioniert es auch über die ControlID, siehe:

    Spoiler anzeigen
    C
    #include <APIShellExConstants.au3>
    #include <FileConstants.au3>
    #include <MsgBoxConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GuiImageList.au3>
    #include <GuiListView.au3>
    #include <File.au3>
    #AutoIt3Wrapper_AU3Check_Parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6
    
    
    Global Const $tagSHFILEINFO = 'ptr hIcon; int iIcon; DWORD dwAttributes; CHAR szDisplayName[255]; CHAR szTypeName[80];'
    Global $FOLDER_ICON_INDEX= _GUIImageList_GetFileIconIndex(@SystemDir, True, 1)
    ;Global $UP_ICON_INDEX = _GUIImageList_GetFileIconIndex($sIconDir & 'up.ico', False, 1)
    
    
    Global $sAutoItPath = RegRead64('HKLM\Software\AutoIt v3\AutoIt', 'InstallDir')
    Global $aDirs, $aFiles
    
    
    ; Create GUI
    Global $hGui = GUICreate("ListView Add Item", 500, 700,Default,Default,$LVS_SHOWSELALWAYS)
    GUISetFont(14)
    Global $idListview = GUICtrlCreateListView("Name:", 2, 2, 494, 694,$LVS_SHOWSELALWAYS)
    _GUICtrlListView_SetImageList($idListview, _GUIImageList_GetSystemImageList(True), 1)
    GUISetState(@SW_SHOW)
    
    
    If @error Then
    	$sAutoItPath=''
    	if MsgBox(16,'Ordner nicht gefunden','Möchten Sie selbst danach suchen?',$MB_YESNO,$hGui)=6 Then
    		$sAutoItPath=FileSelectFolder('AutoIt Ordner manuell suchen','c:\')&'\'
    	EndIf
    	if $sAutoItPath='' Then Exit
    EndIf
    
    
    _GUICtrlListView_BeginUpdate($idListview)
    $sAutoItPath='C:\Program Files\Microsoft Office 15\root\office15\'	;dieser Pfad hat mehr Files mit individuellen Icons
    $aDirs = _FileListToArray($sAutoItPath, '*', 2)
    If Not @error Then
    	For $i = 1 To $aDirs[0]
    		; Add items
    		_GUICtrlListView_AddItem($idListview, $aDirs[$i], $FOLDER_ICON_INDEX, True)
    	Next
    EndIf
    $aFiles = _FileListToArray($sAutoItPath, '*', 1)
    If Not @error Then
    	For $i = 1 To $aFiles[0]
    		; Add items
    		_GUICtrlListView_AddItem($idListview, $aFiles[$i], _GUIImageList_GetFileIconIndex($sAutoItPath&$aFiles[$i], True))
    	Next
    EndIf
    _GUICtrlListView_SetColumnWidth($idListview,0,$LVSCW_AUTOSIZE)
    _GUICtrlListView_EndUpdate($idListview)
    
    
    ; Loop until the user exits.
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE
    GUIDelete()
    
    
    
    
    ; Author: progandy (www.autoit.de)
    Func _GUIImageList_GetSystemImageList($bLargeIcons = False)
    	Local $dwFlags, $hIml, $FileInfo = DllStructCreate($tagSHFILEINFO)
    	$dwFlags = BitOR($SHGFI_USEFILEATTRIBUTES, $SHGFI_SYSICONINDEX)
    	If Not ($bLargeIcons) Then
    		$dwFlags = BitOR($dwFlags, $SHGFI_SMALLICON)
    	EndIf
    ;~    '// Load the image list - use an arbitrary file extension for the
    ;~    '// call to SHGetFileInfo (we don't want to touch the disk, so use
    ;~    '// FILE_ATTRIBUTE_NORMAL && SHGFI_USEFILEATTRIBUTES).
    	$hIml = _WinAPI_SHGetFileInfo(".txt", $FILE_ATTRIBUTE_NORMAL, _
    			DllStructGetPtr($FileInfo), DllStructGetSize($FileInfo), $dwFlags)
    	Return $hIml
    EndFunc   ;==>_GUIImageList_GetSystemImageList
    
    
    ; Author: progandy (www.autoit.de)
    Func _WinAPI_SHGetFileInfo($pszPath, $dwFileAttributes, $psfi, $cbFileInfo, $uFlags)
    	Local $return = DllCall("shell32.dll", "dword_ptr", "SHGetFileInfo", "str", $pszPath, "DWORD", $dwFileAttributes, "ptr", $psfi, "UINT", $cbFileInfo, "UINT", $uFlags)
    	If @error Then Return SetError(@error, 0, 0)
    	Return $return[0]
    EndFunc   ;==>_WinAPI_SHGetFileInfo
    
    
    ; Author: progandy (www.autoit.de)
    Func _GUIImageList_GetFileIconIndex($sFileSpec, $bLargeIcons = False, $bForceLoadFromDisk = False)
    	Local $dwFlags, $FileInfo = DllStructCreate($tagSHFILEINFO)
    	$dwFlags = $SHGFI_SYSICONINDEX
    	If $bLargeIcons Then
    		$dwFlags = BitOR($dwFlags, $SHGFI_LARGEICON)
    	Else
    		$dwFlags = BitOR($dwFlags, $SHGFI_SMALLICON)
    	EndIf
    ;~ ' We choose whether to access the disk or not. If you don't
    ;~ ' hit the disk, you may get the wrong icon if the icon is
    ;~ ' not cached. But the speed is very good!
    	If Not $bForceLoadFromDisk Then $dwFlags = BitOR($dwFlags, $SHGFI_USEFILEATTRIBUTES)
    ;~ ' sFileSpec can be any file. You can specify a
    ;~ ' file that does not exist and still get the
    ;~ ' icon, for example sFileSpec = "C:\PANTS.DOC"
    	Local $lR = _WinAPI_SHGetFileInfo( _
    			$sFileSpec, $FILE_ATTRIBUTE_NORMAL, DllStructGetPtr($FileInfo), DllStructGetSize($FileInfo), _
    			$dwFlags _
    			)
    	If ($lR = 0) Then
    		Return SetError(1, 0, -1)
    	Else
    		Return DllStructGetData($FileInfo, "iIcon")
    	EndIf
    EndFunc   ;==>_GUIImageList_GetFileIconIndex
    
    
    Func RegRead64($sKeyname, $sValue);aus AutoUpdateIt.au3
    	Local $sRes = RegRead($sKeyname, $sValue)
    	If @error And @AutoItX64 Then
    		$sKeyname = StringReplace($sKeyname, "HKEY_LOCAL_MACHINE", "HKLM")
    		$sKeyname = StringReplace($sKeyname, "HKLM\SOFTWARE\", "HKLM\SOFTWARE\Wow6432Node\")
    		$sRes = RegRead($sKeyname, $sValue)
    		If @error Then
    			SetError(1)
    			Return ""
    		EndIf
    	EndIf
    
    
    	SetError(0)
    	Return $sRes
    EndFunc   ;==>RegRead64
    Alles anzeigen
  • OnePlus 2

    • autoBert
    • 20. August 2015 um 15:15
    Zitat von Friesel

    Hi!

    Angeblich hat dieser Shop beide Versionen des 2 vorrätig und diese können auch schon bestellt werden:
    http://www.efox-shop.com/oneplus-2-4gb-…ss-bil-g-303280

    Ich denke, der Shop ist vertrauenswürdig (hat sogar deutschen Support), aber selbstverständlich alle Angaben ohne Gewähr ;)


    Laut WOT: Vertrauenswürdigkeit schlecht, Jugendschutz ungenügend.

  • Innerparteiliche Meinungsfreiheit

    • autoBert
    • 19. August 2015 um 18:44

    [OT]http://www.der-postillon.com/2015/08/volker…lt-63-groe.html[/OT]

  • _Excel_RangeFind - Fehler seit 3.3.14.1

    • autoBert
    • 19. August 2015 um 15:42
    Code
    >"C:\Program Files\AutoIt3\SciTE\AutoIt3Wrapper\AutoIt3Wrapper.exe" /run /prod /ErrorStdOut /in "C:\Program Files\AutoIt3\Examples\Helpfile\_Excel_RangeFind.au3" /UserParams C:\Users\Bert\AutoIt3.My\Temp\musterdatei_UTF-8.txt   
    +>15:41:45 Starting AutoIt3Wrapper v.14.801.2025.0 SciTE v.3.4.4.0   Keyboard:00000407  OS:WIN_81/  CPU:X64 OS:X64    Environment(Language:0407)
    +>         SciTEDir => C:\Program Files\AutoIt3\SciTE   UserDir => C:\Users\Bert\AppData\Local\AutoIt v3\SciTE\AutoIt3Wrapper   SCITE_USERHOME => C:\Users\Bert\AppData\Local\AutoIt v3\SciTE 
    >Running AU3Check (3.3.14.1)  from:C:\Program Files\AutoIt3  input:C:\Program Files\AutoIt3\Examples\Helpfile\_Excel_RangeFind.au3
    +>15:41:45 AU3Check ended.rc:0
    >Running:(3.3.14.1):C:\Program Files\AutoIt3\autoit3.exe "C:\Program Files\AutoIt3\Examples\Helpfile\_Excel_RangeFind.au3" C:\Users\Bert\AutoIt3.My\Temp\musterdatei_UTF-8.txt   
    --> Press Ctrl+Alt+Break to Restart or Ctrl+Break to Stop
    "C:\Program Files\AutoIt3\Include\Excel.au3" (662) : ==> The requested action with this object has failed.:
    $aResult[$iIndex][5] = $oMatch.Comment.Text
    $aResult[$iIndex][5] = $oMatch.Comment^ ERROR
    ->15:41:48 AutoIt3.exe ended.rc:1
    +>15:41:48 AutoIt3Wrapper Finished.
    >Exit code: 1    Time: 3.169
    Alles anzeigen
  • IconDock - Mac style Icon toolbar

    • autoBert
    • 18. August 2015 um 15:27

    Liegt wohl daran dass sich das aktive Fenster ändert.

  • FFFE aus Datei auslesen (beide Byte am Anfang)

    • autoBert
    • 18. August 2015 um 15:18
    Zitat von supernova

    wir müssen glaub ich ausserhalb von FileOpen() suchen

    Das Problem scheint auf Layer 8 angesiedelt zu sein. Wo nichts ist kann nichts gelesen werden.

  • _Excel_RangeFind - Fehler seit 3.3.14.1

    • autoBert
    • 18. August 2015 um 13:11

    Auch unter Win 8.1 64 und Office 2015 kommt der gleiche Fehler. Scheint ein Bug in der Excel.au3 zu sein.

  • _FFClick klickt nicht :(

    • autoBert
    • 17. August 2015 um 14:11

    Um dies zu analysiern bräuchte man den Quellcode (xx.html) der Seite.

  • GUI resizen und Button neu erstellen

    • autoBert
    • 17. August 2015 um 12:53

    Hallo Oscar,

    habe am Wochende zu Hause das von mir geänderte Script Filecommander gestestet. Die Änderungen die ich nach deinem letzten Post: FileCommander gemacht habe sind nicht mehr dokumentiert. Die Methode die du dort für die Drive-Buttons verwendest klappt jedoch unter Win 8.1 und AutoIt 3.3.14.1 immer noch. Die wichtigste Änderung danach war das einfügen von GUISetState(@SW_HIDE, $hGui) in Zeile 568, danach waren alle Resizing-Probleme verschwunden. Da ich vermute, dass dieses Hilfethema im Zusammenhang damit steht im Anhang die geänderte FileCommander.au3.

    Dateien

    FileCommander.au3 152,94 kB – 185 Downloads
  • GUI resizen und Button neu erstellen

    • autoBert
    • 15. August 2015 um 19:27
    Zitat von Oscar

    Auch beim andocken an den rechten Rand stimmen die Positionen nicht mehr, sobald man nach dem neu erstellen die GUI resized.
    Das passt zwar für den Moment des Erstellens, aber nicht mehr beim resizen. Das ist ja das Problem...

    Sie stimmen in Bezug auf den rechten Rand, wenn du sie (aus ästhetischen Gründen?) relativ zur horizontalen Mitte haben möchtest sehe ich neben der Methode von Kanshius nur die Möglichkeit einer Child-Gui welche mit WinMove bei jeder Größenänderung an die ParentGui angepasst wird. Ob dies weniger flackert als deine Func _CreateButton2() wage ich zu bezweifeln, im Gegenteil ich befürchte es wird dadurch schlimmer.

    mfg autoBert

  • GUI resizen und Button neu erstellen

    • autoBert
    • 15. August 2015 um 18:06

    Du musst die Buttons am rechten Rand andocken:

    Code
    Func _CreateButton1()
    	$aClient=WinGetClientSize($hGui)
    	_ArrayDisplay($aClient)
    	For $i = 0 To UBound($aidButton, 2) - 1
    		For $j = 0 To 1
    			GUICtrlDelete($aidButton[$j][$i])
    		Next
    	Next
    	For $i = 0 To UBound($aidButton, 2) - 1
    		$aidButton[0][$i] = GUICtrlCreateButton(Chr(65 + $i), 20 + $i * 50, 25, 45, 25)
    		GUICtrlSetResizing(-1, $GUI_DOCKLEFT + $GUI_DOCKTOP + $GUI_DOCKSIZE)
    		$aidButton[1][$i] = GUICtrlCreateButton(Chr(65 + $i), $aClient[0]-(3-$i) * 50, 25, 45, 25)
    		GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKTOP + $GUI_DOCKSIZE)
    	Next
    Alles anzeigen

    die Formel für die rechten Buttons muss noch um einen Korrekturfaktor (-x) erweitert werden.

    Edit: Wenn die Position zur Horizontalen Mitte absolut sein soll ist eine ChildGui notwendig bei der dann die rechten Buttons an der linken Seite angedockt werden. Die ChildGui muss natürlich mit WinMove bei jeder Größenänderung an die ParentGui angepasst werden.

    mfg autoBert

  • GUI resizen und Button neu erstellen

    • autoBert
    • 15. August 2015 um 17:08

    Hallo Oscar,

    teste einmal diese Func:

    Code
    Func _CreateButton1()
    	$aClient=WinGetClientSize($hGui)
    	_ArrayDisplay($aClient)
    	For $i = 0 To UBound($aidButton, 2) - 1
    		For $j = 0 To 1
    			GUICtrlDelete($aidButton[$j][$i])
    		Next
    	Next
    	For $i = 0 To UBound($aidButton, 2) - 1
    		$aidButton[0][$i] = GUICtrlCreateButton(Chr(65 + $i), 20 + $i * 50, 25, 45, 25)
    		GUICtrlSetResizing(-1, $GUI_DOCKLEFT + $GUI_DOCKTOP + $GUI_DOCKSIZE)
    		$aidButton[1][$i] = GUICtrlCreateButton(Chr(65 + $i), $aClient[0]-(3-$i) * 50, 25, 45, 25)
    		GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKTOP + $GUI_DOCKSIZE)
    	Next
    EndFunc   ;==>_CreateButton1
    Alles anzeigen

    Das klappt annäherend, die Rechenformel für die rechten 3 Buttons muss noch optimiert werden.

    mfg autobert

  • Fehlende Großbuchstaben von ControlSend() vs. getrennte Serversession

    • autoBert
    • 13. August 2015 um 16:24

    Deine Behauptung, daß ControlSend keine Großbuchstaben senden kann, stimmt nicht. Folgendes Beispiel aus der Hilfe (leicht abgeändert) sendet ganz korrekt an Notepad:

    Code
    Example()
    
    
    Func Example()
    	; Run Notepad
    	Run("notepad.exe")
    
    
    	; Wait 10 seconds for the Notepad window to appear.
    	Local $hWnd = WinWait("[CLASS:Notepad]", "", 10)
    
    
    	; Wait for 2 seconds.
    	Sleep(2000)
    
    
    	; Send a string of text to the edit control of Notepad. The handle returned by WinWait is used for the "title" parameter of ControlSend.
    	ControlSend($hWnd, "", "Edit1", "This is some text"&@LF)
    	ControlSend($hWnd, "", "Edit1", "Und noch eine Textzeile")
    
    
    	; Wait with MsgBox
    	MsgBox(0,'','')
    
    
    	; Close the Notepad window using the handle returned by WinWait.
    	WinClose($hWnd)
    
    
    	; Now a screen will pop up and ask to save the changes, the classname of the window is called
    	; "#32770" and simulating the "TAB" key to move to the second button in which the "ENTER" is simulated to not "save the file"
    	WinWaitActive("[CLASS:#32770]")
    	Sleep(500)
    	Send("{TAB}{ENTER}")
    EndFunc   ;==>Example
    Alles anzeigen

    mfg autoBert

  • [UDF] GUICtrlPic - Update am 27.12.2010

    • autoBert
    • 11. August 2015 um 17:33

    Muss schon wieder ein altes Sahnestückchen ausgraben. Da ich diese UDF meist zusammen mit einer Hover-Funktion und der _AnimButton von @BugFix verwende habe ich die beiden Funktionen in die GuiCtrlPic integriert, hier die beiden Funktionsheader:

    • _GuiCtrlPic_CheckHoverDisabled:
      Code
      ;==================================================================================================
      ; Function Name:	_GuiCtrlPic_CheckHoverDisabled($hGui, ByRef $aHoverBtn)
      ; Description:		prüft den Status ein PicControls Enabled/Disabled Hovered/Normal
      ;					und setzt bei Statusänderung das dazugehörige Pic
      ; Parameter(s):		$hGui      	Handle der GUI
      ;					$aHoverBtn	2D-Array der HoverButtons ua mit Pfaden zu den Pics
      ; Author:           autoBert
      ;					getestet mit 3.3.14.1
      ;==================================================================================================
    • _GuiCtrlPic_AnimButton
      Code
      ;==================================================================================================
      ; Function Name:	_GuiCtrlPic_AnimButton($IDgui, $IDbtn [$sNormal = "", [$sHover = "", [$sPress = "", $iDelay=150]]]])
      ; Description:		animiert ein Pic, wie einen geklickten Button
      ; Parameter(s):		$IDgui      ID der GUI-
      ;					$IDbtn      ID des Picture als Button
      ;					$sNormal    Pfad zum angezeigten Bild des Buttons im nrmalen Zustand
      ;					$sHover		Pfad zum angezeigten Bild des Buttons im Hover-Zustand
      ;					$sPress     Pfad zum angezeigten Bild des Buttons im gedrückten Zustand
      ; Author:           BugFix _AnimButton
      ; modified:			autoBert => _GuiCtrlPic_AnimButton
      ;					getestet mit 3.3.14.1
      ;==================================================================================================
      Alles anzeigen

      im Anhang noch die neue GuiCtrlPic und eine Demo sowie die benötigten Pictures dazu.

    Edit: Das vergessene $iDelay (von TJF im nachfolgenden Post gemeldet) eingefügt und Datei erneut hochgeladen. Die PNG's für den Exit-Button sind mir leider abhanden gekommen.

    MfG autoBert

    Dateien

    HoveredPngButtons.au3 4,24 kB – 262 Downloads pictures.zip 9,37 kB – 271 Downloads GUICtrlPic.au3 22,51 kB – 291 Downloads
  • Anhang wird nicht versendet

    • autoBert
    • 11. August 2015 um 16:22

    Öffne mal die InetSmtpMailCom und entferne die Semikolons in Zeile 5 und Zeile 24. Danach abspseichern und dein Skript erneut testen. Die Ausgabe von ArrayDisplay zeigt an wieviele Anhänge existieren.

  • MinnowBoard Max - GPIO Schnittstelle via AutoIt

    • autoBert
    • 10. August 2015 um 15:31
    Zitat von Homer J. S.


    Meine Idee wäre es, die Kommunikation über eine dll zu realisieren. Allerdings bin ich dafür auf eure Hilfe angewiesen.

    Hast du denn schon eine DLL dafür gefunden?

  • FileCommander

    • autoBert
    • 7. August 2015 um 19:11

    Ich habe nur Änderungen vorgenommen die durch die Versionswechsel nötig waren.
    Im Original konnten Verzecihnisse mit Doppelklick geöffnet werden. Bei einem kurzem Test bekomme ich jetzt auch Zugriff verweigert. Muss bei Gelegenheit den/die Fehler suchen, habs mir wohl zu einfach vorgestellt.

  • FileCommander

    • autoBert
    • 7. August 2015 um 18:40

    Ich hole mal dieses alte Projekt aus der Versenkung, da ich das Skript von Oscar auf 3.3.14.1 angepasst habe. Meine Änderungen sind mit ;<================= gekennzeichnet.

    Oscar : du solltest nach einem Check des Scripts deinen Anhang in #1 aktualisieren und evtl. diesen Post löschen.

    mfg autoBert

    PS.: warum schmiert mein FF ab (nicht antwortendes Skript) wenn ich das Skript im Beitrag in einem Spoiler und CodeTags integrieren will?

    Dateien

    FileCommander.au3 152,5 kB – 311 Downloads
  • _Array_Compare2D erweitern

    • autoBert
    • 7. August 2015 um 16:13

    Monitoring-Daten sollten ja einen Zeitstempel oder ein anderes Kriterium haben das sie eindeutig macht. Ohne Eindeutigkeit kannst du dein Problem nie lösen. Auch würde ich dir SQLite zur Auswertung empfehlen.

  • MinnowBoard Max - GPIO Schnittstelle via AutoIt

    • autoBert
    • 7. August 2015 um 16:05

    Du musst die Saamples aus dem VS-Code in AutoIt übertragen.

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™