Ich habe für Video Bearbeitung häufig VirtualDub benutzt. Finde das Tool ganz ansprechend.
Beiträge von BugFix
-
-
Meinst du sowas?
Spoiler anzeigen
[autoit]#include <WindowsConstants.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <WinAPI.au3>Global $aCtrl[2]
[/autoit] [autoit][/autoit] [autoit]$gui = GUICreate("", 150, 50, -1, -1, $WS_POPUP, $WS_EX_TOPMOST)
[/autoit] [autoit][/autoit] [autoit]
$aCtrl[0] = GUICtrlCreateInput("", 0, 0, 150, 20)
$aCtrl[1] = GUICtrlCreateButton('Ende', 100, 30, 50, 20)
GUISetState(@SW_SHOW)$pos = WinGetPos($gui)
[/autoit] [autoit][/autoit] [autoit]
_GuiHole($gui, 0, 0, 150, 50)While 1
[/autoit] [autoit][/autoit] [autoit]
$msg = GUIGetMsg()
Switch $msg
Case $aCtrl[1]
ExitLoop
EndSwitch
WEndFunc _GuiHole($h_win, $i_x, $i_y, $i_sizew, $i_sizeh)
[/autoit] [autoit][/autoit] [autoit]
Local $outer_rgn, $inner_rgn, $combined_rgn
$combined_rgn = _WinAPI_CreateRectRgn(0, 0, 0, 0)
_WinAPI_DeleteObject($outer_rgn)
_WinAPI_DeleteObject($inner_rgn)
_AddCtrlRegion($combined_rgn, $aCtrl)
_WinAPI_SetWindowRgn($h_win, $combined_rgn)
EndFunc ;==>_GuiHoleFunc _AddCtrlRegion($full_rgn, $ctrl_id)
[/autoit]
Local $ctrl_pos, $ctrl_rgn
If IsArray($ctrl_id) Then
For $i = 0 To UBound($ctrl_id) -1
$ctrl_pos = ControlGetPos($gui, "", $ctrl_id[$i])
$ctrl_rgn = _WinAPI_CreateRectRgn($ctrl_pos[0], $ctrl_pos[1], $ctrl_pos[0] + $ctrl_pos[2], $ctrl_pos[1] + $ctrl_pos[3])
_WinAPI_CombineRgn($full_rgn, $full_rgn, $ctrl_rgn, $RGN_OR)
_WinAPI_DeleteObject($ctrl_rgn)
Next
Else
$ctrl_pos = ControlGetPos($gui, "", $ctrl_id)
$ctrl_rgn = _WinAPI_CreateRectRgn($ctrl_pos[0], $ctrl_pos[1], $ctrl_pos[0] + $ctrl_pos[2], $ctrl_pos[1] + $ctrl_pos[3])
_WinAPI_CombineRgn($full_rgn, $full_rgn, $ctrl_rgn, $RGN_OR)
_WinAPI_DeleteObject($ctrl_rgn)
EndIf
EndFunc ;==>_AddCtrlRegion -
Greenhorn:
$tagPOINT und $tagRECT sind in der Aktuellen AutoIt-Version bereits als Konstanten deklariert. -
Wenn jemand ein Kartenspiel hat,könnte er es dann vielleicht einscannen?
Oder kann mir jemand die genauen Regeln von Mau-Mau näher bringen?
Verwende doch die Windows-eigenen Spielkarten: Skriptbeispiel Spielkarten
Also Regeln für Mau-Mau gibt es wie Sand am Meer.
Erfahrungsgemäß benötigt man vor Spielbeginn immer 10 Minuten um sich auf einheitliche Regeln zu einigen.
Mal ein paar Bsp.
7 wird geworfen
- nächster Spieler MUSS 2 ziehen oder
- nächster Spieler DARF mit eigener 7 um 2 ERHÖHEN oder
- nächster Spieler wirft 9 und BRAUCHT KEINE ZIEHEN oder
- nächster Spieler wirft Bube und wünscht sich eine Farbe - BRAUCHT auch NICHT ZIEHEN.
Viel Spass, bei der Erschaffung einheitlicher Regeln.
-
Forenregeln Beachten! Wie schon von den anderen erkannt: BruteForce.
Thread Closed
-
Als Workaround bleibt nur Eigenbau:
[autoit]#include <EditConstants.au3>
[/autoit]
Global $hGUI = GUICreate('Test', 120, 100, -1, -1)
$hCounter = GUICtrlCreateInput('32767', 10, 10, 90, 22, BitOR($ES_NUMBER, $ES_RIGHT))
;~ GUICtrlCreateUpdown($hCounter)
$bUp = GUICtrlCreateButton('', 101, 10, 14, 11)
$bDown = GUICtrlCreateButton('', 101, 21, 14, 11)
;~ GUICtrlSetLimit(-1, 40000, 0)
GUISetState()
While 1
$msg = GUIGetMsg()
Switch $msg
Case -3
Exit
Case $bUp
GUICtrlSetData($hCounter, GUICtrlRead($hCounter)+1)
Case $bDown
GUICtrlSetData($hCounter, GUICtrlRead($hCounter)-1)
EndSwitch
WEnd -
Komischerweise bekomme ich in meinem Skript (im Beispiel gehts) in der Zeile Global Const $NM_DBLCLK = -3 folgende Fehlermeldung: ERROR: $NM_DBLCLK previously declared as a 'Const'
Ändere ich die Zeile in: $N_DBLCLK = -3 (in der Funktion natürlich auch) läuft auch mein Skript.
Das versteh mal einer ...
Diese Fehlermeldung ist völlig korrekt. Die Konstante $NM_DBLCLK ist in den WindowsConstants.au3 deklariert.
Das von dir verwendete Skript ist im Prinzip, wie meines, nur gekürzt.
-
Dieses ist die neueste Version von SciTE.
Schau dir mal in der AutoIt-Hilfe den Punkt "History / ChangeLog" an. Du wirst sehen, dass im Vergleich zur Ver. 3.2.12.1 hauptsächlich Fixes ausgeführt wurden. Die neu hinzugefügten Dinge sind nicht sehr umfangreich - aber in der Hilfe zur Funktion beschrieben. Der einzige Unterschied für dich ist also, dass die Syntaxanzeige beim Funktion tippen, evtl. geänderte Parameter nicht korrekt anzeigt. -
versteh ich nich^^
is mit .rtf endung
und beim öffnen sind die buchstaben auch fett oder kursiv
und in wik steht das eine rtf datei eine reine textdatei ist also hab ich das so ausprobiert und es ging
Es ist schon Text, aber mit zusätzlichen Formatinformationen (z.B. TAB=\tab, CRLF=\par...). Auch der Text ist nicht 1:1. Das "ß" wird hier als "\'df" dargestellt.
Und das sind die Gründe, warum man eine rtf-Datei nicht einfach als Text lesen kann. Schau dir mal eine RTF in SciTE an, dann siehst du es. -
Eigentlich suche ich nur eine Möglichkeit um auf einen Doppelklick ins Listview zu reagieren - ich schaus mir aber mal genauer an.
Hier mal ein Bsp., indem alle Events eines Listview aufgeführt sind. Aktiviert ist hier DblClick.
Spoiler anzeigen
[autoit]#include<GUIConstantsEx.au3>
[/autoit] [autoit][/autoit] [autoit]
#include<WindowsConstants.au3>
#include <GUIListView.au3>$gui = GUICreate('test')
[/autoit] [autoit][/autoit] [autoit]
$hListView = GUICtrlCreateListView('Spalte1|Spalte2', 10, 10, 300, 200)
_GUICtrlListView_SetColumnWidth($hListView, 0, 146)
_GUICtrlListView_SetColumnWidth($hListView, 1, $LVSCW_AUTOSIZE_USEHEADER)
For $i = 1 To 10
GUICtrlCreateListViewItem('Zeile ' & $i & ' Spalte 1|Zeile ' & $i & ' Spalte 2', $hListView)
Next
GUISetState()
GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")
Do
$msg = GUIGetMsg()
Until $msg = $GUI_EVENT_CLOSEFunc _LeftDblClick($Info)
[/autoit] [autoit][/autoit] [autoit]
MsgBox(0, 'Text in Spalte', _GUICtrlListView_GetItemText($Info[1], $Info[3], $Info[4]) )
EndFuncFunc WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam)
[/autoit] [autoit][/autoit] [autoit]
Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR, $hWndListView
$hWndListView = $hListView
If Not IsHWnd($hListView) Then $hWndListView = GUICtrlGetHandle($hListView)$tNMHDR = DllStructCreate($tagNMHDR, $ilParam)
[/autoit]
$hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
$iIDFrom = DllStructGetData($tNMHDR, "IDFrom")
$iCode = DllStructGetData($tNMHDR, "Code")
Switch $hWndFrom
Case $hWndListView
Switch $iCode
Case $LVN_COLUMNCLICK ; A column was clicked
Local $tInfo = DllStructCreate($tagNMLISTVIEW, $ilParam)
Local $aInfo[11] = [$hWndFrom, _
$iIDFrom, _
$iCode, _
DllStructGetData($tInfo, "Index"), _
DllStructGetData($tInfo, "SubItem"), _
DllStructGetData($tInfo, "NewState"), _
DllStructGetData($tInfo, "OldState"), _
DllStructGetData($tInfo, "Changed"), _
DllStructGetData($tInfo, "ActionX"), _
DllStructGetData($tInfo, "ActionY"), _
DllStructGetData($tInfo, "Param")]
;~ _ColumnClick($aInfo)
Case $LVN_DELETEITEM ; An item is about to be deleted
Local $tInfo = DllStructCreate($tagNMLISTVIEW, $ilParam)
Local $aInfo[11] = [$hWndFrom, _
$iIDFrom, _
$iCode, _
DllStructGetData($tInfo, "Index"), _
DllStructGetData($tInfo, "SubItem"), _
DllStructGetData($tInfo, "NewState"), _
DllStructGetData($tInfo, "OldState"), _
DllStructGetData($tInfo, "Changed"), _
DllStructGetData($tInfo, "ActionX"), _
DllStructGetData($tInfo, "ActionY"), _
DllStructGetData($tInfo, "Param")]
;~ _ItemDeleted($aInfo)
Case $LVN_HOTTRACK ; Sent by a list-view control when the user moves the mouse over an item
Local $tInfo = DllStructCreate($tagNMLISTVIEW, $ilParam)
Local $aInfo[11] = [$hWndFrom, _
$iIDFrom, _
$iCode, _
DllStructGetData($tInfo, "Index"), _
DllStructGetData($tInfo, "SubItem"), _
DllStructGetData($tInfo, "NewState"), _
DllStructGetData($tInfo, "OldState"), _
DllStructGetData($tInfo, "Changed"), _
DllStructGetData($tInfo, "ActionX"), _
DllStructGetData($tInfo, "ActionY"), _
DllStructGetData($tInfo, "Param")]
Return 0 ; allow the list view to perform its normal track select processing.
;Return 1 ; the item will not be selected.
;~ _HottTrackItem($aInfo)
Case $LVN_KEYDOWN ; A key has been pressed
Local $tInfo = DllStructCreate($tagNMLVKEYDOWN, $ilParam)
Local $aInfo[5] = [$hWndFrom, _
$iIDFrom, _
$iCode, _
DllStructGetData($tInfo, "VKey"), _
DllStructGetData($tInfo, "KeyFlags")]
;~ _KeyDown($aInfo)
Case $NM_CLICK ; Sent by a list-view control when the user clicks an item with the left mouse button
Local $tInfo = DllStructCreate($tagNMITEMACTIVATE, $ilParam)
Local $aInfo[12] = [$hWndFrom, _
$iIDFrom, _
$iCode, _
DllStructGetData($tInfo, "Index"), _
DllStructGetData($tInfo, "SubItem"), _
DllStructGetData($tInfo, "NewState"), _
DllStructGetData($tInfo, "OldState"), _
DllStructGetData($tInfo, "Changed"), _
DllStructGetData($tInfo, "ActionX"), _
DllStructGetData($tInfo, "ActionY"), _
DllStructGetData($tInfo, "lParam"), _
DllStructGetData($tInfo, "KeyFlags")]
;~ _LeftClick($aInfo)
Case $NM_DBLCLK ; Sent by a list-view control when the user double-clicks an item with the left mouse button
Local $tInfo = DllStructCreate($tagNMITEMACTIVATE, $ilParam)
Local $aInfo[12] = [$hWndFrom, _
$iIDFrom, _
$iCode, _
DllStructGetData($tInfo, "Index"), _
DllStructGetData($tInfo, "SubItem"), _
DllStructGetData($tInfo, "NewState"), _
DllStructGetData($tInfo, "OldState"), _
DllStructGetData($tInfo, "Changed"), _
DllStructGetData($tInfo, "ActionX"), _
DllStructGetData($tInfo, "ActionY"), _
DllStructGetData($tInfo, "lParam"), _
DllStructGetData($tInfo, "KeyFlags")]
_LeftDblClick($aInfo)
Case $NM_KILLFOCUS ; The control has lost the input focus
Local $aInfo[3] = [$hWndFrom, _
$iIDFrom, _
$iCode]
;~ _LostFocus($aInfo)
Case $NM_RCLICK ; Sent by a list-view control when the user clicks an item with the right mouse button
Local $tInfo = DllStructCreate($tagNMITEMACTIVATE, $ilParam)
Local $aInfo[12] = [$hWndFrom, _
$iIDFrom, _
$iCode, _
DllStructGetData($tInfo, "Index"), _
DllStructGetData($tInfo, "SubItem"), _
DllStructGetData($tInfo, "NewState"), _
DllStructGetData($tInfo, "OldState"), _
DllStructGetData($tInfo, "Changed"), _
DllStructGetData($tInfo, "ActionX"), _
DllStructGetData($tInfo, "ActionY"), _
DllStructGetData($tInfo, "lParam"), _
DllStructGetData($tInfo, "KeyFlags")]
; Return 1 ; not to allow the default processing
Return 0 ; allow the default processing
;~ _RightClick($aInfo)
Case $NM_RDBLCLK ; Sent by a list-view control when the user double-clicks an item with the right mouse button
Local $tInfo = DllStructCreate($tagNMITEMACTIVATE, $ilParam)
Local $aInfo[12] = [$hWndFrom, _
$iIDFrom, _
$iCode, _
DllStructGetData($tInfo, "Index"), _
DllStructGetData($tInfo, "SubItem"), _
DllStructGetData($tInfo, "NewState"), _
DllStructGetData($tInfo, "OldState"), _
DllStructGetData($tInfo, "Changed"), _
DllStructGetData($tInfo, "ActionX"), _
DllStructGetData($tInfo, "ActionY"), _
DllStructGetData($tInfo, "lParam"), _
DllStructGetData($tInfo, "KeyFlags")]
;~ _RightDblClick($aInfo)
Case $NM_RETURN ; The control has the input focus and that the user has pressed the ENTER key
Local $aInfo[3] = [$hWndFrom, _
$iIDFrom, _
$iCode]
;~ _InputFocusReturn($aInfo)
Case $NM_SETFOCUS ; The control has received the input focus
Local $aInfo[3] = [$hWndFrom, _
$iIDFrom, _
$iCode]
;~ _SetFocus($aInfo)
EndSwitch
EndSwitch
Return $GUI_RUNDEFMSG
EndFunc ;==>WM_NOTIFYIch verschiebe deine Fragen mal in den Bereich Hilfe, da es mit dem MouseHotKey ja nix zu tun hat.
-
Hey,
wäre es möglich die Funktion auf einen Doppelklick zu erweitern?
z.B. bei Programmen mit Listview wäre das ziemlich gut. Links markieren, rechts das Kontextmenü und per Doppelklick den Eintrag bearbeiten.Bei der Funktion blicke ich leider nicht so richtig durch
Diese Funktion hier ermöglicht es Hotkeys mit Kombination Maustasten zu erstellen. Die Standard Hotkeys erlauben nur die Kombination von Tasten.
Wie man ListView-Einträge on-the-fly editiert kannst du hier sehen: ListView - Editieren aller SubItems -
also ich hab das jez recht einfach gelöst mit filemove(.rtf,.txt)
also einfach verschoben und antstat .rtf .txt eingesetzt
so einfach wars^^
Das ist was ich meinte: Du hast gar keine rtf-Datei.
-
Dann ist deine rtf-Datei nicht Norm-konform. Erstelle einfach mal eine Datei in Wordpad. Das ist Standard-RTF. Diese kannst du damit problemlos lesen.
-
OK, ich hab eine Lösung:
[autoit]#include <Word.au3>
[/autoit][autoit][/autoit][autoit]$sFilePath = "C:\Pfad\Datei.rtf"
[/autoit][autoit][/autoit][autoit]_WordErrorHandlerRegister()
[/autoit][autoit][/autoit][autoit]
$oWordApp = _WordCreate($sFilePath, 0, 0)
$oDoc = _WordDocGetCollection($oWordApp, 0)
$oDoc.Select
$oWordApp.Selection.Copy
$text = ClipGet()
_WordQuit($oWordApp)ConsoleWrite($text & @CRLF)
[/autoit] -
wie kann ich aus einer rtf datei den string raus ziehen
Sicher auf keinem einfachen Weg. Du kannst nicht einfach den Inhalt als Textdatei einlesen und versuchen den Text auszulesen. Der Text ist mit Formatbefehlen maskiert. Kannst ja mal im EN-Forum suchen, vielleicht hat sich schonmal wer die Mühe gemacht. -
wow danke, genau danach hab ich gerade auch gesucht, würde denn das umgekehrte, also text an edit1 senden auch gehen?
[autoit]
Klar geht das:ControlSetText ("TeamViewer", "", '[CLASS:Edit; INSTANCE:1]', 123456789)
[/autoit]Übrigens Lesen geht auch so:
[autoit]$read = ControlGetText ("TeamViewer", "", '[CLASS:Edit; INSTANCE:1]')
[/autoit]
MsgBox(0, '', $read) -
[autoit]
$read = ControlCommand("TeamViewer", '', '[CLASS:Edit; INSTANCE:1]', "GetLine", 1)
[/autoit]
ConsoleWrite('gelsesen: ' & $read & @crlf)
; oder MsgBox
MsgBox(0, '', $read) -
Die Datei xyz.exe existiert im Beispiel mehrmals auf Laufwerk C:
Also mehrfaches Auftreten einer Datei in einem Pfad kann hiermit nicht gefunden werden. Diese Suchmethode gibt immer nur die erste gefundene Instanz zurück.
Wenn du mehrfaches Auftreten finden willst, benötigst du eine Variante, die FileFindFirstFile ...NextFile verwendet. -
War ein Logikfehler drin.
[autoit]
Ersetze mal diese ZeileIf $aFound[UBound($aFound)-1] <> 0 Then ReDim $aFound[UBound($aFound)+1]
[/autoit]
[autoit]
durch dieseIf $aFound[UBound($aFound)-1] Then ReDim $aFound[UBound($aFound)+1]
[/autoit] -
Ich würde gerne mit der Funktion mehrere Dateien in mehreren Ordnern suchen.
Mit einer ist es ja kein Problem.Mit mehreren auch nicht.

Abarbeiten in einer Schleife, könntest du so machen (Suchfunktion ist hier eine andere, kannst ja testen welche schneller ist.):Spoiler anzeigen
[autoit]#include <Array.au3>
[/autoit] [autoit][/autoit] [autoit]
Global $aToSearch[2][2] = [['abc.exe','C:|D:'],['xyz.exe','C:']] ; z.b. abc.exe in C: und D:, xyz.exe nur in C: suchen
Global $aPath[2], $aFound[1] = [0]For $i = 0 To UBound($aToSearch) -1
[/autoit] [autoit][/autoit] [autoit]
If StringInStr($aToSearch[$i][1], '|') Then
$aPath = StringSplit($aToSearch[$i][1], '|')
Else
$aPath[1] = $aToSearch[$i][1]
EndIf
For $j = 1 To UBound($aPath) -1
If $aFound[UBound($aFound)-1] <> 0 Then ReDim $aFound[UBound($aFound)+1]
$aFound[UBound($aFound)-1] = _SearchTreeForFile($aPath[$j], $aToSearch[$i][0])
Next
Next
If $aFound[0] Then
_ArrayDisplay($aFound, 'Ergebnis Dateisuche')
Else
MsgBox(0, 'Dateisuche', 'Keine der Dateien wurde in den angegebenen Pfaden gefunden.')
EndIf;===============================================================================
[/autoit]
; Function Name: _SearchTreeForFile($sRootPath, $sFileName)
; Description:: Dateisuche in einem Pfad und allen Unterpfaden
; Parameter(s): $sRootPath Startpfad der Suche
; $sFileName Name der gesuchten Datei
; Return Value(s): gefunden Pfad der gesuchten Datei
; n. gefunden 0
; Author(s): BugFix ([email='bugfix@autoit.de'][/email])
;===============================================================================
Func _SearchTreeForFile($sRootPath, $sFileName)
If StringRight($sRootPath, 1) <> '\' Then $sRootPath &= '\'
Local $sOutputPathBuffer = ''
Local $aRet = DllCall("imagehlp", 'long', 'SearchTreeForFile', 'str', _
$sRootPath, 'str', $sFileName, 'str', $sOutputPathBuffer)
If $aRet[0] = 1 Then
Return $aRet[3]
Else
Return 0
EndIf
EndFunc ;==>_SearchTreeForFile