Also bei mir wird der Prozess angezeigt - scroll mal weiter hoch.
Beiträge von nuts
-
-
Ok daran lags nicht.
JuraX vielleiht hilft es schon dein Skript etwas "aufzuräumen"
Includes -> Deklaration & Wertzuweisung der Variablen (Gui usw.) -> While Wend Schleife -> Funktionen
So ca. -
GUIRegisterMsg($WM_DROPFILES, 'WM_DROPFILES_FUNC') vergessen?
Nimms mir nicht übel, aber einfach Skripte zusammenkopieren wird dich langfristig nicht ans Ziel bringen.
-
Na welche Programme die du gar nichts kennst sind denn aufgelistet?
Der gemeine Trojaner könnte sich ja als alles mögliche tarnen.
-
Ist jetzt bei diesem Skript imho nicht so dramatisch, aber trotzdem ist das Kopieren und Löschen des Authors kein guter Stil.
-
Hey,
ich suche für meinen Server einen Sata Controller (4-8 Ports), die bevorzugte Schnittstelle wäre PCI-E.
Raid-Funktionen werden nicht benötigt, allerdings ist es wichtig, dass alle Festplatten im laufenden Betrieb an- und ausgeschaltet werden können (Hot-Pluggin oder so ähnlich).
D.h. die Festplatten sollen richtig "aus" sein und auch keinen Strom mehr aus der Dose ziehen.Die Zu- und Abschaltung möchte ich mit einem Auto-it Skript automatisieren, ungefähr so soll das laufen:
ZitatAlles anzeigenClient: "Daten auf Festplatte 1 werden benötigt"
Server:"Ok ich schau mal ob sich die Festplatte zuschalten lässt"
Client: *wartet*
Server:"Festplatte 1 wurde erfolgreich eingebunden" oder "Festplatte 1 konnte nicht eingebunden werden"
Client: *greift auf Daten zu* oder *ärgert sich*
Client:"Daten von Festplatte 1 werden nichtmehr benötigt"
Server-PC:*schaltet Festplatte 1 aus*
Die Autoit-Umsetzung dürfte kein Problem sein. Mehr Sorgen bereitet mir die Hardware :wacko:
Hat vielleicht jemand sowas am laufen und kann mir einen entsprechenden Controller empfehlen? Welche Hersteller sind empehlenswert?
Der Preis ist erstmal egal.Gruß nuts
edit \ Beim ebay durchstöbern gefunden: http://cgi.ebay.de/LSI-Logic-SATA…=item3efc209201
Vielleicht sowas? -
Sorry bin heute zu nichts gekommen
Um dich nicht ganz hängen zu lassen hier mal ein Link zur angesprochenen UDF: ListView - SubItem einzeln färben/formatieren, Finale Version!
Vielleicht kommst du damit schon klar?@Clicks: Und wie willst du es haben? Kannst doch auslesen welches Item markiert ist und entsprechend reagieren.
-
Eine Funktion dazu enthält auch die Listview Varainte von Progandy.
-
Oh stimmt, _FileListtoarray wurde ziemlich beschleunigt

-
Nicht schlecht.

Progandy hat sowas mal fürs Listview gepostet, finde nur den Thread dazu nichtmehr.
Ich hoffe diese Version ist relativ untouched, da ich davon ziemlich viele Abwandlungen (einige ziemlich vermurkste :D) gespeichert habe.
Ist ziemlich flott, möglicherweise kann Oscars Variante aber mehr.
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
;#BETA
#include <GuiImageList.au3>
#include <GUIListView.au3>#include <GUIConstantsEx.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <ListViewConstants.au3>
#include <EditConstants.au3>
#include <WindowsConstants.au3>Global Const $tagSHFILEINFO = "dword hIcon; int iIcon; DWORD dwAttributes; CHAR szDisplayName[255]; CHAR szTypeName[80];"
[/autoit] [autoit][/autoit] [autoit]
Global Const $SHGFI_USEFILEATTRIBUTES = 0x10
Global Const $SHGFI_SYSICONINDEX = 0x4000
Global Const $SHGFI_SMALLICON = 0x1
Global Const $SHGFI_LARGEICON = 0x0Global Const $FOLDERUP_ICON_INDEX = _GUIImageList_AddIcon(_GUIImageList_GetSystemImageList(), @SystemDir & "\shell32.dll", 132)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
Global Const $FOLDER_ICON_INDEX = _GUIImageList_GetFileIconIndex(@SystemDir, 0, 1)
Global Const $NOICON_ICON_INDEX = _GUIImageList_GetFileIconIndex("nb lgl", 0, 0)Opt("GUIOnEventMode", 1)
[/autoit] [autoit][/autoit] [autoit]
#Region ### START Koda GUI section ### Form=D:\Dokumente\Dateien von Andreas\AutoIt3\FTP\GUI_MAIN.kxf
Global $GUI_MAIN = GUICreate("Au3FTP", 882, 586, 193, 125)
GUISetOnEvent(-3, "GUI_Close")Global $inpLocalDirectory = GUICtrlCreateInput("", 8, 28, 369, 20, $ES_READONLY)
[/autoit] [autoit][/autoit] [autoit]
Global $ListView1 = GUICtrlCreateListView("Name|Datum|Größe", 8, 48, 369, 489)Global $SHELLLISTVIEWHANDLE = GUICtrlGetHandle($ListView1) ; Get the Handle
[/autoit] [autoit][/autoit] [autoit]GUICtrlSendMsg($ListView1, 0x101E, 0, 200)
[/autoit] [autoit][/autoit] [autoit]
GUICtrlSendMsg($ListView1, 0x101E, 1, 75)
GUICtrlSendMsg($ListView1, 0x101E, 2, 50)
GUIRegisterMsg($WM_NOTIFY, "_SHLV_WM_NOTIFY")_GUICtrlListView_SetImageList($ListView1, _GUIImageList_GetSystemImageList(), 1)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
Global $DIRECTORY_LOCAL = "" ; Start with Selection of drives (IMG:http://www.autoitscript.com/forum/style_em…utoit/smile.gif)
_SHLV_PopulateLocalListView($SHELLLISTVIEWHANDLE, $DIRECTORY_LOCAL)GUISetState(@SW_SHOW)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
#EndRegion ### END Koda GUI section ###While 1
[/autoit] [autoit][/autoit] [autoit]
Sleep(100)
WEndFunc GUI_Close()
[/autoit] [autoit][/autoit] [autoit]
Exit
EndFunc ;==>GUI_Close; Prog@ndy
[/autoit] [autoit][/autoit] [autoit]
Func _SHLV_PopulateLocalListView($hListView1, ByRef $DIRECTORY_LOCAL)
If Not IsHWnd($hListView1) Then $hListView1 = GUICtrlGetHandle($hListView1)
If $DIRECTORY_LOCAL = "" Then
Local $drives = DriveGetDrive("ALL")
GUICtrlSetData($inpLocalDirectory, "Drive Selection")
_GUICtrlListView_BeginUpdate($hListView1)
_GUICtrlListView_DeleteAllItems($hListView1)
For $i = 1 To $drives[0]
_GUICtrlListView_AddItem($hListView1, StringUpper($drives[$i]) & "\", _GUIImageList_GetFileIconIndex($drives[$i] & "\"))
Next
_GUICtrlListView_EndUpdate($hListView1)
Return
EndIf
If StringRight($DIRECTORY_LOCAL, 1) <> "\" Then $DIRECTORY_LOCAL &= "\"
If DriveStatus(StringLeft($DIRECTORY_LOCAL, 3)) <> "READY" Then Return 0 * MsgBox(16 + 8192, 'Error on Drive Access', "Drive " & StringLeft($DIRECTORY_LOCAL, 3) & " not ready!")
GUICtrlSetData($inpLocalDirectory, $DIRECTORY_LOCAL)
$files = _SHLV__FileListToArray2($DIRECTORY_LOCAL, "*.*", 2)
_GUICtrlListView_BeginUpdate($hListView1)
_GUICtrlListView_DeleteAllItems($hListView1)
Local $foldercount = 0
_GUICtrlListView_AddItem($hListView1, "< .. >", $FOLDERUP_ICON_INDEX)
If IsArray($files) Then
_GUICtrlListView_SetItemCount($hListView1, $files[0] + 1)
$foldercount = $files[0] + 1
For $i = 1 To $files[0]
$item = _GUICtrlListView_AddItem($hListView1, $files[$i], $FOLDER_ICON_INDEX)
_GUICtrlListView_AddSubItem($hListView1, $item, __SHLV_FormatFilesize(DirGetSize($DIRECTORY_LOCAL & $files[$i], 2)), 2)
Next
EndIf
$files = _SHLV__FileListToArray2($DIRECTORY_LOCAL, "*.*", 1)
_GUICtrlListView_EndUpdate($hListView1)
_GUICtrlListView_BeginUpdate($hListView1)
If IsArray($files) Then
_GUICtrlListView_SetItemCount($hListView1, $files[0] + $foldercount)
For $i = 1 To $files[0]
$item = _GUICtrlListView_AddItem($hListView1, $files[$i], _GUIImageList_GetFileIconIndex($files[$i]))
_GUICtrlListView_AddSubItem($hListView1, $item, __SHLV_FileDateString2Calc(FileGetTime($DIRECTORY_LOCAL & $files[$i], 0, 1)), 1)
_GUICtrlListView_AddSubItem($hListView1, $item, __SHLV_FormatFilesize(FileGetSize($DIRECTORY_LOCAL & $files[$i])), 2)
Next
EndIf
_GUICtrlListView_EndUpdate($hListView1)
EndFunc ;==>_SHLV_PopulateLocalListView; Prog@ndy
[/autoit] [autoit][/autoit] [autoit]
Func __SHLV_FormatFilesize($size)
Select
Case $size > 1000
Return Round($size / 1024, 1) & " KB"
Case $size > 1048500
Return Round($size / 1048576, 1) & " MB"
Case Else
Return $size & " Byte"
EndSelect
EndFunc ;==>__SHLV_FormatFilesize; Prog@ndy
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
Func _GUIImageList_GetSystemImageList($bLargeIcons = False)
Local $dwFlags, $hIml, $FileInfo = DllStructCreate($tagSHFILEINFO)$dwFlags = BitOR($SHGFI_USEFILEATTRIBUTES, $SHGFI_SYSICONINDEX)
[/autoit] [autoit][/autoit] [autoit]
If Not ($bLargeIcons) Then
$dwFlags = BitOR($dwFlags, $SHGFI_SMALLICON)
EndIf;~ '// Load the image list - use an arbitrary file extension for the
[/autoit] [autoit][/autoit] [autoit]
;~ '// 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
[/autoit] [autoit][/autoit] [autoit]
EndFunc ;==>_GUIImageList_GetSystemImageList; Prog@ndy
[/autoit] [autoit][/autoit] [autoit]
Func _WinAPI_SHGetFileInfo($pszPath, $dwFileAttributes, $psfi, $cbFileInfo, $uFlags)
Local $return = DllCall("shell32.dll", "DWORD*", "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; Prog@ndy
[/autoit] [autoit][/autoit] [autoit]
Func _GUIImageList_GetFileIconIndex($sFileSpec, $bLargeIcons = False, $bForceLoadFromDisk = False)
Local $dwFlags, $FileInfo = DllStructCreate($tagSHFILEINFO)$dwFlags = $SHGFI_SYSICONINDEX
[/autoit] [autoit][/autoit] [autoit]
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)
EndIf;~ ' sFileSpec can be any file. You can specify a
[/autoit] [autoit][/autoit] [autoit]
;~ ' 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
[/autoit] [autoit][/autoit] [autoit]
Return SetError(1, 0, -1)
Else
Return DllStructGetData($FileInfo, "iIcon")
EndIf
EndFunc ;==>_GUIImageList_GetFileIconIndex; Author(s): Prog@ndy
[/autoit] [autoit][/autoit] [autoit]
Func __SHLV_FileDateString2Calc($filedate)
Return StringRegExpReplace($filedate, "(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})", "$1/$2/$3 $4:$5:$6")
EndFunc ;==>__SHLV_FileDateString2Calc
; Author(s): Prog@ndy
Func __SHLV_CalcDate2FileDateString($calcdate)
Return StringRegExpReplace($calcdate, "(\d{4})/(\d{2})/(\d{2}) (\d{2})(IMG:http://www.autoitscript.com/forum/style_em…/autoit/sad.gif) \d{2})(IMG:http://www.autoitscript.com/forum/style_em…/autoit/sad.gif) \d{2})", "$1$2$3$4$5$6")
EndFunc ;==>__SHLV_CalcDate2FileDateString; Prog@ndy
[/autoit] [autoit][/autoit] [autoit]
Func _SHLV_WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam)
#forceref $hWnd, $iMsg, $iwParam
Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR, $tInfo, $hListView1 = $SHELLLISTVIEWHANDLE$tNMHDR = DllStructCreate($tagNMHDR, $ilParam)
[/autoit] [autoit][/autoit] [autoit]
$hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
$iIDFrom = DllStructGetData($tNMHDR, "IDFrom")
$iCode = DllStructGetData($tNMHDR, "Code")
Switch $hWndFrom
Case $hListView1
;MsgBox(1, "", $iCode)
Switch $iCode
Case $NM_DBLCLK ; Sent by a list-view control when the user double-clicks an item with the left mouse button
Local $ItemText = _GUICtrlListView_GetItemText($hListView1, _GUICtrlListView_GetSelectedIndices($hListView1), 0)
_Browse($ItemText)Case $LVN_KEYDOWN
[/autoit] [autoit][/autoit] [autoit]
Local $tagLVKEYDOWN = $tagNMHDR & "; USHORT wVKey; UINT flags;"
$tNMHDR = DllStructCreate($tagLVKEYDOWN, $ilParam)
;MsgBox(1, "", DllStructGetData($tNMHDR, "wVKey"))
Switch DllStructGetData($tNMHDR, "wVKey")
Case 0x27; rechte Pfeiltaste
Local $ItemText = _GUICtrlListView_GetItemText($hListView1, _GUICtrlListView_GetSelectedIndices($hListView1), 0)
_Browse($ItemText)
Case 0x25 ;linke Pfeiltaste
Local $slash = StringInStr($DIRECTORY_LOCAL, "\", 1, -2)
If $slash Then
$DIRECTORY_LOCAL = StringLeft($DIRECTORY_LOCAL, $slash)
ElseIf StringRegExp($DIRECTORY_LOCAL, "\A[A-Za-z]:\\\Z") Then
$DIRECTORY_LOCAL = ""
EndIf
_SHLV_PopulateLocalListView($ListView1, $DIRECTORY_LOCAL)
;No return value
EndSwitch
EndSwitch
EndSwitch
Return $GUI_RUNDEFMSG
EndFunc ;==>_SHLV_WM_NOTIFYFunc _Browse($data)
[/autoit] [autoit][/autoit] [autoit]
If StringInStr(FileGetAttrib($DIRECTORY_LOCAL & $data), "D") Then
$DIRECTORY_LOCAL &= $data
_SHLV_PopulateLocalListView($ListView1, $DIRECTORY_LOCAL)
ElseIf StringRegExp($data, "\A[A-Za-z]:\\\Z") Then
$DIRECTORY_LOCAL = $data
_SHLV_PopulateLocalListView($ListView1, $DIRECTORY_LOCAL)
ElseIf $data = "< .. >" Then
Local $slash = StringInStr($DIRECTORY_LOCAL, "\", 1, -2)
If $slash Then
$DIRECTORY_LOCAL = StringLeft($DIRECTORY_LOCAL, $slash)
ElseIf StringRegExp($DIRECTORY_LOCAL, "\A[A-Za-z]:\\\Z") Then
$DIRECTORY_LOCAL = ""
EndIf
_SHLV_PopulateLocalListView($ListView1, $DIRECTORY_LOCAL)
Else
If MsgBox(36, "ShellListView", "Soll diese Datei geöffnet werden? " & @CRLF & $DIRECTORY_LOCAL & $data) = 6 Then
ShellExecute($DIRECTORY_LOCAL & $data, "", $DIRECTORY_LOCAL)
EndIf
EndIf
EndFunc ;==>_Browse; Author ........: SolidSnake <MetalGX91 at GMail dot com>
[/autoit]
; Modified by Prog@ndy
Func _SHLV__FileListToArray2($sPath, $sFilter = "*", $iFlag = 0)
Local $hSearch, $sFile, $asFileList
If Not FileExists($sPath) Then Return SetError(1, 1, "")
If (StringInStr($sFilter, "\")) Or (StringInStr($sFilter, "/")) Or (StringInStr($sFilter, ":")) Or (StringInStr($sFilter, ">")) Or (StringInStr($sFilter, "<")) Or (StringInStr($sFilter, "|")) Or (StringStripWS($sFilter,
= "") Then Return SetError(2, 2, "")
If Not ($iFlag = 0 Or $iFlag = 1 Or $iFlag = 2) Then Return SetError(3, 3, "")
If (StringMid($sPath, StringLen($sPath), 1) = "\") Then $sPath = StringTrimRight($sPath, 1) ; needed for Win98 for x:\ root dir
$hSearch = FileFindFirstFile($sPath & "\" & $sFilter)
If $hSearch = -1 Then Return SetError(4, 4, "")
While 1
$sFile = FileFindNextFile($hSearch)
If @error Then
SetError(0)
ExitLoop
EndIf
If $iFlag = 1 And StringInStr(FileGetAttrib($sPath & "\" & $sFile), "D") <> 0 Then ContinueLoop
If $iFlag = 2 And StringInStr(FileGetAttrib($sPath & "\" & $sFile), "D") = 0 Then ContinueLoop
$asFileList &= $sFile & @CR
WEnd
FileClose($hSearch)
If Not $asFileList Then
Dim $asFileList[1] = [0]
Return SetError(1, 0, $asFileList)
EndIf
Return StringSplit(StringTrimRight($asFileList, 1), @CR)
EndFunc ;==>_SHLV__FileListToArray2\edit Oscars Variante bremst doch eigentlich nur die relativ langsame Funktion: _FileListToArray ?
Da lässt sich bestimmt noch was rausholen.
-
Gute Entscheidung aufs Listview umzustellen.
Hier die Auswertung der Clicks:Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#include <GUIConstants.au3>
#include <WindowsConstants.au3>
#include <GUIListView.au3>
#include <GUIConstantsEx.au3>
#include <ListViewConstants.au3>$MainGui = GUICreate("Listview Beispiel", 616, 395, 192, 120)
[/autoit] [autoit][/autoit] [autoit]$ListView = GUICtrlCreateListView("Produkt Name", 8, 8, 498, 214)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$hListView= GUICtrlGetHandle($ListView)
$TestItem = GUICtrlCreateListViewItem("TEST1", $ListView)
$TestItem2 = GUICtrlCreateListViewItem("TEST2", $ListView)
$hbutton = GUICtrlCreateButton("testbutton", 150,300 , 177, 21)
Global $test
GUISetState(@SW_SHOW)
GUIRegisterMsg($WM_notify, "_DoubleClickOnListView");Die Funktion bei einer WM_Notify MessageWhile 1
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEndFunc _DoubleClickOnListView($hWnd, $iMsg, $iwParam, $ilParam)
[/autoit] [autoit][/autoit] [autoit]
#forceref $hWnd, $iMsg, $iwParam
Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR, $iIDFrom$tNMHDR = DllStructCreate($tagNMHDR, $ilParam)
[/autoit]
$hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
$iIDFrom = DllStructGetData($tNMHDR, "IDFrom")
$iCode = DllStructGetData($tNMHDR, "Code")
Switch $hWndFrom
Case $hListView
Switch $iCode ;checkt wie das Event aussieht
Case $NM_DBLCLK ;bei einem Doppelklick (markiert das Item farbig)
ConsoleWrite("DoubleClickOnListView" & @CRLF)
case $NM_CLICK ;bei einem einfachen Linksclick
ConsoleWrite("ClickOnListView" & @CRLF)
case $NM_RCLICK ;der Rechtsclick (hebt die Markeirung auf
ConsoleWrite("RClickOnListView" & @CRLF)
EndSwitch
EndSwitch
Return $GUI_RUNDEFMSG
EndFunc ;==>_DoubleClickOnListView
Für die farbige Markierung der Items hab ich leider gerade kein Beispiel. Kann ich morgen nachreichen (gibts auch ne UDF von Bugfix dazu). -
Icons gehen auch:
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#include <GuiToolbar.au3>
#include <GuiConstantsEx.au3>
#include <WindowsConstants.au3>
#include <Constants.au3>
#include <WinAPI.au3>
#include <GuiImageList.au3>Opt('MustDeclareVars', 1)
[/autoit] [autoit][/autoit] [autoit]$Debug_TB = False ; Check ClassName being passed to functions, set to True and use a handle to another control to see it work
[/autoit] [autoit][/autoit] [autoit]Global $hlibary = @ScriptDir &"\fertig.dll" ;der Pfad zu deiner .dll
[/autoit] [autoit][/autoit] [autoit]
Global $hToolbar, $iMemo
Global $iItem ; Command identifier of the button associated with the notification.
Global Enum $idNew = 1000, $idOpen, $idSave, $idHelp_Main()
[/autoit] [autoit][/autoit] [autoit]Func _Main()
[/autoit] [autoit][/autoit] [autoit]
Local $hGUI, $aSize, $hImage, $count
local $test = 2000
; Create GUI
$hGUI = GUICreate("Toolbar", 600, 400)
$hToolbar = _GUICtrlToolbar_Create ($hGUI)
$hImage = _GUIImageList_Create()
$count = _WinAPI_ExtractIconEx($hlibary, -1, 0, 0, 0)
for $i = 0 to $count -1
_GUIImageList_AddIcon($hImage, $hlibary, $i,1)
next
_GUIImageList_SetBkColor($hImage, 0x0000FF)
_GUIImageList_SetIconSize($hImage, 16, 16)
_GUICtrlToolbar_SetImageList($hToolbar, $hImage)
GUISetState(); Add standard system bitmaps
[/autoit] [autoit][/autoit] [autoit]
;_GUICtrlToolbar_AddBitmap ($hToolbar, 1, -1, $IDB_STD_LARGE_COLOR); Add buttons
[/autoit] [autoit][/autoit] [autoit]
;_GUICtrlToolbar_AddButton ($hToolbar, $idNew, $STD_FILENEW)
;_GUICtrlToolbar_AddButton ($hToolbar, $idOpen, $STD_FILEOPEN)
;_GUICtrlToolbar_AddButton ($hToolbar, $idSave, $STD_FILESAVE)
;_GUICtrlToolbar_AddButtonSep ($hToolbar)
;_GUICtrlToolbar_AddButton ($hToolbar, $idHelp, $STD_HELP)
;_GUICtrlToolbar_AddButtonSep ($hToolbar)
_GUICtrlToolbar_AddButton ($hToolbar, $test, 0); Loop until user exits
[/autoit] [autoit][/autoit] [autoit]
Do
Until GUIGetMsg() = $GUI_EVENT_CLOSEEndFunc ;==>_Main
[/autoit] -
Schon seltsam
Mal sehn, vielleicht kann auf auf das Event "unter/obere" Grenze reagieren. Braucht dann zwar 1 Klick mehr, sieht aber nicht ganz so buggy aus. -
Alles Gute.

-
Mal ein Schubs nach oben.

-
Wie wird die Karte denn eingesetzt? Als reiner Videorekorder oder auch zur Live-Wiedergabe?
Wichtig ist immer die TV-Software (Empfehlung: DVB-Viewer Pro) und um möglichst flexibel zu bleiben sollten daher BDA-Treiber für die Karte verfügbar sein.
Die beiliegende Software ist nämlich meisten sehr limitiert.Die AVerTV Satellite Trinity ist soweit ich das sehe nicht DVB-S2 fähig, d.h. kein HDTV (DVB-S HD gibts unter Astra 19,2° nicht und HDTV über DVB-T ist in Deutschland eh utopisch)
Meine Empfehlung: http://shop.digital-devices.de/epages/6235716…62/Categories/1
Ist nur ohne S-Video Eingang, wofür brauchste den denn?P.S. Sollte Pay-TV irgendwann eine Rolle spielen brauchst du eine CI-Schnittstelle (wir für die empholene Karte via USB noch irgendwann angeboten).
P.S.S. Sehr gute TV Karten, die jedoch gar nicht in dein Beuteschema passen sind: FireDTV-S2, FloppyDTV-S2 (leider nurnoch gebraucht zu kaufen und teuer), Technotrend budget s-3200 ( oder die baugleiche Technisat Sykstar HD ) -
Hey,
mal wieder ein Problem zu Listview, hier das Skript:
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <ListViewConstants.au3>
#include <WindowsConstants.au3>
#include <GUIListView.au3>
Global Const $tagLVKEYDOWN = $tagNMHDR & "; USHORT wVKey; UINT flags;"
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 633, 447, 193, 125)
$ListView1 = GUICtrlCreateListView("Hallo|1", 56, 40, 433, 225,"",BitOR($LVS_EX_FULLROWSELECT, $LVS_EX_DOUBLEBUFFER))
$ListView2 = GUICtrlCreateListView("Hallo|2", 56, 40, 433, 225,$LVS_NOSCROLL,BitOR($LVS_EX_FULLROWSELECT, $LVS_EX_DOUBLEBUFFER))
$hListView1 = GUICtrlGetHandle($ListView1)
GUICtrlSetState(-1,$GUI_HIDE)
$Button1 = GUICtrlCreateButton("Button1", 64, 288, 129, 49, 0)
$Button2 = GUICtrlCreateButton("Button2", 264, 288, 185, 49, 0)
GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
for $i = 0 to 20
GUICtrlCreateListViewItem("test|" & $i,$ListView1)
next
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
case $Button1
GUICtrlSetState($ListView1, $GUI_HIDE)
GUICtrlSetState($ListView2, $GUI_Show)
GUICtrlCreateListViewItem("test|test",$ListView1)
case $Button2
GUICtrlSetState($ListView2, $GUI_HIDE)
GUICtrlSetState($ListView1, $GUI_Show)
GUICtrlCreateListViewItem("test|test",$ListView2)
EndSwitch
WEndFunc WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam)
[/autoit] [autoit][/autoit] [autoit]
#forceref $hWnd, $iMsg, $iwParam
Local $hWndFrom, $iCode, $tNMHDR, $tInfo, $wVKey$tNMHDR = DllStructCreate($tagNMHDR, $ilParam)
[/autoit] [autoit][/autoit] [autoit]
$hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
$iCode = DllStructGetData($tNMHDR, "Code")
Switch $hWndFrom
Case $hListView1
Switch $iCode
Case $LVN_KEYDOWN
$tNMHDR = DllStructCreate($tagLVKEYDOWN, $ilParam)
$wVKey= DllStructGetData($tNMHDR, "wVKey")
Switch $wVKey
case 40
if _GUICtrlListView_GetSelectionMark($hListView1)+1 = _GUICtrlListView_GetItemCount($hListView1) Then
_GUICtrlListView_SetSelectionMark($hListView1,0)
_GUICtrlListView_SetItemFocused($hListView1,0)
endif
case 38
if _GUICtrlListView_GetSelectedIndices($hListView1) = 0 Then
_GUICtrlListView_SetItemSelected($hListView1, _GUICtrlListView_GetItemCount($hListView1)-1)
_GUICtrlListView_SetItemFocused($hListView1,_GUICtrlListView_GetItemCount($hListView1)-1)
endif
EndSwitch
EndSwitchEndSwitch
[/autoit]
Return $GUI_RUNDEFMSG
EndFunc ;==>_SHLV_WM_NOTIFY
Sinn des Skripts soll sein, dass man die Markierung auf ein KeyUP/Down Event setzen kann.
Und zwar immer wenn das erste oder das letzte Item markiert ist.Funktioniert auch fast, allerdings springt die Markierung komischerweise immer ein Item zu weit?
Also anstatt z.B. Item 1 (Index 0) zu markieren wird Item 2 (Index 1) markiert.
Probierts am besten mal selbst aus, dann sollte es klar werden.Gruß nuts
-
GUICtrlSetOnEvent

Ob man damit ein Item belegen kann glaube ich aber nciht.
Ist eigentlich auch nicht nötig, die Info welches Item angeklickt wurde holst du dir einfach über _GUICtrlTreeView_GetSelection -
Hatten wir das nicht hier erst? [ offen ] Prob mit Array in einer For-Schleife und GUIGetMsg()
-
Aber mit C++ .dll's müsste es doch so gehen?
