OK Fehler Nr1 behoben
Hab aber noch Fehler Nr 5 vergessen
Wenn ich das Bild in die Liste rein mache kann ich weder Dateien hinzufügen noch funktioniert das Scrollen richtig wodran liegt das?
OK Fehler Nr1 behoben
Hab aber noch Fehler Nr 5 vergessen
Wenn ich das Bild in die Liste rein mache kann ich weder Dateien hinzufügen noch funktioniert das Scrollen richtig wodran liegt das?
Hallo zusammen,
da ich immer mich weiter entwickeln will in AutoIt habe ich was mit ListView gemacht und habe jetzt ein paar Probleme, die ich nicht so auf die reihe bekomme und brauch deshalb eure Hilfe.
hier erst mal der CODE
[autoit#include <array.au3>
#include <Misc.au3>
#include <GUIConstantsEx.au3>
#include <GuiListView.au3>
#include <ColorConstants.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <EditConstants.au3>
#include <SendMessage.au3>
#include <Sound.au3>
Global $aDropFiles[1]
Global Const $VK_DELETE = 0x2E
Global Const $AllesMarkieren = 0x41
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Liste Sortieren", 333, 437, -1, -1, BitOR($WS_MINIMIZEBOX,$WS_SYSMENU,$WS_POPUP,$WS_GROUP,$WS_CLIPSIBLINGS), $WS_EX_ACCEPTFILES)
GUICtrlSetState($Form1, $GUI_DROPACCEPTED)
GUISetOnEvent($GUI_EVENT_DROPPED, "_FilesDropped")
$Pic1 = GUICtrlCreatePic("C:\Windows\Web\Screen\img103.jpg", 0, 0, 332, 436, BitOR($SS_NOTIFY, $WS_GROUP, $WS_CLIPSIBLINGS))
GUICtrlSetState($Pic1, $GUI_DISABLE)
$ExitButton = GUICtrlCreateButton("Exit", 266, 8, 60, 25)
$DateiLabel = GUICtrlCreateLabel("Keine Datei ausgewählt", 8, 40, 316, 40)
GUICtrlSetColor(-1, 0x00FF00)
GUICtrlSetBkColor(-1, 0x000000)
Local $ListView = GUICtrlCreateListView("Nr|Titel|Status|Datei",8,85,316,343,BitOR($LVS_SHOWSELALWAYS, $LVS_REPORT))
;~ $ListView = GUICtrlGetHandle($ListView)
GUICtrlSetBkColor($ListView,0x1E1E1E)
GUICtrlSetColor($ListView,0xffffff)
GUICtrlSetState($ListView, BitOR($GUI_DROPACCEPTED,$GUI_FOCUS))
_GUICtrlListView_SetBkImage($ListView,"C:\Windows\Web\Screen\img103.jpg")
_GUICtrlListView_SetColumnWidth($ListView, 0, 40)
_GUICtrlListView_SetColumnWidth($ListView, 1, 200)
_GUICtrlListView_SetColumnWidth($ListView, 3, 0)
GUIRegisterMsg($WM_DROPFILES, "WM_DROPFILES_FUNC")
GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")
GUISetState(@SW_SHOW)
For $i = 0 To 255
_GUICtrlListView_AddItem($ListView, $i)
_GUICtrlListView_AddSubItem($ListView, $i, $i & " Spalte 2 Irgendetwas", 1,1)
_GUICtrlListView_AddSubItem($ListView, $i, $i & " Spalte 3", 2,2)
_GUICtrlListView_AddSubItem($ListView, $i, $i & " Spalte 4", 3,3)
Next
While Sleep(10)
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
Exit
Case $ExitButton
Exit
Case $GUI_EVENT_DROPPED
If @GUI_DropId = $ListView Then GUICtrlSetData($ListView, @GUI_DragFile)
_FilesDropped()
EndSwitch
WEnd
Func _ListView_Sort($cIndex = 0)
Local $iColumnsCount, $iDimension, $iItemsCount, $aItemsTemp, $aItemsText, $iCurPos, $iImgSummand, $i, $j
$iColumnsCount = _GUICtrlListView_GetColumnCount($ListView)
$iDimension = $iColumnsCount * 2
$iItemsCount = _GUICtrlListView_GetItemCount($ListView)
If $iItemsCount = 0 Then Return ConsoleWrite('Keine Dateien in Liste vorhanden' & @CR)
Local $aItemsTemp[1][$iDimension]
For $i = 0 To $iItemsCount - 1
$aItemsTemp[0][0] += 1
ReDim $aItemsTemp[$aItemsTemp[0][0] + 1][$iDimension]
$aItemsText = _GUICtrlListView_GetItemTextArray($ListView, $i)
$iImgSummand = $aItemsText[0] - 1
For $j = 1 To $aItemsText[0]
$aItemsTemp[$aItemsTemp[0][0]][$j - 1] = $aItemsText[$j]
$aItemsTemp[$aItemsTemp[0][0]][$j + $iImgSummand] = _GUICtrlListView_GetItemImage($ListView, $i, $j - 1)
Next
Next
$iCurPos = $aItemsTemp[1][$cIndex]
_ArraySort($aItemsTemp, 0, 1, 0, $cIndex)
If StringInStr($iCurPos, $aItemsTemp[1][$cIndex]) Then _ArraySort($aItemsTemp, 1, 1, 0, $cIndex)
ConsoleWrite($iCurPos & ' ' & $aItemsTemp[1][$cIndex] & ' ' & $aItemsTemp & @CR)
For $i = 1 To $aItemsTemp[0][0]
For $j = 1 To $iColumnsCount
_GUICtrlListView_SetItemText($ListView, $i - 1, $aItemsTemp[$i][$j - 1], $j - 1)
_GUICtrlListView_SetItemImage($ListView, $i - 1, $aItemsTemp[$i][$j + $iImgSummand], $j - 1)
Next
Next
EndFunc
Func WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam)
#forceref $hWnd, $iMsg, $iwParam
Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR, $hWndListView, $tInfo
$hWndListView = $ListView
If Not IsHWnd($ListView) Then $hWndListView = GUICtrlGetHandle($ListView)
$tNMHDR = DllStructCreate($tagNMHDR, $ilParam)
$hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
$iIDFrom = DllStructGetData($tNMHDR, "IDFrom")
$iCode = DllStructGetData($tNMHDR, "Code")
Switch $hWndFrom
Case $hWndListView
Switch $iCode
Case $NM_DBLCLK ; Sent by a list-view control when the user double-clicks an item with the left mouse button
Local $sDrive, $sDir, $sFilename, $sExtension
$tInfo = DllStructCreate($tagNMITEMACTIVATE, $ilParam)
_GUICtrlListView_SetItemSelected($ListView, DllStructGetData($tInfo, "Index"),True,True)
$lol = _GUICtrlListView_GetItemText($ListView, DllStructGetData($tInfo, "Index"),3)
Local $aPathSplit = _PathSplit($lol, $sDrive, $sDir, $sFilename, $sExtension)
If IsArray($aPathSplit) Then
If FileExists($aPathSplit[0]) Then
Local $hallo
$hallo = MsgBox(4100, 'Datei', 'Datei: ' & $aPathSplit[0] & @CR & @CR & _
'Laufwerk: ' & $aPathSplit[1] & @CR & @CR & _
'Ordner: ' & $aPathSplit[2] & @CR & @CR & _
'Dateiname: ' & $aPathSplit[3] & @CR & @CR & _
'Dateiendung: ' & $aPathSplit[4] & @CR & @CR & @CR & @CR & _
'Soll die Datei ausgewählt werden?')
If $hallo = 6 Then GUICtrlSetData($DateiLabel, $aPathSplit[0])
Else
GUICtrlSetData($DateiLabel, _GUICtrlListView_GetItemText($ListView, DllStructGetData($tInfo, "Index"),1))
EndIf
EndIf
Case $LVN_COLUMNCLICK
Local $tInfo = DllStructCreate($tagNMLISTVIEW, $ilParam)
Local $ColumnIndex = DllStructGetData($tInfo, "SubItem")
_ListView_Sort($ColumnIndex)
Case $LVN_KEYDOWN
$taGLVKEYDOWN = DllStructCreate("int;int;int;int;uint", $ilParam)
$code = Hex(DllStructGetData($taGLVKEYDOWN, 4), 2)
Select
Case $code = Hex($VK_DELETE, 2)
_GUICtrlListView_BeginUpdate($ListView)
$id = _GUICtrlListView_GetItemCount($ListView)
$Selected = StringSplit(_GUICtrlListView_GetSelectedIndices ($ListView), "|")
If $Selected[0]=$id then
_GUICtrlListView_DeleteAllItems($ListView)
Else
For $i=$Selected[0] To 1 Step -1 ; Loop through the array returned by StringSplit to display the individual values.
_GUICtrlListView_DeleteItem ($ListView, $Selected[$i])
Next
EndIf
$id = _GUICtrlListView_GetItemCount($ListView)
For $i = 0 To $id
_GUICtrlListView_SetItem($ListView,$i+1,$i,0)
Next
_GUICtrlListView_EndUpdate($ListView)
Case $code = Hex($AllesMarkieren, 2)
Local $hDLL = DllOpen("user32.dll")
If _IsPressed("11", $hDLL) Then
ControlListView ( "", "", $ListView, "SelectAll")
EndIf
EndSelect
EndSwitch
EndSwitch
Return $GUI_RUNDEFMSG
EndFunc ;==>WM_NOTIFY
#region ;Drag and Drop und Doppelklick
Func WM_DROPFILES_FUNC($hWnd, $msgID, $wParam, $lParam)
Local $nSize, $pFileName
Local $nAmt = DllCall("shell32.dll", "int", "DragQueryFile", "hwnd", $wParam, "int", 0xFFFFFFFF, "ptr", 0, "int", 255)
For $i = 0 To $nAmt[0] - 1
$nSize = DllCall("shell32.dll", "int", "DragQueryFile", "hwnd", $wParam, "int", $i, "ptr", 0, "int", 0)
$nSize = $nSize[0] + 1
$pFileName = DllStructCreate("char[" & $nSize & "]")
DllCall("shell32.dll", "int", "DragQueryFile", "hwnd", $wParam, "int", $i, "ptr", DllStructGetPtr($pFileName), "int", $nSize)
ReDim $aDropFiles[$i + 1]
$aDropFiles[$i] = DllStructGetData($pFileName, 1)
$pFileName = 0
Next
EndFunc ;==>WM_DROPFILES_FUNC
Func _FilesDropped()
Local $szDrive, $szDir, $szFName, $szExt, $split
_GUICtrlListView_BeginUpdate($ListView)
$id = _GUICtrlListView_GetItemCount($ListView)
For $i = 0 To UBound($aDropFiles) - 1
$id = $id+1
$split = _PathSplit($aDropFiles[$i], $szDrive, $szDir, $szFName, $szExt)
$szExt = StringUpper($szExt)
GUICtrlCreateListViewItem($id & "|" & $split[3] & $split[4] & "|" & "Bereit" & "|" & $split[0], $ListView)
Next
_GUICtrlListView_SetColumnWidth($ListView, 3, 0)
_GUICtrlListView_EndUpdate($ListView)
EndFunc ;==>_FilesDropped[/autoit]
Bei folgenden Fehler brauche ich Hilfe:
1. Wenn ich Dateien per Drag and Drop in die Liste hinzufüge, ersetzt es mir die Überschrift "Nr" in eine der Hinzugefügten Dateien. Was mach ich da falsch?
2. Wenn ich oben auf die Überschriften klicke, kann ich die Liste sortieren. Leider sortiert es mir aber falsch. Wo ist da der Hacken?
3. Man kann in der Liste Einträge löschen. Angenommen ich markiere von Zeile Nr. 5 bis zum Schluss alles so dass nur noch weniger Einträge in der Liste bleiben als das die voll ausgefällt wäre oder wenn ich unten alles markiere aber dann oben stehe und dann die markierten Einträge lösche, dann verschwindet die ListView komplett und wird erst wieder langsam sichtbar wenn ich über die übrigen Einträge mit der Maus drüber gehe oder klicke.
Wie kann ich das beseitigen? Gibt es da eine Funktion die die Liste dann aktualisiert.
4. Ist zwar kein Fehler, aber was mir noch fehlt ist wie kann ich es anstellen dass ich mit der Maus die einzelnen Positionen untereinander verschieben kann? Also sozusagen die Reihenfolge der Zeilen untereinander tauschen.
Wenn ihr mir dabei helfen könntet, dann seid ihr die Besten der Besten von Allerbesten
Danke schon mal vorab
ist das 2.0 oder 1.2?
Weil in der Datei steht 1.2
Hallo
tolles Programm
wäre das nicht besser bei doppelten Einträgen nach Titel und Interpreten zu vergleichen da der ja alle Einträge nach Titel löscht?
OK
Danke an alle hab es mit eurer Hilfe hinbekommen!
Hallo Leute,
ist es irgendwie möglich die Progress Bar beim anklicken zu verstellen?
Ich habe hier einen Musikplayer bei dem ich gerne den Song mit anklicken auf die Progress Bar verstellen möchte.
So ähnlich wie vor oder rückspulen bei Media Player.
Leider habe ich absolut kein Plan wie ich das realisieren könnte.
Vielleicht hat jemand eine Idee und kann mir da weiterhelfen?
Hier bis jetzt mein CODE
#include <GUIConstantsEx.au3>
#include <GUIConstantsEx.au3>
#include <ColorConstants.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <Sound.au3>
Global $XS_n
[/autoit] [autoit][/autoit] [autoit]#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Mp3 Player", 333, 437, -1, -1, BitOR($WS_MINIMIZEBOX,$WS_SYSMENU,$WS_POPUP,$WS_GROUP,$WS_CLIPSIBLINGS))
FileInstall("C:\Windows\Web\Screen\img105.jpg", ".\Background.jpeg")
$Pic1 = GUICtrlCreatePic("Background.jpeg", 0, 0, 332, 436, BitOR($SS_NOTIFY, $WS_GROUP, $WS_CLIPSIBLINGS))
GUICtrlSetState(-1, $GUI_DISABLE)
$DateiButton = GUICtrlCreateButton("...", 8, 8, 60, 25)
$PlayButton = GUICtrlCreateButton("Play", 74, 8, 60, 25)
$PauseButton = GUICtrlCreateButton("Pause", 139, 8, 60, 25)
$StopButton = GUICtrlCreateButton("Stop", 202, 8, 60, 25)
$ExitButton = GUICtrlCreateButton("Exit", 266, 8, 60, 25)
$DateiLabel = GUICtrlCreateLabel("Keine Datei ausgewählt", 8, 40, 319, 40)
GUICtrlSetColor(-1, 0x00FF00)
GUICtrlSetBkColor(-1, 0x000000)
$ZeitLabel = GUICtrlCreateLabel("Zeit: 0 - Länge: 0 - Übrig: 0", 8, 80, 319, 17)
GUICtrlSetColor(-1, 0x00FF00)
GUICtrlSetBkColor(-1, 0x000000)
$Progress1 = GUICtrlCreateProgress(8, 100, 319, 17)
$Lautstaerke = GUICtrlCreateSlider(8, 392, 318, 37)
GUICtrlSetData(-1, 1)
GUICtrlSetBkColor(-1,0x000000)
XPStyleToggle(1);turn xp themes off
$ReiseJerusalem = GUICtrlCreateCheckbox("Spiel: Reise nach Jerusalem", 8, 360, 319, 34)
GUICtrlSetColor($ReiseJerusalem, $COLOR_WHITE)
GUICtrlSetBkColor($ReiseJerusalem, $GUI_BKCOLOR_TRANSPARENT)
XPStyleToggle(0);turn XP themes on again
GUIRegisterMsg($WM_NCHITTEST, "WM_NCHITTEST")
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
Global $hSound, $lol, $Lenght, $Pos, $Paused = False
Local $Ordner = 'X:\Musik'
Local $lol = $Ordner & '\Russische Musik\ä¿ß¬«ÔѬá 80-Õ.ùáßÔý1\03_-_Afric_Simone_-_Hafanana.mp3'
GUICtrlSetData($DateiLabel, $lol)
$Read = GUICtrlRead($Lautstaerke)
SoundSetWaveVolume($Read)
While Sleep(10)
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
_SoundStop($hSound)
Exit
Case $DateiButton
;~ $lol = FileOpenDialog("", @UserProfileDir & "\Music", "(*.mp3)", 1)
$lol = FileOpenDialog("", $Ordner, "(*.mp3)", 1)
GUICtrlSetData($DateiLabel, $lol)
Case $PlayButton
If IsArray($hSound) And $hSound[3] > 0 Then _SoundClose($hSound)
$hSound = _SoundOpen($lol)
If @error Then
MsgBox(48, "Fehler", "Es wurde keine Datei ausgewählt!")
Else
$Lenght = _SoundLength($hSound)
_SoundPlay($hSound)
$Paused = False
EndIf
GUICtrlSetData($DateiLabel, $lol)
If _IsChecked($ReiseJerusalem) Then $Position = _SoundPos($hSound, 2) + Random(15, 30, 1)*1000
Case $StopButton
If IsArray($hSound) And $hSound[3] > 0 Then
_SoundStop($hSound)
_SoundClose($hSound)
EndIf
Case $ExitButton
_SoundStop($hSound)
Exit
Case $PauseButton
$Paused = Not $Paused
If $Paused = True Then _SoundPause($hSound)
If $Paused = False Then
_SoundResume ($hSound)
If _IsChecked($ReiseJerusalem) Then $Position = _SoundPos($hSound, 2) + Random(15, 30, 1)*1000
EndIf
Case $Lautstaerke
$Read = GUICtrlRead($Lautstaerke)
SoundSetWaveVolume($Read)
Case $ReiseJerusalem
$Position = _SoundPos($hSound, 2) + Random(15, 30, 1)*1000
Case $Progress1
Hier sollte irgendwie was passieren
EndSwitch
$Maximale_Laenge = _SoundLength($hSound, 2)
$Aktuelle_Position = _SoundPos($hSound, 2)
$Fortschritt = $Aktuelle_Position * 100 / $Maximale_Laenge
If (GUICtrlRead($Progress1) + 1) <> $Fortschritt Then
GUICtrlSetData($Progress1, $Fortschritt)
EndIf
$Pos = _SoundPos($hSound)
Local $Hours, $Mins, $Secs
__SoundTicksToTime($Maximale_Laenge - $Aktuelle_Position, $Hours, $Mins, $Secs)
$Left = StringFormat("%02i:%02i:%02i", $Hours, $Mins, $Secs)
$bla = "Zeit: " & $Pos & " - Länge: " & $Lenght & " - Übrig: " & $Left
If GUICtrlRead($ZeitLabel) <> $bla Then GUICtrlSetData($ZeitLabel, $bla)
If _IsChecked($ReiseJerusalem) And _SoundPos($hSound, 2) > $Position Then
_SoundPause($hSound)
$Paused = True
$Position = _SoundPos($hSound, 2) + Random(15, 30, 1)*1000
EndIf
If _IsChecked($ReiseJerusalem) Then ConsoleWrite("Aktuelle Position: " & Sec2Time(_SoundPos($hSound, 2)/1000) & ' bis ' & Sec2Time($Position/1000) & " _SoundStatus: " & _SoundStatus($hSound) & @CRLF)
WEnd
Func XPStyleToggle($Off = 1)
If Not StringInStr(@OSTYPE, "WIN32_NT") Then Return 0
If $Off Then
$XS_n = DllCall("uxtheme.dll", "int", "GetThemeAppProperties")
DllCall("uxtheme.dll", "none", "SetThemeAppProperties", "int", 0)
Return 1
ElseIf IsArray($XS_n) Then
DllCall("uxtheme.dll", "none", "SetThemeAppProperties", "int", $XS_n[0])
$XS_n = ""
Return 1
EndIf
Return 0
EndFunc
Func WM_NCHITTEST($hWnd, $iMsg, $iwParam, $ilParam)
If ($hWnd = $Form1) And ($iMsg = $WM_NCHITTEST) Then Return $HTCAPTION
EndFunc
Func Sec2Time($nr_sec)
$sec2time_hour = Int($nr_sec / 3600)
$sec2time_min = Int(($nr_sec - $sec2time_hour * 3600) / 60)
$sec2time_sec = $nr_sec - $sec2time_hour * 3600 - $sec2time_min * 60
Return StringFormat('%02d:%02d:%02d', $sec2time_hour, $sec2time_min, $sec2time_sec)
EndFunc ;==>Sec2Time
Func _IsChecked($iControlID)
Return BitAND(GUICtrlRead($iControlID), $GUI_CHECKED) = $GUI_CHECKED
EndFunc ;==>_IsChecked
Na Oscar.
[autoit]
Wenn schon optimieren, dann aber richtig ;-):Local $sString = "Míke"
[/autoit]
For $i In StringSplit("ÄAe|ÖOe|ÜUe|äae|öoe|üue|ÂA|ÀA|ÁA|âa|áa|àa|ÊE|ÈE|ÉE|êe|ée|èe|ÎI|ÌI|ÍI|îi|íi|ìi|ÔO|ÒO|ÓO|ôo|óo|òo|ÛU|ÙU|ÚU|ûU|úU|ùU|,|.|-|/|\|_", "|", 2)
$sString = StringReplace($sString, StringLeft($i, 1), StringTrimLeft($i, 1), 0, 1)
Next
ConsoleWrite($sString & @CR)
Jetzt mal eine Frage dazu
wie würde das bei so was aussehen, krieg das irgendwie nicht gekürzt zum laufen?
$Name = StringReplace($Name, 'ß', "ss",0,1)
$Name = StringReplace($Name, 'Ü', "Ue",0,1)
$Name = StringReplace($Name, 'Ä', 'Ae',0,1)
$Name = StringReplace($Name, 'Ö', 'Oe',0,1)
$Name = StringReplace($Name, 'ü', "ue",0,1)
$Name = StringReplace($Name, 'ä', "ae",0,1)
$Name = StringReplace($Name, 'ö', "oe",0,1)
$Name = StringReplace($Name, 'Ü', "Ue",0,1)
$Name = StringReplace($Name, 'ü', "ue",0,1)
$Name = StringReplace($Name, 'ö', "oe",0,1)
$Name = StringReplace($Name, 'Ö', "Oe",0,1)
$Name = StringReplace($Name, 'ä', "ae",0,1)
$Name = StringReplace($Name, 'Ä', "Ae",0,1)
$Name = StringReplace($Name, 'ß', "ss",0,1)
Ist es auch bei mehr Zeichen wie hierbei mit | diesen Strichen zu lösen?
Ihr seid echt Klasse!
Mit euch macht das echt Spaß
Bin nur ein Anfänger aber bei so was lernt man am besten
Ein Post über dir steht die Lösung.
Ups, Augen verdreh
$sString = StringReplace($sString, $aChars[$i][0] , $aChars[$i][1], 0, 1)
So klappt es jetzt
Danke
Wieso nicht einfach mit StringReplace?
[autoit]For $i = 0 To UBound($aChars) - 1
[/autoit]
$sString = StringReplace($sString,$aChars[$i][0], $aChars[$i][1])
NextEs ist mMn. einfacher im Gebrauch, und wie Celeri aus'm englischen Forum mal festgestellt hat auch schneller.
Hey wenn ich die Zeilen so austausche, dann verwandelt er aber wenn ein kleines Sonderzeichen wie ü in Mitte des Wortes ist nicht in ue sondern in Ue. Der holt einfach das was er als erstes mit ü oder Ü in der Array findet.
Wie kann ich das umgehen?
Danke für den Tipp,
wird mir mal die Funktionen genauer anschauen.
Hi OSCAR,
hab da ein bisschen mit deinem CODE rumgebastelt
Danke für die Idee!
#include <array.au3>
#include <String.au3>
#include <File.au3>
Opt('TrayAutoPause', 0)
HotKeySet('^!{ESC}', '_End') ;~ mit Alt + Strg + ESC Programm beenden
TCPStartup()
Global $sTelList = @ScriptDir & '\Anrufliste.txt' ; <- Datei, in der die Anrufe gespeichert werden
[/autoit] [autoit][/autoit] [autoit]Global $sFritzBoxIP = TCPNameToIP('fritz.box') ; <- IP-Adresse der Fritzbox ermitteln
[/autoit] [autoit][/autoit] [autoit]; Zum öffnen des Ports muss man (einmalig), an einem an die FritzBox angeschlossenen Telefon, folgendes eingeben:
; Port öffnen: #96*5*
; Port schliessen: #96*4*
Global $sFritzBoxPort = 1012 ; <- TCP-Port zur Abfrage der Fritzbox
Global $TelefonbuchSeiteVor = 'http://www3.dastelefonbuch.de/?kw='
Global $TelefonbuchSeiteHinter = '&s=a20000&cmd=search&ort_ok=0&sp=3&vert_ok=0&aktion=23'
Global $EigeneVorwahl = 02676
Global $FilterVor = 'itemprop="name" title="'
Global $FilterHinter = '" rel="nofollow"'
Global $hFritzSocket = TCPConnect($sFritzBoxIP, $sFritzBoxPort) ; <- Verbindung zur Fritzbox herstellen
If $hFritzSocket = -1 Then Exit MsgBox(0, 'Fehler!', 'Es konnte keine Verbindung zur FritzBox hergestellt werden.')
TrayTip('FritzBox', 'Anrufmonitor aktiv', 1000)
Global $sFritzRecv = ''
While Sleep(50)
$sFritzRecv = TCPRecv($hFritzSocket, 2048)
If $sFritzRecv <> '' Then _TelRing($sFritzRecv)
WEnd
Func _TelRing($sRecv)
ConsoleWrite($sRecv & @CR)
Local $aMsg = StringSplit($sRecv, ';')
If Not IsArray($aMsg) Then Return
If $aMsg[0] < 5 Then Return
Switch $aMsg[2]
Case 'RING'
If $aMsg[4]=0 Then
$aMsg[4]="Unterdrückte Rufnummer!"
TrayTip('ankommender Anruf', $aMsg[4], 30, 1)
FileWriteLine($sTelList, $aMsg[1] & ' Tel.-Nr.: ' & $aMsg[4])
Else
If FileExists(@TempDir & '\telefonat.html') Then FileDelete(@TempDir & '\telefonat.html')
InetGet($TelefonbuchSeiteVor&$aMsg[4]&$TelefonbuchSeiteHinter, @TempDir & '\telefonat.html')
$Name = _StringBetween(FileRead(@TempDir & '\telefonat.html'), $FilterVor, $FilterHinter)
If FileExists(@TempDir & '\telefonat.html') Then FileDelete(@TempDir & '\telefonat.html')
If IsArray($Name) Then
TrayTip('ankommender Anruf', $aMsg[4] & " " & $Name[0], 30, 1)
FileWriteLine($sTelList, $aMsg[1] & ' Tel.-Nr.: ' & $aMsg[4] & ' ' & $Name[0])
Else
$Name = "Name nicht im Telefonbuch!"
TrayTip('ankommender Anruf', $aMsg[4] & " " & $Name, 30, 1)
FileWriteLine($sTelList, $aMsg[1] & ' Tel.-Nr.: ' & $aMsg[4] & ' ' & $Name)
EndIf
EndIf
Case 'DISCONNECT'
$zeit=Sec2Time($aMsg[4])
TrayTip('Aufgelegt', 'Geführter Telefonat dauerte: ' & $zeit, 0)
Case 'CALL'
$TelefonNummer = Stringsplit($aMsg[6], "")
If Not $TelefonNummer[0]=0 Then $aMsg[6]=$EigeneVorwahl&$aMsg[6]
If FileExists(@TempDir & '\telefonat.html') Then FileDelete(@TempDir & '\telefonat.html')
InetGet($TelefonbuchSeiteVor&$aMsg[6]&$TelefonbuchSeiteHinter, @TempDir & '\telefonat.html')
$Name = _StringBetween(FileRead(@TempDir & '\telefonat.html'), $FilterVor, $FilterHinter)
If FileExists(@TempDir & '\telefonat.html') Then FileDelete(@TempDir & '\telefonat.html')
If IsArray($Name) Then
TrayTip('ausgehender Anruf', $aMsg[6] & " " & $Name[0], 30, 1)
FileWriteLine($sTelList, $aMsg[1] & ' Tel.-Nr.: ' & $aMsg[6] & ' ' & $Name[0])
Else
$Name = "Name nicht im Telefonbuch!"
TrayTip('ausgehender Anruf', $aMsg[6] & " " & $Name, 30, 1)
FileWriteLine($sTelList, $aMsg[1] & ' Tel.-Nr.: ' & $aMsg[6] & ' ' & $Name)
EndIf
Case 'CONNECT'
If $aMsg[5]=0 Then $aMsg[5]="unterdrückte Rufnummer!"
TrayTip('verbunden mit', $aMsg[5], 30, 1)
EndSwitch
EndFunc ;==>_TelRing
Func Sec2Time($nr_sec)
$sec2time_hour = Int($nr_sec / 3600)
$sec2time_min = Int(($nr_sec - $sec2time_hour * 3600) / 60)
$sec2time_sec = $nr_sec - $sec2time_hour * 3600 - $sec2time_min * 60
Return StringFormat('%02d:%02d:%02d', $sec2time_hour, $sec2time_min, $sec2time_sec)
EndFunc ;==>Sec2Time
Func _End()
TCPCloseSocket($hFritzSocket)
TCPShutdown()
Exit
EndFunc ;==>_End
Edit Oscar: AutoIt- und Spoiler-Tags eingefügt.
OK, danke für eure Mühe!
Kanashius: Bei deinem CODE hat er mir noch andere Fenster sichtbar gemacht, die nicht unbedingt zu IE gehörten.
Ich habe das jetzt so hinbekommen:
#include <Misc.au3>
#include <Array.au3>
Opt("TrayIconHide", 1) ;0=anzeigen, 1=tray icon verstecken
Global $Versteckt
If _Singleton("Skript", 1) = 0 Then Exit
HotKeySet("!{ESC}", "Beenden")
HotKeySet("!{F11}", "versteckeninet")
While 1
WEnd
Func versteckeninet()
;~ Internet Explorer verstecken
$Versteckt = NOT $Versteckt
$Fenster = WinList()
IF $Versteckt = True Then
For $i = 1 to $Fenster[0][0]
$IEStatus = WinGetState($Fenster[$i][1])
If $Fenster[$i][0] <>"" AND $IEStatus=39 Then
$windowTitle = $Fenster[$i][0]
If (StringInStr($windowTitle, "Windows Internet Explorer", True)) Then
WinSetState($Fenster[$i][1], "", @SW_HIDE)
EndIf
EndIf
Next
Else
For $i = 1 to $Fenster[0][0]
$IEStatus = WinGetState($Fenster[$i][1])
If $Fenster[$i][0] <>"" AND $IEStatus=37 Then
$windowTitle = $Fenster[$i][0]
If (StringInStr($windowTitle, "Windows Internet Explorer", True)) Then
WinSetState($Fenster[$i][1], "", @SW_SHOW)
EndIf
EndIf
Next
EndIf
While $Versteckt
ExitLoop
WEnd
EndFunc
Func Beenden()
Exit 0
EndFunc ;==>Beenden
Alles anzeigen
Muss noch schauen ob das auch immer funktionieren wird
Versteckt und zeigt die Fenster etwas langsam eins nach dem anderen aber es geht
Hab gedacht der könnte auch irgendwie alle Fenster auf einmal verstecken und zeigen
Umständlich ist es vor allen Dingen, aber ich möchte auch gerne was dazu lernen.
Gib es den keine Möglichkeit Fenster anhand der SID zu verstecken?
Es ist auch so dass ich gerne weiter mein Wissen erweitern möchte und nicht an einem es geht nicht stehen bleibe.
Wenn du verstehst was ich meine?
Normallerweise habe ich bis jetzt immer was aus dem Forum geholt und so lange experimentiert bis ich meine Ergebnisse verwirklicht habe aber jetzt komme ich einfach nicht weiter.
Hallo Profis,
aus dem Grund dass meine 3 Kinder, meine Frau und ich aus Platzmangel zusammen einen Computer teilen müssen habe ich sehr oft das Problem, dass wenn ich am PC am arbeiten bin und mehrere InternetExplorer Fenster offen hab und muss mal aus dem Haus (lasse ich die Fenster offen damit ich später weiter arbeiten kann), (Leider viel zu oft:) wenn ich wieder komme sind die Fenster geschlossen und ich muss die Suche wieder von vorne anfangen.
Deshalb wollte ich mir ein script schreiben, womit ich alle IE Fenster verstecken und wieder Sichtbar machen kann.
Ich hab mal folgendes probiert:
#include <Misc.au3>
#include <Array.au3>
Global $Versteckt
If _Singleton("Skript", 1) = 0 Then Exit
HotKeySet("{ESC}", "Beenden")
HotKeySet("{F11}", "versteckeninet")
While 1
;~ $List = ProcessList("iexplore.exe")
;~ _ArrayDisplay($List)
WEnd
Func versteckeninet()
;~ Internet Explorer verstecken
$Versteckt = NOT $Versteckt
$List = ProcessList("iexplore.exe")
for $i = 1 to $list[0][0]
$WinHnd = $list[$i][1]
IF $Versteckt = True Then WinSetState($WinHnd, "", @SW_HIDE)
IF $Versteckt = False Then WinSetState($WinHnd, "", @SW_SHOW)
TrayTip("IE. ", $Versteckt & @CRLF & $WinHnd, 20, 1)
next
While $Versteckt
ExitLoop
WEnd
EndFunc
Func Beenden()
Exit 0
EndFunc ;==>Beenden
Alles anzeigen
Das geht leider nicht
Dann noch so:
#include <Misc.au3>
#include <Array.au3>
Global $Versteckt
If _Singleton("Skript", 1) = 0 Then Exit
HotKeySet("{ESC}", "Beenden")
HotKeySet("{F11}", "versteckeninet")
While 1
;~ $List = ProcessList("iexplore.exe")
;~ _ArrayDisplay($List)
WEnd
Func versteckeninet()
;~ Internet Explorer verstecken
$Versteckt = NOT $Versteckt
$List = ProcessList("iexplore.exe")
for $i = 1 to $list[0][0]
$WinHnd = $list[$i][1]
IF $Versteckt = True Then WinSetState("[CLASS:IEFrame]", "", @SW_HIDE)
IF $Versteckt = False Then WinSetState("[CLASS:IEFrame]", "", @SW_SHOW)
TrayTip("IE. ", $Versteckt & @CRLF & $WinHnd, 20, 1)
next
While $Versteckt
ExitLoop
WEnd
EndFunc
Func Beenden()
Exit 0
EndFunc ;==>Beenden
Alles anzeigen
So versteckt es aber immer nur das letzte geöffnete IE Fenster
Vielleicht kann mir jemand helfen und mir sagen wie kann ich anhand der PID Fenster verstecken?
Bitte um hilfe
Big THX vorab