Vielen Dank für das Beispiel Oscar
Jetzt muss ich leider meine GUI auf OnEventMode umbauen, ich denke da komme ich nicht drann vorbei..
Schönen Tag noch
Vielen Dank für das Beispiel Oscar
Jetzt muss ich leider meine GUI auf OnEventMode umbauen, ich denke da komme ich nicht drann vorbei..
Schönen Tag noch
Hallo Ihr Lieben da draußen,
ich würde gerne dem Benutzer erlauben meine GUI in der Höhe zu verändern. Die Breite soll aber nicht veränderbar sein. Ist das möglich ?
Meine GUI hat die SIZEBOX Eigenschaft. Auch kenne ich das GUICtrlSetResizing, aber dies ist ja nur für Controls gedacht
Ich freue mich über eine Antwort!
LG Tim
Hallo,
wenn ich die _IsPressed Funktion nutze, wird eine Maustaste abgefragt, aber nicht abgefangen.
Kann ich einen Mausklick abfangen, und somit dem Benutzer das Rechtsklick-Menü sperren ?
Grüße Tim
Danke BuxFix für deine Antwort. Dacht mir schon das das zu weit geht.
Meine Liste besteht aus DVD´s. Also die Covers in Spalte 1 und dann Infos zum Film in Spalte 2.
Nun wollte ich wenn der Benutzer eines anklickt (markiert) das Covers größer machen. Das wäre ein rein visueller Effekt den ich schön finde. Hat mit einer Praktischen Funktion nichts zu tun.
Grüße
Oder mit StingSplit:
$sEingabe = "Text-123456789" ;Hier dein Eingabestring
$aTeile = StringSplit ( $sEingabe, "-", 2) ;Warum so und nicht anders kannst du in der Hilfe finden
$sErsterTeil = $aTeile[x] ; x-> Hier die Hilfe nachlesen, damit du weist wie es funktioniert
$sZweiterTeil = $aTeile[x] ; x-> Hier die Hilfe nachlesen, damit du weist wie es funktioniert
Grüße
Tim
Danke euch beiden. Leider funktioniert keines der Programme mit einem FTP Server
->
Bislang untestützt Allway Sync keine direkte Synchronisierung mit FTP-Servern oder WebDAV-Ordnern.
Grüße
Hallo,
ich verwende eine ImageList in einem Listview. Das funktioniert auch auch so wie ich das möchte. Nun sind meine Bilder standardmäßig 100x150px groß.
Nun möchte ich gerne in einer einzelnen Zeile die Bildgröße vergrößern. Das bedeutet alle Bilder sollen weiterhin 100x150px groß sein, und das eine z.B. 200x300px. Somit wird natürlich auch die Zeile höher, das ist kein Problem.
Nun habe ich via Google und im Hilfefile nur Funktionen gefunden, mit denen ich die Größe aller Bilder verändern kann.
Ist mein Vorhaben überhaupt möglich ?
Grüße
Tim
Hallo Gemeinde,
kennt jemand ein Programm, das ein angegebenes Verzeichnis mit einem FTP Server-Verzeichnis synchron hält?
Das bedeutet, das wenn ich an meinem Desktop-PC an Projekten arbeite und diese speichere, dass das Programm die Änderung erkennt, und es mit meinem angegebenen FPT Server synchroniesiert. Und wenn ich mit dem Laptop unterwegs bin, und ihn starte, soll dieser sein Verzeichnis mit dem FTP Server synchroniesieren, so dass ich den gleichen Datenstand auf meinem Laptop habe, wie auf dem Desktop Rechner.
Grüße
Tim
Exact. Genau das war der Fehler.
Danke BugFix!
Grüße
Tim
Mangels Bildern kann ich mit deinem Code wenig anfangen. Du solltest versuchen, ein auf jedem PC lauffähiges Musterskript zu erstellen, das deinen Fehler beinhaltet.
Das habe ich in meinem Post über dir gemacht Ich habe zudem noch ein Bild eingefügt wie es bei mir nach dem Ausführen aussieht.
Hier noch einmal das Script was du auch testen können solltest:
#include <GuiConstantsEx.au3>
#include <GuiListView.au3>
#include <GuiImageList.au3>
_Main()
Func _Main()
Local $hImage, $hListView
GUICreate("ListView: Setzt die Imagelist", 800, 620)
$hListView = GUICtrlCreateListView("test", 2, 2, 750, 550)
_GUICtrlListView_SetColumnWidth($hListview, 0, 105)
$hImage = _GUIImageList_Create()
_GUIImageList_SetIconSize($hImage, 100, 150)
for $i = 0 to 20
_GUIImageList_Add($hImage, _GUICtrlListView_CreateSolidBitMap($hListView, 0xFF0000, 100, 150))
_GUICtrlListView_AddItem($hListView, "Item 1", $i)
next
Local $hPrevImageList = _GUICtrlListView_SetImageList($hListView, $hImage, 1)
GUISetState()
Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE
GUIDelete()
EndFunc ;==>_Main
Alles anzeigen
Danke das du dir mein Problem angenommen hast.
Ich habe jetzt einmal alles raus geschmissen was nicht benötigt wird.
So sieht es aus:
#include <GUIConstantsEx.au3>
#include <GuiImageList.au3>
#include <GuiListView.au3>
#include "list_stuktur.au3"
#include <Array.au3>
#include <WinAPI.au3>
Global $hImage, $idListview ;Wird für Listview gebraucht
Global $pfad = "F:\Filme\Filmbibliothek";Pfad zum Bibliotheks Ordner
$bloodmoon = GUICreate("BloodMoon", 800, 620)
$idListview = GUICtrlCreateListView("Cover", 2, 2, 796, 550) ;Listview erstellen
_GUICtrlListView_SetColumnWidth($idListview, 0, 105)
Global $array_dateien = _ordner_rekursiv($pfad, 1, True, False, "bmp|mkv|avi|mp4") ;Alle Dateien auflisten lassen
$hImage = _GUIImageList_Create()
_GUIImageList_SetIconSize($hImage, 100, 150)
Global $anzahl_zeile = 0
For $anzahl_array = 1 To UBound($array_dateien) - 1 Step 1
_GUIImageList_AddBitmap($hImage, $array_dateien[$anzahl_array][0] & "#cover.bmp") ;Bild hinzufügen
$anzahl_array = $anzahl_array + 1 ;Nur wenn Film vorhanden zähle Bild eingefügt zähle eine Zeile weiter zum Film
_GUICtrlListView_AddItem($idListview, "", $anzahl_zeile) ;Leerer Text für "Cover"
$anzahl_zeile = $anzahl_zeile + 1 ;Am Ende die geschriebene Zeile um eins erhöhen
Next
Local $hPrevImageList = _GUICtrlListView_SetImageList($idListview, $hImage, 1)
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
If $nMsg = $GUI_EVENT_CLOSE Then Exit
WEnd
Alles anzeigen
Nun habe ich zudem noch ein einfaches Beispiel gemacht was du auch testen können solltest (es werden keine eiteren Dateien benötigt):
#include <GuiConstantsEx.au3>
#include <GuiListView.au3>
#include <GuiImageList.au3>
_Main()
Func _Main()
Local $hImage, $hListView
GUICreate("ListView: Setzt die Imagelist", 800, 620)
$hListView = GUICtrlCreateListView("test", 2, 2, 750, 550)
_GUICtrlListView_SetColumnWidth($hListview, 0, 105)
$hImage = _GUIImageList_Create()
_GUIImageList_SetIconSize($hImage, 100, 150)
for $i = 0 to 20
_GUIImageList_Add($hImage, _GUICtrlListView_CreateSolidBitMap($hListView, 0xFF0000, 100, 150))
_GUICtrlListView_AddItem($hListView, "Item 1", $i)
next
Local $hPrevImageList = _GUICtrlListView_SetImageList($hListView, $hImage, 1)
GUISetState()
Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE
GUIDelete()
EndFunc ;==>_Main
Alles anzeigen
So sieht es nach dem Starten aus:
[Blockierte Grafik: http://www.imgbox.de/users/public/images/wNRsDw6vbG.png]
Vielen Dank an eure Ideen und Antworten.
Ich habe das Rad nicht neu erfunden und die DLL von Oscar verwendet. Damit funktioniert das nun super !!!
Beste Grüße
Tim
Danke BuxFix.
Habe mein Code nun angepasst. Ich denke jetzt kann man es schon eher als ListView bezeichnen
Dennoch habe ich das Problem, dass dies nichts damit zu tun hat, das die Scrollbar nicht angezeigt bekomme.
Die Reihenfolge passt ja nun. Woran liegt das ?
Grüße Tim
Hallo Forum,
ich suche eine Möglichkeit mit AutoIt Details wie Auflösung und Spiellänge eines .mkv Filmes auszulesen. Das typische rechts Klick -> Eigenschaften funktioniert da nicht, wie bei z.B. bei .avi.
Das Programm http://mediaarea.net/de/MediaInfo kann das. Somit sollte das nicht unmöglich sein.
Könnt Ihr mir helfen ? - Die Suche intern und extern "g***le" hat mir noch keinen Hinweis gebracht.
Grüße
Tim
Danke BugFix!
Ich füge die Spalten mit _GUICtrlListView_AddColumn hinzu, weil ich deren Breite dann gleich mit angeben kann.
Versucht habe ich nun mit _WinAPI_RedrawWindow das Fenster neu zu zeichen, was ebenfalls nicht funktioniert wie das GUISetState(@SW_SHOW) nach dem Listview_erzeugen() auszuführen.
Hier der letzte Versuch:
#cs ----------------------------------------------------------------------------
AutoIt Version: 3.3.8.1
Author: Tim E.
Script Function:
BloodMoon
#ce ----------------------------------------------------------------------------
; Script Start - Add your code below here
#include <GUIConstantsEx.au3>
#include <GuiImageList.au3>
#include <GuiListView.au3>
#include <MsgBoxConstants.au3>
#include "list_stuktur.au3"
#include <Array.au3>
#include <WinAPI.au3>
Global $hImage, $idListview ;Wird für Listview gebraucht
Global $ini = "config.ini" ;Name der Ini Datei
Global $pfad ;Pfad zum Bibliotheks Ordner
Global $arrayscollandfilepath[1000] ;Wird zum starten des Filmes benötigt
$bloodmoon = GUICreate("ListView Set Image List", 800, 620)
$idListview = GUICtrlCreateListView("", 2, 2, 796, 300) ;Listview erstellen
_GUICtrlListView_AddColumn($idListview, "Cover", 105) ;Spalten einfügen und auf passende Bereite einstellen
_GUICtrlListView_AddColumn($idListview, "Titel", 350)
_GUICtrlListView_AddColumn($idListview, "Details", 270)
$starten = GUICtrlCreateButton("Film abspielen", 10, 570, 100, 35)
GUISetState(@SW_SHOW)
Ini_einlesen() ;Pfad aus Ini Lesen
Global $array_dateien = _ordner_rekursiv($pfad, 1, True, False, "bmp|mkv|avi|mp4") ;Alle Dateien auflisten lassen
_ArrayDisplay($array_dateien) ;Zeig es
ListView_erzeugen() ;Liste füllen lassen
_WinAPI_RedrawWindow($bloodmoon) ;Fenster neu zeichnen
While 1
$nMsg = GUIGetMsg()
If $nMsg = $GUI_EVENT_CLOSE Then Exit
If $nMsg = $starten Then Film_starten()
WEnd
Func Film_starten()
$gewahltezeile = _GUICtrlListView_GetSelectedIndices($idListview, True)
If UBound($gewahltezeile) > 1 Then ;überprüft ob eine zeilenangabe vohanden ist (zweiter platz)
$gewahlteselement = $gewahltezeile[1] ;Dann die Zeilennummer raussuchen
;MsgBox(0,"",$gewahlteselement) ; Ausgewähltes Element
ShellExecute($arrayscollandfilepath[$gewahlteselement])
Else
MsgBox(64, "Auswahl fehlt", "Bitte den gewünschten Film auswählen!")
EndIf
EndFunc ;==>Film_starten
Func Ini_einlesen()
If FileExists($ini) Then
;Nothing
Else
IniWrite($ini, "Filmbibliothek", "Pfad", "C:\Filmbibliothek") ;Ini erstellen
EndIf
$pfad = IniRead($ini, "Filmbibliothek", "Pfad", "") ;Ini Lesen
If $pfad == "" Then MsgBox(16, "Fehler!", "Ein fehler beim Lesen der config.ini ist aufgetreten.") ;Fehler ausgeben wenn kein Pfad angegeben
If FileExists($pfad) == 0 Then MsgBox(16, "Fehler!", "Bitte Pfadangeben in config.ini anpassen.") ;Fehler ausgeben wenn Pfad nicht existiert
EndFunc ;==>Ini_einlesen
Func ListView_erzeugen() ;==>Listview erzeugen
; Load images
$hImage = _GUIImageList_Create()
_GUIImageList_SetIconSize($hImage, 100, 150)
Global $anzahl_zeile = 0
For $anzahl_array = 1 To UBound($array_dateien) - 1 Step 1
;Msgbox(0,"",$array_dateien[$anzahl_array][1])
If FileExists($array_dateien[$anzahl_array][0] & "#cover.bmp") And ($array_dateien[$anzahl_array][0] <> $array_dateien[$anzahl_array + 1][0]) Then ;Überprüfen ob ein Cover vorhanden ist und ein Film dazu vorhanden
$filmvorhanden = 0 ;Kein Film vorhanden
;MsgBox(0,"Es existiert kein Film","")
Else
$filmvorhanden = 1 ;Film vorhanden
EndIf
If FileExists($array_dateien[$anzahl_array][0] & "#cover.bmp") Then ;Überprüfen ob in dem Ordner ein Cover vorhanden ist
_GUIImageList_AddBitmap($hImage, $array_dateien[$anzahl_array][0] & "#cover.bmp") ;Bild hinzufügen
If $filmvorhanden == 1 Then $anzahl_array = $anzahl_array + 1 ;Nur wenn Film vorhanden zähle Bild eingefügt zähle eine Zeile weiter zum Film
Else
_GUIImageList_AddBitmap($hImage, "cover_fehlt.bmp") ;Wenn nicht, das fehlen des Covers als Bild wählen
EndIf
If $filmvorhanden = 0 Then ;Kein Film vorhanden
_GUICtrlListView_AddItem($idListview, "", $anzahl_zeile) ;Leerer Text für "Cover"
_GUICtrlListView_AddSubItem($idListview, $anzahl_zeile, "Kein Film vorhanden !", 1, 1) ;Film Titel
$arrayscollandfilepath[$anzahl_zeile] = "-" ; Schreibt den gesammten Pfad des Filmes in die 1zu1 ArrayTabelle
Else ;Film vorhanden
_GUICtrlListView_AddItem($idListview, "", $anzahl_zeile) ;Leerer Text für "Cover"
$filmtitel = StringSplit($array_dateien[$anzahl_array][1], ".", 2) ;Filmtitel von Dateityp abtrennen
$typ = $filmtitel[1]
_GUICtrlListView_AddSubItem($idListview, $anzahl_zeile, $filmtitel[0], 1, 1) ;Film Titel
$dateigrose = Round(FileGetSize($array_dateien[$anzahl_array][0] & $array_dateien[$anzahl_array][1]) / 1048576, 2)
_GUICtrlListView_AddSubItem($idListview, $anzahl_zeile, "Dateityp: " & $typ & @CRLF & "Dateigröße: " & $dateigrose & "MB", 2, 1) ;Film Titel
$arrayscollandfilepath[$anzahl_zeile] = $array_dateien[$anzahl_array][0] & $array_dateien[$anzahl_array][1] ; Schreibt den gesammten Pfad des Filmes in die 1zu1 ArrayTabelle
EndIf
$anzahl_zeile = $anzahl_zeile + 1 ;Am Ende die geschriebene Zeile um eins erhöhen
Next
_ArrayDisplay($arrayscollandfilepath)
;Weist die Bilderliste dem Listview zu
Local $hPrevImageList = _GUICtrlListView_SetImageList($idListview, $hImage, 1)
EndFunc ;==>ListView_erzeugen
Alles anzeigen
Hallo,
ich habe in meinem Code irgendwo einen kleine Fehler.
Das Script soll eine Art "Filmbibliothek werden". Dazu sollte man das ListView nach unten scrollen können.
Leider sehe ich keinen vertikalen Scrollbalken. Dazu muss ich erst in eines meiner Zeilen des Listview reinklicken und dann mit den Pfeiltasten navigieren. Dann wird der Scrollbalken auf der rechten Seite eingeblendet.
Das muss doch auch gleich nach Start der GUI möglich sein ?
Grüße Tim
Script:
#cs ----------------------------------------------------------------------------
AutoIt Version: 3.3.8.1
Author: Tim E.
Script Function:
BloodMoon
#ce ----------------------------------------------------------------------------
; Script Start - Add your code below here
#include <GUIConstantsEx.au3>
#include <GuiImageList.au3>
#include <GuiListView.au3>
#include <MsgBoxConstants.au3>
#include "list_stuktur.au3"
#include <Array.au3>
Global $hImage, $idListview ;Wird für Listview gebraucht
Global $ini = "config.ini" ;Name der Ini Datei
Global $pfad ;Pfad zum Bibliotheks Ordner
GUICreate("ListView Set Image List", 800, 620)
$idListview = GUICtrlCreateListView("", 2, 2, 796, 300)
GUISetState(@SW_SHOW)
Ini_einlesen() ;Pfad aus Ini Lesen
Global $array_dateien = _ordner_rekursiv($pfad, 1,True,False,"bmp|mkv|avi|mp4") ;Alle Dateien auflisten lassen
_ArrayDisplay($array_dateien) ;Zeig es
ListView_erzeugen()
while 1
if GUIGetMsg() = $GUI_EVENT_CLOSE then exit
WEnd
Func Ini_einlesen()
If FileExists($ini) Then
;Nothing
Else
IniWrite($ini,"Filmbibliothek","Pfad","C:\Filmbibliothek") ;Ini erstellen
EndIf
$Pfad = IniRead($ini,"Filmbibliothek","Pfad","") ;Ini Lesen
If $pfad == "" then MsgBox(16,"Fehler!","Ein fehler beim Lesen der config.ini ist aufgetreten.") ;Fehler ausgeben wenn kein Pfad angegeben
If FileExists($pfad) == 0 then MsgBox(16,"Fehler!","Bitte Pfadangeben in config.ini anpassen.") ;Fehler ausgeben wenn Pfad nicht existiert
EndFunc
Func ListView_erzeugen() ;==>Listview erzeugen
; Add columns
_GUICtrlListView_AddColumn($idListview, "Cover", 105)
_GUICtrlListView_AddColumn($idListview, "Titel", 350)
_GUICtrlListView_AddColumn($idListview, "Details", 270)
; Load images
$hImage = _GUIImageList_Create()
_GUIImageList_SetIconSize($hImage, 100, 150)
Global $anzahl_zeile = 0
For $anzahl_array = 1 to UBound($array_dateien)-1 step 1
;Msgbox(0,"",$array_dateien[$anzahl_array][1])
If FileExists($array_dateien[$anzahl_array][0]&"#cover.bmp") AND ($array_dateien[$anzahl_array][0] <> $array_dateien[$anzahl_array + 1][0]) Then ;Überprüfen ob ein Cover vorhanden ist und ein Film dazu vorhanden
$filmvorhanden = 0 ;Kein Film vorhanden
;MsgBox(0,"Es existiert kein Film","")
Else
$filmvorhanden = 1 ;Film vorhanden
EndIf
If FileExists($array_dateien[$anzahl_array][0]&"#cover.bmp") then ;Überprüfen ob in dem Ordner ein Cover vorhanden ist
_GUIImageList_AddBitmap($hImage, $array_dateien[$anzahl_array][0]&"#cover.bmp") ;Bild hinzufügen
IF $filmvorhanden == 1 then $anzahl_array = $anzahl_array + 1 ;Nur wenn Film vorhanden zähle Bild eingefügt zähle eine Zeile weiter zum Film
Else
_GUIImageList_AddBitmap($hImage, "cover_fehlt.bmp") ;Wenn nicht, das fehlen des Covers als Bild wählen
EndIf
If $filmvorhanden = 0 Then ;Kein Film vorhanden
_GUICtrlListView_AddItem($idListview, "", $anzahl_zeile) ;Leerer Text für "Cover"
_GUICtrlListView_AddSubItem($idListview,$anzahl_zeile,"Kein Film vorhanden !",1,1) ;Film Titel
Else ;Film vorhanden
_GUICtrlListView_AddItem($idListview, "", $anzahl_zeile) ;Leerer Text für "Cover"
$filmtitel = StringSplit($array_dateien[$anzahl_array][1],".",2) ;Filmtitel von Dateityp abtrennen
$typ = $filmtitel[1]
_GUICtrlListView_AddSubItem($idListview,$anzahl_zeile,$filmtitel[0],1,1) ;Film Titel
$dateigrose = Round(FileGetsize($array_dateien[$anzahl_array][0]&$array_dateien[$anzahl_array][1])/1048576,2)
_GUICtrlListView_AddSubItem($idListview,$anzahl_zeile,"Dateityp: "&$typ&@CRLF&"Dateigröße: "&$dateigrose&"MB",2,1) ;Film Titel
endif
$anzahl_zeile = $anzahl_zeile + 1 ;Am Ende die geschriebene Zeile um eins erhöhen
Next
;Weist die Bilderliste dem Listview zu
Local $hPrevImageList = _GUICtrlListView_SetImageList($idListview, $hImage, 1)
EndFunc ;==>Listview erzeugen
Alles anzeigen
Danke für eure Hilfe.
@AspirinJunki, danke für deine Beispiele. Haben funktioniert. Nun habe ich verstanden wie man eine DLL aufruft !!
@Andy, ich habe mit dem Fehlercode meinen Fehler gefunden. Ich habe die Parameterübergabe für DLLCall falsch gemacht.
Ruhige Nacht
Tim
Hallo ich bin auf der Suche wie ich eine dll richtig in Autoit einbinden kann.
Ich möchte das ganze dafür verwenden das ich die ChipID aus einen FTDI232RL auslesen kann, von FTDI gibt
es dafür schon fertige dll und Beispiele. Aber leider nur für c und kein Autoit.
Ich habe das ganze schon mit dllcall versucht aber komme mit der Syntax nicht ganz zurecht.
Hat jemand schon sowas realisiert?
Hier gibt es Beispiele und die dll´s:
http://www.ftdichip.com/Support/Softwa…FTDIChip-ID.htm
http://www.ftdichip.com/Support/Docume…TChipIDPG11.pdf
Das war mein Versuch bis jetzt:
Func _FTDI_chipID()
$FTDIdll = DllOpen("C:\FTChipID.dll")
$result = DllCall($FTDIdll, "int", "int:FTID_GetDeviceLocationID")
DllClose($FTDIdll)
Return $result
EndFunc
Danke !
Danke, ich würde mich sehr freuen !
Größe