Fileopen vergessen?
Beiträge von nuts
-
-
Kannst ja auf das Event in Skript B eine Message an Skript A schicken.
Das geht natürlich nur wenn man beide Skripte bearbeiten kann. -
Für was verwenden?
Oder meinst du Fileinstall? -
Verstehe zwar den Bezug zu deinem Skript nicht ... aber trotzdem danke

edit\ Habe gerade beschlossen noch die Schriftgröße einzubauen.
-
So im ersten Post gibts eine neue Version mit der Möglichkeit einen Start bzw. End-Index anzugeben.
Dabei wirds wohl bleiben.
Fehlerberichte oder Verbesserungsvorschläge sind natürlich gern gesehen. -
Der MP3 Doublefinder von Oscar liest ID3-Tags.
Dort kannst du dir das Einlesen ansehen und mit der UDF dann entsprechend verändern.Ist hinzukriegen, würde mich auch interessieren (bin atm etwas unter Zeitdruck)

-
Hey,
hat jetzt schon jemand ein Skript, dass die ID3tags von ausgewählten Dateien abändert?
Wäre imho interessanter
-
Das Umwandeln würde auch so gehen:
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
;Datum von YYYY/MM/DD nach DD.MM.YYYY umwandeln
dim $conv_parts
$date = "2009/12/01"MsgBox(1, "",Date_AutoIt_2_German($date))
[/autoit] [autoit][/autoit] [autoit]
MsgBox(1, "",Date_AutoIt_from_German($conv_parts))
Func Date_AutoIt_2_German($conv_date)
$conv_parts = StringRegExpReplace($conv_date, "(\d{4})\/(\d{2})\/(\d{2})","$3.$2.$1")
Return $conv_parts
EndFunc ;==>Date_AutoIt_2_German;Datum von DD.MM.YYYY nach YYYY/MM/DD umwandeln
[/autoit]
Func Date_AutoIt_from_German($conv_date)
$conv_parts = StringRegExpReplace($conv_date, "(\d{2})\.(\d{2})\.(\d{4})","$3/$2/$1")
Return $conv_parts
EndFunc ;==>Date_German_2_AutoIt
Ich hab mich auch sehr lange mit Stringsplit gequält, dabei ists in vielen Fällen mit entsprechendem Pattern ein Einzeiler.
Reguläre Ausdrücke sind hier ganz gut erklärt http://www.autoit.de/dokumentation_…gexp/regexp.htm -
Also ein Hovereffekt? Dazu gibt es zahlreiche Ansätze. Hier mal etwas ganz einfaches:
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#include <GUIConstants.au3>Opt("GUICoordMode",1)
[/autoit] [autoit][/autoit] [autoit]
$HauptGUI = GUICreate("Hover", 400, 560)
$input1 = GUICtrlCreateinput("1", 100, 250, 200, 50)
GuiSetState()$Hover_Old = ""
[/autoit] [autoit][/autoit] [autoit]While 1
[/autoit] [autoit][/autoit] [autoit]If GUIGetMsg() = -3 Then Exit
[/autoit] [autoit][/autoit] [autoit]$Cursor = GUIGetCursorInfo($HauptGUI) ;Einfache Hover Funktion
[/autoit] [autoit][/autoit] [autoit]
If $Cursor[4] <> $Hover_Old Then
Hover($Cursor[4])
$Hover_Old = $Cursor[4]
EndIfWEnd
[/autoit] [autoit][/autoit] [autoit]Func Hover($ID) ;wenn der Zeiger über dem Kontrol ist dann ...
[/autoit]
Switch $ID
Case $input1
Guictrlsetdata($input1, "2") ;hier kommt die jeweilige Funktion hin
case else
Guictrlsetdata($input1, "1")
EndSwitch
EndFunc -
Über GUICtrlCreateProgress wäre wohl am einfachsten.
-
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
#include <array.au3>
#include <File.au3>Global $aRegFile
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
Global $aFile
Global $aret; #### Zeilen in Textfile in ein Array einlesen
[/autoit] [autoit][/autoit] [autoit]Global $regfile = @ScriptDir & '\test.txt' ; der Dateipfad zu meiner Textdatei, wären dann deine Regkey
[/autoit] [autoit][/autoit] [autoit]
Global $file = @ScriptDir & '\test2.txt' ; der Dateipfad zu deiner Textdatei_FileReadToArray($regfile, $aRegFile)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
_FileReadToArray($file, $aFile); #### Nun die beiden Arrays vergleichen
[/autoit] [autoit][/autoit] [autoit]$aret = _GetIntersection($aRegFile, $afile, 1)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Redim $aret[ubound($aret, 1)][ubound($aret, 2)] ;der Teil ist nur für die Beschriftung
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$aret[ubound($aret, 1)-1][0] = "Schnittmenge"
$aret[ubound($aret, 1)-1][1] = "In Menge1 aber nicht in Menge2 enthalten"
$aret[ubound($aret, 1)-1][2] = "In Menge2 aber nicht in Menge1 enthalten"
_ArrayDisplay($aret)
exit;==================================================================================================
[/autoit] [autoit][/autoit] [autoit]
; Function Name: _GetIntersection($Set1, $Set2 [, $GetAll=0 [, $Delim=Default]])
; Description:: Detect from 2 sets
; - Intersection (elements are contains in both sets)
; - Difference 1 (elements are contains only in $Set1)
; - Difference 2 (elements are contains only in $Set2)
; Parameter(s): $Set1 set 1 (1D-array or delimited string)
; $Set2 set 2 (1D-array or delimited string)
; optional: $GetAll 0 - only one occurence of every different element are shown (Default)
; 1 - all elements of differences are shown
; optional: $Delim Delimiter for strings (Default use the separator character set by Opt("GUIDataSeparatorChar") )
; Return Value(s): Succes 2D-array [i][0]=Intersection
; [i][1]=Difference 1
; [i][2]=Difference 2
; Failure -1 @error set, that was given as array, is'nt 1D-array
; Note: Comparison is case-sensitiv! - i.e. Number 9 is different to string '9'!
; Author(s): BugFix ([email='bugfix@autoit.de'][/email])
;==================================================================================================Func _GetIntersection(ByRef $Set1, ByRef $Set2, $GetAll=0, $Delim=Default)
[/autoit] [autoit][/autoit] [autoit]
Local $o1 = ObjCreate("System.Collections.ArrayList")
Local $o2 = ObjCreate("System.Collections.ArrayList")
Local $oUnion = ObjCreate("System.Collections.ArrayList")
Local $oDiff1 = ObjCreate("System.Collections.ArrayList")
Local $oDiff2 = ObjCreate("System.Collections.ArrayList")
Local $tmp, $i
If $GetAll <> 1 Then $GetAll = 0
If $Delim = Default Then $Delim = Opt("GUIDataSeparatorChar")
If Not IsArray($Set1) Then
If Not StringInStr($Set1, $Delim) Then
$o1.Add($Set1)
Else
$tmp = StringSplit($Set1, $Delim)
For $i = 1 To UBound($tmp) -1
$o1.Add($tmp[$i])
Next
EndIf
Else
If UBound($Set1, 0) > 1 Then Return SetError(1,0,-1)
For $i = 0 To UBound($Set1) -1
$o1.Add($Set1[$i])
Next
EndIf
If Not IsArray($Set2) Then
If Not StringInStr($Set2, $Delim) Then
$o2.Add($Set2)
Else
$tmp = StringSplit($Set2, $Delim)
For $i = 1 To UBound($tmp) -1
$o2.Add($tmp[$i])
Next
EndIf
Else
If UBound($Set2, 0) > 1 Then Return SetError(1,0,-1)
For $i = 0 To UBound($Set2) -1
$o2.Add($Set2[$i])
Next
EndIf
For $tmp In $o1
If $o2.Contains($tmp) And Not $oUnion.Contains($tmp) Then $oUnion.Add($tmp)
Next
For $tmp In $o2
If $o1.Contains($tmp) And Not $oUnion.Contains($tmp) Then $oUnion.Add($tmp)
Next
For $tmp In $o1
If $GetAll Then
If Not $oUnion.Contains($tmp) Then $oDiff1.Add($tmp)
Else
If Not $oUnion.Contains($tmp) And Not $oDiff1.Contains($tmp) Then $oDiff1.Add($tmp)
EndIf
Next
For $tmp In $o2
If $GetAll Then
If Not $oUnion.Contains($tmp) Then $oDiff2.Add($tmp)
Else
If Not $oUnion.Contains($tmp) And Not $oDiff2.Contains($tmp) Then $oDiff2.Add($tmp)
EndIf
Next
Local $UBound[3] = [$oDiff1.Count,$oDiff2.Count,$oUnion.Count], $max = 1
For $i = 0 To UBound($UBound) -1
If $UBound[$i] > $max Then $max = $UBound[$i]
Next
Local $aOut[$max][3]
If $oUnion.Count > 0 Then
$i = 0
For $tmp In $oUnion
$aOut[$i][0] = $tmp
$i += 1
Next
EndIf
If $oDiff1.Count > 0 Then
$i = 0
For $tmp In $oDiff1
$aOut[$i][1] = $tmp
$i += 1
Next
EndIf
If $oDiff2.Count > 0 Then
$i = 0
For $tmp In $oDiff2
$aOut[$i][2] = $tmp
$i += 1
Next
EndIf
Return $aOut
EndFunc ;==>_GetIntersection; #### Werte in Registry löschen, die nicht im Textfile enthalten sind
[/autoit] [autoit][/autoit] [autoit][/autoit]
Wird es damit klar? Auf Reg-Änderungen hatte ich jetzt keine Lust, erstell dir einfach zum testen eine zweite Testdatei (s. Skript). -
[autoit]
If BitAND(_GUICtrlToolbar_GetButtonState("Toolbar handle", " Command ID"), $TBSTATE_PRESSED) = $TBSTATE_PRESSED Then
[/autoit]
; dein Befehl
EndIfSo geht das.

-
Update (s. Post1): Bezug zur Listviewspaltenbreite eingebaut.
Das mit den Reg-tweaks ist so ne Sache.
Beim Zurücksetzen muss der Druckvorgang schon beendet sein, sonst wirkts irgendwie nicht.
Weiss jemand wie man den Druckerstatus abfragen kann? -
Sehr beruhigend
Was dann wohl bei Jam00 los ist?
-
3.3.1.1 & 3.3.0.0 funktioniert hier.
OS: WinXPMuss man wohl unter Win7 einige Skripte umschreiben.
-
Würde erklären warum es bei TV-Geräten nicht funktioniert.
Ärgerlich, gibt doch extra die ganzen Edid & Hdmi Standards ..
-
Also kein WM_Notify mehr im Listview bei Autoitversionen >3.3.0.0? Kann das jemand bestätigen?
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
#include <GUIConstants.au3>
#include <WindowsConstants.au3>
;Globals für die Funktion:$MainGui = GUICreate("DBClick test", 616, 395, 192, 120)
[/autoit] [autoit][/autoit] [autoit]
;GUISetBkColor(0x0)$ListView = GUICtrlCreateListView("Produkt Name", 8, 8, 498, 214);Das ListView mit $LVS_LIST...
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$TestItem = GUICtrlCreateListViewItem("TEST1", $ListView);Test 1
$TestItem = GUICtrlCreateListViewItem("TEST2", $ListView);Test 2GUISetState(@SW_SHOW)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
GUIRegisterMsg($WM_notify, "_DoubleClickOnListView");Die Funktion wird bei einem Klick auf die GUI aufgerufen!While 1
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEndFunc _DoubleClickOnListView($hWndGUI, $MsgID, $wParam, $lParam);Die Eigentliche Funktion
[/autoit]
Local $tagNMHDR, $event, $hwndFrom, $code
ConsoleWrite( $hWndGUI& @CRLF& $MsgID& @CRLF& $wParam& @CRLF& $lParam& @CRLF)
$tagNMHDR = DllStructCreate("int;int;int", $lParam)
If @error Then Return
$event = DllStructGetData($tagNMHDR, 3); Checkt wie das EVENT aussieht
If $wParam = $ListView Then;Wenn der Klick auf das ListView ging..
If $event = $NM_DBLCLK Then;.. Wenn es ein DoppelKlick war
; Hier kommt hin was er machen soll:
MsgBox(0, "",GUICtrlRead(GUICtrlRead($ListView)))
EndIf
EndIf
$tagNMHDR = 0
$event = 0
$lParam = 0
EndFunc ;==>_DoubleClickOnListView
Gar nichts zu sehn? -
Komisch, kommt gar keine Message an?
-
Poste mal dein Skript bitte.
-
Naja ob man das Argument mit den langen Texten durchgehen lassen kann?
[autoit]
[/autoit]
For $i= 0 to ubound($array)
$text &= $array[$i] & @CRLF
next
GUICtrlCreateLabel($text, -1, -1)