1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. Bitnugger

Beiträge von Bitnugger

  • Foren-Suchfunktion

    • Bitnugger
    • 15. Juni 2016 um 07:49

    Jeep... dann sind wir ja einer Meinung... denn ich suche auch zu 98% mit den erweiterten Suchfunktionen von Google - wenn ich z. B. etwas in Bezug auf AutoIt finden will, dann suche ich: "fold region" site:autoit.de

    Das erste Ergebnis war es dann auch, nach dem ich gesucht hatte... doch das ändert nichts an meiner Aussage... die Forensuche ist voll für den Ar***! 8)

    Dazu fällt mir allerdings gerade ein, dass ich hier im Forum einen Beitrag gelesen habe, in dem stand, dass Leute, die anstelle der Forensuche z. B. Google benutzen, selbst Schuld sind, wenn sie nicht finden, wonach sie suchen, da die "hauseigene Suchfunktion in jedem Fall bessere Ergebnisse liefert, weil sie optimal auf die Inhalte des Forums abgestimmt ist." :ironie::thumbup:

  • Foren-Suchfunktion

    • Bitnugger
    • 15. Juni 2016 um 06:53

    Mir ist gerade erst aufgefallen, dass die Suchfunktion hier im Forum unbedingt ein Upgade braucht. <X

    Als Suchbegriff habe ich folgendes eingegeben: fold region

    Wenn die Suchfunktion mir dann solche (s. Bild im Anhang) Ergebnisse liefert, muss ich mich allerdings doch stark am Kopf kratzen... denn ich will ja keine maximale Trefferrate, sondern nur die besten Treffer angezeigt bekommen. :thumbup:

    OK wäre es, wenn ich als Suchbegriff z. B. folgendes eingegeben hätte: "region fold*"

    Danke für's lesen...

    Bilder

    • fold-region-autoit.de.jpg
      • 41,92 kB
      • 1.640 × 90
  • Aller Anfang scheint schwer

    • Bitnugger
    • 13. Juni 2016 um 05:57

    Das liegt daran, dass beim Download der Hilfedatei ein alternativer Datenstrom (Zone Identifier) mit in die Datei gespeichert wird, womit potentiell unsichere Inhalte aus dem Internet markiert werden.

    https://de.wikipedia.org/wiki/Alternativer_Datenstrom

    Den alternativen Datenstrom kannst du mit dem Tool "Streams" von Sysinternals entfernen.

    https://technet.microsoft.com/de-de/sysinternals/streams.aspx

    Ich habe mir den Pfad zu den Tools der Sysinternals-Suite (die auch Streams enthält) mit in die PATH-Variable gespeichert... wenn du nur die Streams.exe brauchst, kannst du sie auch nach c:\Windows\ speichern, dann kannst du sie ohne Pfadangaben aufrufen.


    So entfernst du die Streams in der Eigabeaufforderung (Zeile 12-14):

    Bash
    REM Usage anzeigen
    Streams
     
    Streams v1.56 - Enumerate alternate NTFS data streams
    Copyright (C) 1999-2007 Mark Russinovich
    Sysinternals - www.sysinternals.com
    usage: streams [-s] [-d] <file or directory>
    -s     Recurse subdirectories
    -d     Delete streams
     
    REM Streams entfernen
    Streams -d "c:\Program Files (x86)\AutoIt3\AutoIt.chm"
    Streams -d "c:\Program Files (x86)\AutoIt3\AutoIt3.chm"
    Streams -d "c:\Program Files (x86)\AutoIt3\UDFs3.chm"
    Alles anzeigen
  • "Gegenstände" im bild zählen

    • Bitnugger
    • 11. Juni 2016 um 19:39

    Ich denke, ich habe da etwas Brauchbares gefunden: ImageSearch

    Hier vielleicht auch mal eine Blick drauf schmeißen: MATLAB CentralMATLAB Central - identifying objectsidentifying objects

    Und hier: AutoIt Image Search 8)

  • AutoIt / SciTE / Probleme mit code.page ANSI UTF8 / ss und ß / _ArraySearch

    • Bitnugger
    • 10. Juni 2016 um 00:27

    So in etwa... wenn du die Zeichen ersetzten willst... geht sicher auch als Einzeiler... doch dafür bin ich nicht fit genug. ;)

    Nachtrag: Wer ist hier der Böse?
    Bei genauer Betrachtung ist es kein Bug in _ArraySearch und/oder _ArrayBinarySearch - das vermeintliche Problem sind hier die Vergleichsoperatoren <, >, und <>, welche nicht das 'erwartete' Ergebnis liefern.
    Durch dich inspiriert habe ich nun mit ein paar Array-Funktionen gespielt und geschaut, welche ein ß von einem ss unterscheidet - keine gefunden!
    _ArraySearch mit gesetztem Parameter $iCase = 1 sollte allerdings ein -1 als Ergebnis liefern, was aber auch nicht der Fall ist.

    Als Workaround könnte man das Array vor jedem Aufruf z. B. in Hex-Werte konvertieren... dann wäre...
    ß =

    Spoiler anzeigen
    AutoIt
    Local $Array = ["ss", "ß", "ä", "ö", "ü", "Ä", "Ö", "Ü", "a_ausser", "a_Ausser", "A_außer", "a_außer"]
    
    
    ConsoleWrite('Vorher...: $Array(' & _ArrayToString($Array) & ')' & @CRLF)
    _ReplaceAllShitInMyArray($Array)
    ConsoleWrite('Nachher..: $Array(' & _ArrayToString($Array) & ')' & @CRLF)
    
    
    Func _ReplaceAllShitInMyArray(ByRef $Array)
    	Local $aSearchAndReplace = [['ß', 'ss'], ['ä', 'ae'], ['ö', 'oe'], ['ü', 'ue'], ['Ä', 'Ae'], ['Ö', 'Oe'], ['Ü', 'Ue']]
    	Local $sString = '', $sSearchString = '', $ReplaceString = ''
    	For $i = 0 To UBound($Array) -1 Step 1
    		For $k = 0 To UBound($aSearchAndReplace) -1 Step 1
    			$Array[$i] = StringRegExpReplace($Array[$i], $aSearchAndReplace[$k][0], $aSearchAndReplace[$k][1])
    		Next
    	Next
    EndFunc
    Alles anzeigen
  • AutoIt / SciTE / Probleme mit code.page ANSI UTF8 / ss und ß / _ArraySearch

    • Bitnugger
    • 9. Juni 2016 um 15:49

    Ich denke mal eher, du hast das Problem nur durch ein anderes Problem ersetzt...

    AutoIt
    While $iStart <= $iMid And $vValue <> $aArray[$iMid]		; Original
    While $iStart <= $iMid And Not ($vValue == $Array[$iMid])	; Fixed ?


    Der Knackpunkt ist doch, dass in _ArrayBinarySearch() mit '<', '>' und '<>' verglichen wird... es ist also eine nicht-sensive Suche - gut, zumal eine sensitive Suche schon deshalb nicht möglich sein darf, weil die AutoIt-Hilfe besagt, dass diese Funktion den Parameter $iCase nicht kennt!

    Wird einer der Vergleichsoperatoren '<', '>' und '<>' durch 'NOT (==)' ersetzt, passiert aber genau dies... es wird sensitiv gesucht - wobei durch das NOT nun nur noch etwas gefunden wird, wenn die Schreibweise NICHT identisch ist!

    Spoiler anzeigen
    AutoIt
    #include <Array.au3>
    
    
    Local $iIndex1, $Array = ["a_ausser", "a_außer", "a_Ausser", "A_außer"]
    _ArraySort($Array, 0, 0)	; 1x sortieren reicht!
    
    
    Local $iErr
    ConsoleWrite('> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~' & @CRLF & '+ ' & '$Array(' & _ArrayToString($Array) & ')' & @CRLF & @CRLF)
    For $j = 0 To 3 Step 1
    	ConsoleWrite('> Gesucht wird: ' & $Array[$j] & @CRLF)
    	$iIndex1 = __ArrayBinarySearch($Array, $Array[$j], 0, 0, 0)		; Start, Ende, Column
    	$iErr = @error
    	Switch $iIndex1
    		Case -1
    			ConsoleWrite('! $j = ' & $j & @TAB & '$iIndex1 =' & _LStr2($iIndex1) & @TAB & '$iErr = ' & $iErr & @TAB & ' - Nicht gefunden!!!' & @CRLF & @CRLF)
    			ConsoleWrite('$iErr = ' & $iErr & @CRLF)
    		Case Else
    			ConsoleWrite('+ $j = ' & $j & @TAB & '$iIndex1 =' & _LStr2($iIndex1) & @TAB & '$iErr = ' & $iErr & @TAB & ' - Wurde gefunden!!!' & @CRLF & @CRLF)
    	EndSwitch
    Next
    ConsoleWrite('> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~' & @CRLF)
    
    
    Func _LStr2($sStr)
    	Return StringRight('  ' & $sStr, 3)
    EndFunc
    
    
    ; Zeile 25:
    ; Original: While $iStart <= $iMid And $vValue <> $Array[$iMid]
    ; FIX: While $iStart <= $iMid And Not ($vValue == $Array[$iMid])
    ; Zeile 39:
    ; Original: While $iStart <= $iMid And $vValue <> $aArray[$iMid][$iColumn])
    ; FIX: While $iStart <= $iMid And Not ($vValue == $aArray[$iMid][$iColumn])
    
    
    ; #FUNCTION# ====================================================================================================================
    ; Author ........: Jos
    ; Modified.......: Ultima - added $iEnd as parameter, code cleanup; Melba23 - added support for empty & 2D arrays
    ; ===============================================================================================================================
    Func __ArrayBinarySearch(Const ByRef $aArray, $vValue, $iStart = 0, $iEnd = 0, $iColumn = 0)
    	If $iStart = Default Then $iStart = 0
    	If $iEnd = Default Then $iEnd = 0
    	If $iColumn = Default Then $iColumn = 0
    	If Not IsArray($aArray) Then Return SetError(1, 0, -1)
    	; Bounds checking
    	Local $iDim_1 = UBound($aArray, $UBOUND_ROWS)
    	If $iDim_1 = 0 Then Return SetError(6, 0, -1)
    	If $iEnd < 1 Or $iEnd > $iDim_1 - 1 Then $iEnd = $iDim_1 - 1
    	If $iStart < 0 Then $iStart = 0
    	If $iStart > $iEnd Then Return SetError(4, 0, -1)
    	Local $iMid = Int(($iEnd + $iStart) / 2)
    	Switch UBound($aArray, $UBOUND_DIMENSIONS)
    		Case 1
    			If $aArray[$iStart] > $vValue Or $aArray[$iEnd] < $vValue Then Return SetError(2, 0, -1)
    			; Search
    			While $iStart <= $iMid And  Not ($vValue == $Array[$iMid])
    				If $vValue < $aArray[$iMid] Then
    					$iEnd = $iMid - 1
    				Else
    					$iStart = $iMid + 1
    				EndIf
    				$iMid = Int(($iEnd + $iStart) / 2)
    			WEnd
    			If $iStart > $iEnd Then Return SetError(3, 0, -1) ; Entry not found
    		Case 2
    			Local $iDim_2 = UBound($aArray, $UBOUND_COLUMNS) - 1
    			If $iColumn < 0 Or $iColumn > $iDim_2 Then Return SetError(7, 0, -1)
    			If $aArray[$iStart][$iColumn] > $vValue Or $aArray[$iEnd][$iColumn] < $vValue Then Return SetError(2, 0, -1)
    			; Search
    			While $iStart <= $iMid And Not ($vValue == $aArray[$iMid][$iColumn])
    				If $vValue < $aArray[$iMid][$iColumn] Then
    					$iEnd = $iMid - 1
    				Else
    					$iStart = $iMid + 1
    				EndIf
    				$iMid = Int(($iEnd + $iStart) / 2)
    			WEnd
    			If $iStart > $iEnd Then Return SetError(3, 0, -1) ; Entry not found
    		Case Else
    			Return SetError(5, 0, -1)
    	EndSwitch
    	Return $iMid
    EndFunc   ;==>_ArrayBinarySearch
    Alles anzeigen
  • TimeStamp - erweitert zu kleiner Versionsverwaltung für (.au3 und .lua) alle Typen

    • Bitnugger
    • 2. Juni 2016 um 15:59

    Ja, richtig... und ich sehe gerade, dass der per Default nicht eingetragen ist.

    Im Anhang mal meine SciTEStartup.lua...

    Dateien

    SciTEStartup.lua 3,03 kB – 538 Downloads
  • TimeStamp - erweitert zu kleiner Versionsverwaltung für (.au3 und .lua) alle Typen

    • Bitnugger
    • 2. Juni 2016 um 12:56
    Zitat von HalliHalloSchat

    Habe folgenden Eintrag in meiner SciTEUser.properties:
    Lua.User.Scripts.Path=$(SciteDefaultHome)\_OWN\LUA_Scripts
    --> hier liegt AutoStampSaveVersion.lua
    --> hier liegt shell.dll

    Eigene Lua-Tools sollten NICHT ins SciTE-Verzeichnis rein, da sie bei einem Update gelöscht werden.


    Bei mir sieht die Config so aus...

    Brainfuck
    Folgender Eintrag in der SciTEUser.properties:
    Lua.User.Scripts.Path=C:\Users\Bitnugger\LuaScripts
    Brainfuck
    Dir C:\Users\Bitnugger\LuaScripts
    
    
        AutoStampSaveVersion.lua
        CodeAsHtml.lua
        ContinuousComments.lua
        EdgingSelection.lua
        shell.dll
    
    
        usw...
    Alles anzeigen
    Brainfuck
    Folgende Einträge als letzte Einträge in der SciTEStartup.lua:
    -- Erst nach Registrierung der EventClass werden eigene Dateien geladen
    LoadUserLuaFile("Ownhotkeys.lua")
    LoadUserLuaFile("AutoStampSaveVersion.lua")  -- enthält Event: "OnBeforeSave"
    LoadUserLuaFile("EdgingSelection.lua")
    LoadUserLuaFile("SelectStatement.lua")
    LoadUserLuaFile("VarGetTipp_ListEvent.lua")
    LoadUserLuaFile("ShowHexColorFromCursor.lua")
  • AutoIt / SciTE / Probleme mit code.page ANSI UTF8 / ss und ß / _ArraySearch

    • Bitnugger
    • 31. Mai 2016 um 19:52
    Zitat von HalliHalloSchat

    Meine SciTE\SciTEUser.properties ist komplett leer, wo bekomme ich eine DEFAULT her?

    In der portablen Version SciTE4AutoIt3_Portable.zip findest du eine 'Default-' bzw. 'example-SciTEUser.properties'... die aber so gut wie leer ist.

    # example-SciTEUser.properties
    import au3.keywords.user.abbreviations
    import au3.UserUdfs

    Der Inhalt meiner SciTEUser.properties ist im Laufe der Zeit angewachsen... habe einige Tools installiert, die das Leben mit AutoIt/SciTE enorm erleichtern... die meisten davon stammen von BugFix .

    Hier mal ein Auszug...
    AutoStampSaveVersion, CodeAsHtml, ContinuousComments, EdgingSelection, IncludesHelper, ManageIncludes, Ownhotkeys, SciTEx, SelectStatement, ShowHexColorFromCursor, VarGetTipp

    Sämtliche Einstellungen für selbst eingepflegte Tools und/oder Änderungen an der Konfiguration sollten in der SciTEUser.properties bzw. den *user*.properties gespeichert werden, damit sie nach einem AutoIt-/SciTE-Update erhalten bleiben.

    Das Problem mit den Codepages ergibt sich dadurch, dass Scripte/UDFs aus diversen Quellen teils mit anderen Editoren, auf anderen Betriebssystemen und/oder in anderer Sprache erstellt wurden. Eine patentierbare Lösung gibt es dafür also leider nicht.

    Hier findest du sehr interessante Infos zu diesem Thema: Einführung in Codepages und Unicode

    Ich habe mal meine SciTEUser.properties als Dateianhang hochgeladen, die schon einen recht guten Eindruck davon vermittelt, wie gut die Einstellungen an die eigenen Bedürfnisse angepasst werden können.

    Dateien

    SciTEUser.zip 3,16 kB – 414 Downloads
  • FaceGame - Ein AutoIt Game

    • Bitnugger
    • 31. Mai 2016 um 06:34

    Habe noch ein paar Zeilen im Code entdeckt, die...

    FaceGameLauncher.au3

    AutoIt
    If FileExists(@TempDir & "\update.exe") Then FileDelete(@TempDir & "\update.exe")

    Nimm besser ein eigenes Verzeichnis, da du sonst eine falsche update.exe erwischen könntest.

    AutoIt
    If FileExists(@TempDir & "\FaceGame\update.exe") Then FileDelete(@TempDir & "\FaceGame\update.exe")


    Dein Launcher bekommt nicht mit, wenn das Spiel abstürzt, was bei mir (Win 10 X64) der Fall war, nachdem ich den 2. Tipp von @Kanashius aus Post #7 umgesetzt hatte.

    Das Game mit dem Launcher per ProcessClose() zu beenden, ist auch nicht gerade der Hit...

  • Zugriff auf Label ohne ID

    • Bitnugger
    • 29. Mai 2016 um 20:00
    Zitat von EGuhrm

    Alle Controls, zu denen mir Winwow Info eine ID liefert, sehe ich auch in dem zurückgelieferten Array mit dem dazu passenden Handle. Nur das Handle zu dem besagten Label (0x00040792) taucht im Array nicht auf.

    Siehe Bild, da ist es doch in der Liste...

    Und hier in der Liste vom AutoIt Window Info Tool ist es auch enthalten...

    >>>> Control <<<<
    Class:
    Instance:
    ClassnameNN:
    Name:
    Advanced (Class): [CLASS:; INSTANCE:]
    ID:
    Text: 1 of 1
    Position: 362, 606
    Size: 70, 20
    ControlClick Coords: 46, 3
    Style: 0x50020001
    ExStyle: 0x00000004
    Handle: 0x00040792


    Bilder

    • 0x00040792.jpg
      • 18,78 kB
      • 177 × 115
  • Transparentes Label

    • Bitnugger
    • 29. Mai 2016 um 18:15

    Teste dieses Script mal, ob es das ist, was du suchst.

    Spoiler anzeigen
    AutoIt
    ;-- TIME_STAMP   2016-05-29 18:12:08
    
    
    #include <File.au3>
    #include <GUIConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    
    
    Global $g_hGUI
    
    
    _GUI()
    
    
    Func _GUI()
    	; Find a picture to use as Gui background.
    	Local $iErr = 0, $sPicture = 'LoRes_Hermann_KA-WHUM.jpg'
    	If Not FileExists(@ScriptDir & '\' & $sPicture) Then $sPicture = FileOpenDialog('Find a picture to use as Gui background', '', 'Images (*.jpg;*.gif;*.bmp) | Alle (*.*)')
    	If @error Then _Exit(1)
    
    
    	#region - GUI Create
    	$sWinTitle = 'Transparent Label Test with AutoIt ' & FileGetVersion(@AutoItExe)
    	$g_hGUI = GUICreate($sWinTitle, 320, 262, Default, Default); , $WS_POPUP)
    	Local $idPIC = GUICtrlCreatePic($sPicture, 0, 0, 320, 240)
    	If @error Then
    		MsgBox(262192, 'Ops!', 'Picture cannot be created!' & @CRLF & @CRLF & 'Supported types BMP, JPG, GIF(but not animated).', 3)
    		_Exit(2)
    	EndIf
    	GUICtrlSetState(Default, $GUI_DISABLE)
    	Local $aPicPos = ControlGetPos($g_hGUI, '', $idPIC)
    
    
    	$idLabel_WinTitle = GUICtrlCreateLabel($sWinTitle, 4, 0, 300, 21)
    	GUICtrlSetBkColor(Default, $GUI_BKCOLOR_TRANSPARENT)
    	GUICtrlSetColor(Default, 0xFFFFFF)
    
    
    	$idInput_WinTitle  = GUICtrlCreateInput($sWinTitle, 	4, 174, 304, 21)
    	$idButton_Exit     = GUICtrlCreateButton('Exit', 	1, 241, 318, 21)
    
    
    	GuiSetState()
    	#endregion
    
    
    	#region - GUI SelectLoop
    	While 1
    		Switch GUIGetMsg()
    			Case $GUI_EVENT_CLOSE
    				ControlHide($g_hGUI, '', $idPIC)
    				ControlSetText($g_hGUI, '', $idLabel_WinTitle, 'Ops, the picture is lost...', 1)
    				GUICtrlSetColor($idLabel_WinTitle, 0xFF0000)
    				Sleep(1000)
    				ControlShow($g_hGUI, '', $idPIC)
    				ControlSetText($g_hGUI, '', $idLabel_WinTitle, "No, it was just simply hidden...", 1)
    				GUICtrlSetColor($idLabel_WinTitle, 0x00FF00)
    				Sleep(500)
    				For $i = 0 To 320 Step 10
    					ControlHide($g_hGUI, '', $idPIC)
    					ConsoleWrite(ControlMove($g_hGUI, '', $idPIC, $aPicPos[0] + $i/2, $aPicPos[1] + $i/2, $aPicPos[2] - $i, $aPicPos[3] - $i) & @CRLF)	; 320, 262 | 320, 240
    					ControlShow($g_hGUI, '', $idPIC)
    					Sleep(10)
    				Next
    				GUICtrlDelete($idPIC)
    				_Exit(0)
    			Case $idButton_Exit
    				_Exit(0)
    			Case $idInput_WinTitle
    				ControlSetText($g_hGUI, '', $idLabel_WinTitle, GUICtrlRead($idInput_WinTitle), 1)
    		EndSwitch
    		If WinActive($g_hGUI) = 0 Then _Exit(0)
    	WEnd
    	#endregion
    EndFunc
    
    
    Func _Exit($iErr = 0)
    	GUIDelete()
    	Exit $iErr
    EndFunc
    Alles anzeigen

    Bilder

    • LoRes_Hermann_KA-WHUM.jpg
      • 46,06 kB
      • 320 × 256
  • svchost verbraucht Internet

    • Bitnugger
    • 28. Mai 2016 um 22:31

    @Alina, lies mal hier...

    http://windows.microsoft.com/de-de/windows/…e#1TC=windows-7

  • AutoIt / SciTE / Probleme mit code.page ANSI UTF8 / ss und ß / _ArraySearch

    • Bitnugger
    • 28. Mai 2016 um 09:52

    Teste mal, ob das bei dir funktioniert...

    Spoiler anzeigen
    AutoIt
    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_Change2CUI=y
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    ;-- TIME_STAMP   2016-05-28 09:54:39   v 0.1
    
    
    #cs Meine Einstellungen in der SciTEUser.properties
    
    
    # @LocalAppDataDir & '\AutoIt v3\SciTE\SciTEUser.properties'
    
    
    # Internationalisation
    # Unicode
    #code.page=65001
    #output.code.page=65001
    
    
    # OEM 850
    #code.page=850
    #output.code.page=850
    
    
    # Windows 1252
    code.page=1252
    output.code.page=1252
    
    
    #ce
    
    
    #include <Array.au3>
    #include <File.au3>
    
    
    Local $Array[6] = ["a_ausser", "a_außer", "b_ausser", "b_außer", "c_ausser", "c_außer"]
    
    
    _ExportImport($Array, $FO_ANSI)
    _ExportImport($Array, $FO_UTF8_NOBOM)
    _ExportImport($Array, $FO_UTF8)
    
    
    Func _ExportImport($Array, $FO)	; $FO_ANSI, $FO_UTF8_NOBOM, $FO_UTF8
    	Local $iFO = -1, $aFO = ['$FO_ANSI', '$FO_UTF8_NOBOM', '$FO_UTF8']
    	Switch $FO
    		Case $FO_ANSI			; Suche nach "ausser" findet nur "ausser" in einem Editor
    			$iFO = 0
    		Case $FO_UTF8_NOBOM		; Suche nach "ausser" findet auch "außer" in einem Editor
    			$iFO = 1
    		Case $FO_UTF8			; Suche nach "ausser" findet auch "außer" in einem Editor
    			$iFO = 2
    		Case Else
    			Exit 99
    	EndSwitch
    	ConsoleWrite('+ ' & $aFO[$iFO] & @CRLF)
    
    
    	Local $sFile = @ScriptFullPath & ".array", $iSuc = 0, $iErr = 0, $ArrayFromFile
    	_ArraySort($Array, 0, 0)	; 1x sortieren reicht!
    
    
    	_CWA('Davor', $Array, $FO)
    	Local $hFile = FileOpen($sFile, $FO_OVERWRITE + $FO)
    	$iSuc = _FileWriteFromArray($hFile, $Array, 0)
    	$iErr = @error
    	FileClose($hFile)
    	If $iSuc = 0 Then
    		ConsoleWrite("@@ Debug line" & @TAB & @ScriptLineNumber & "   var: $iSuc --> " & $iSuc & @LF & "!@ " & @TAB & "#Error: " & @error & @LF)
    		Exit $iErr
    	EndIf
    
    
    	Sleep(1000)
    
    
    	$iSuc = _FileReadToArray($sFile, $ArrayFromFile, $FRTA_NOCOUNT)
    	$iErr = @error
    	If $iSuc = 0 Then
    		ConsoleWrite("@@ Debug line" & @TAB & @ScriptLineNumber & "   var: $iSuc --> " & $iSuc & @LF & "!@ " & @TAB & "#Error: " & @error & @LF)
    		Exit $iErr
    	EndIf
    
    
    	_CWA('Danach', $ArrayFromFile, $FO)
    	_Search($Array, $ArrayFromFile)
    EndFunc  ;==>_ExportImport
    
    
    Func _Search($Array1, $Array2)
    	For $i = 0 to UBound($Array1) -1
    		ConsoleWrite("$Array1[" & $i & "] : " & _CharToOem($Array1[$i]) & @TAB & "$Array2[" & $i & "] : " & _CharToOem($Array2[$i]) & @CRLF)
    		__ArrayBinarySearch($Array1, $Array2[$i], 1, 0, 0)
    		__ArraySearch($Array1, $Array2[$i], 1, 0, 0)
    	Next
    	ConsoleWrite(@CRLF)
    EndFunc  ;==>_Search
    
    
    Func __ArrayBinarySearch($Array, $vValue, $iStart = 0, $iEnd = 0, $iColumn = 0 = $FO_ANSI)
    	ConsoleWrite("BinarySearchIndex: " & _ArrayBinarySearch($Array, $vValue, $iStart, $iEnd, $iColumn) & ' ' & _CharToOem($vValue) & @CRLF)
    EndFunc  ;==>__ArrayBinarySearch
    
    
    Func __ArraySearch(ByRef $Array, $vValue, $iStart = 0, $iEnd = 0, $iColumn = 0)
    	ConsoleWrite("NormalSearchIndex: " & _ArraySearch($Array, $vValue, $iStart, $iEnd, $iColumn) & ' ' & _CharToOem($vValue) & @CRLF)
    EndFunc  ;==>__ArraySearch
    
    
    Func _CharToOem($sText)
    	If Not @Compiled Then Return $sText
    	Local $aRet = DllCall('user32.dll', 'bool', 'CharToOem', 'str', $sText, 'str', '')
    	If @error Or Not $aRet[0] Then Return SetError(@error + 10, @extended, '')
    
    
    	Return $aRet[2]
    EndFunc  ;==>_CharToOem
    
    
    Func _CWA($sState, $Array, $FO)
    	For $i = 0 to UBound($Array) -1
    		ConsoleWrite(StringFormat("%-7s  %-3s =%5i,  %-6s %1i,  %-64s", $sState & ',', "$FO", $FO, "Index:", $i & ":", _CharToOem($Array[$i])) & @CRLF)
    	Next
    	ConsoleWrite(@CRLF)
    EndFunc  ;==>_CWA
    Alles anzeigen
  • Code-Jack stellt sich vor

    • Bitnugger
    • 27. Mai 2016 um 10:42

    Genau, Herzlich Willkommen Code-Jack!


    Zitat von sedas19

    Hoffentlich können wir dir bei deinen Fragen helfen, falls welche entstehen.

    Hm, falls welche entstehen, sagst du...

    Zitat von Code-Jack

    Gute Dinge gehören der Welt geschenkt - darum wird meine Software natürlich Freeware, bzw. Open Source werden.
    Unter diesen (und nur unter diesen) Umständen brauche ich dann auch kein allzu schlechtes Gewissen zu haben, wenn ich Euch Profis wieder und wieder mit meinen dummen Fragen löchern werde!

    Bei seiner Formulierung ist es doch quasi Fakt, dass ein nicht endender wollender Strom an Fragen auf uns wartet... und wir nun eher befürchten sollten, dass wir jene sind, die alsbald dringend Hilfe brauchen. :rofl:

  • Wie kommuniziert AutoIt mit dem COM-Port?

    • Bitnugger
    • 26. Mai 2016 um 10:03

    Schau mal hier, ob dir das hilft...

    https://www.autoitscript.com/forum/topic/12…t-com-port-udf/

    RS232 / serielle Schnittstelle unter WIN7 (64bit)

  • 3CXPhone Verfügbarkeits-Status beim Windows-Login und -Logout setzen

    • Bitnugger
    • 23. Mai 2016 um 17:54

    Bei einer derart erschlagenden Menge an Informationen, die du mit deiner Frage hier anbietest, drängt sich einem doch beinahe der Verdacht auf, dass du gar keine Antwort haben willst... ;)

    Hier ein paar Korrekturen und Hinweise für dich... teste das Script mal.

    Spoiler anzeigen
    AutoIt
    ;-- TIME_STAMP   2016-05-23 18:07:26
    
    
    ; Während 2min wird geprüft ob 3CXPhone gestartet ist, falls ja wird der Status auf "Verfügbar" gesetzt.
    ; Leider ist der Wert für Status "Verfügbar" nicht bei allen Usern der gleiche, sodass dieser erst aus
    ; den verfügbaren Profile ermittelt werden muss.
    
    
    #include <AutoItConstants.au3>
    #include <StringConstants.au3>
    #include <MsgBoxConstants.au3> ; wird nur zum Testen gebraucht
    
    
    _ThreeCXSetAvailable()
    
    
    Func _ThreeCXSetAvailable()
    	Local $sEnvVar = EnvGet("PROGRAMDATA")
    	Local $sFilePath = $sEnvVar & '\3CXPhone for Windows\PhoneApp\CallTriggerCmd.exe' ; einfache Hochkomma, die doppelten braucht es für den Command-Aufruf
    	Local $sArguments = ' --set-active-profile=' ; die Status-Nr. wird erst unter ermittelt
    	Local $iPID, $hWnd, $sOutput = "", $value
    
    
    	If FileExists($sFilePath) = 0 Then Exit 1	; Beim Debuggen immer Exit-Code setzen, damit man nachvollziehen kann, an welcher Stelle das Programm ausgestiegen ist.
    
    
    	;~~~ WinWait() liefert ein Handle oder 0, keine PID!
    	$hWnd = WinWait("3CX", "", 120) ; max. 2min warten bis 3CXPhone beim Windows-Login bereit ist
    	If IsHWnd($hWnd) = 0 Then Exit 2
    
    
    	$iPID = Run('"' & $sFilePath & '"' & " -p", "", @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD) ; die verfügbaren Stati abfragen
    	If @error Then Exit 3
    
    
    	While 1
    		$sOutput &= StdoutRead($iPID) ; StdOut auslesen und Text zusammen fügen
    		If @error Then ExitLoop
    	WEnd
    
    
    	;~~~ Testwerte, um zu sehen was die Funktion als Ergebnis liefert...
    	ConsoleWrite('Test: $value = ' & _ThreeCXGetValue('3456 Available blablabla...') & @CRLF)
    	ConsoleWrite('Test: $value = ' & _ThreeCXGetValue('mirdochegalwieviele... 344443456 Available blablabla...') & @CRLF)
    
    
    	$value = _ThreeCXGetValue($sOutput)
    
    
    	MsgBox(BitOR($MB_OK, $MB_ICONINFORMATION), "$value, $sOutput", '--set-active-profile=' & $value & @CRLF & @CRLF & $sOutput)
    	Run('"' & $sFilePath & '"' & $sArguments & $value, "", @SW_MINIMIZE) ; CallTriggerCmd.exe mit dem entsprechenden Statuswert aufrufen
    	If @error Then Exit 6
    EndFunc  ;==>_ThreeCXSetAvailable
    
    
    Func _ThreeCXGetValue($sOutput)
    	Local $aSplit, $value
    	;~~~ Vor 'Available' steht der gesuchte Zahlenwert - unklar wieviele Digits der Wert aufweist; egal - wir kriegen sie alle! ;-)
    	$aSplit = StringSplit($sOutput, 'Available', $STR_ENTIRESPLIT + $STR_NOCOUNT)
    	If @error Then Exit 4
    	$value = StringReverse(Number(StringReverse(StringStripWS($aSplit[0], $STR_STRIPALL))))
    
    
    	If StringIsDigit($value) = 1 Then
    		Return $value
    	Else
    		MsgBox(BitOR($MB_SYSTEMMODAL, $MB_OK, $MB_ICONERROR), "", "$value, $sOutput")
    		Exit 5
    	EndIf
    EndFunc  ;==>_ThreeCXGetValue
    Alles anzeigen
  • OverMind UDF

    • Bitnugger
    • 21. Mai 2016 um 17:08

    Vielen Dank für die aktuelle Version... allerdings bekomme ich hier einen kleinen Fehler, der sich aber leicht beheben ließ.

    Bilder

    • timeout.jpg
      • 110,49 kB
      • 885 × 167
  • GUI mit Fernbedienung Steuern

    • Bitnugger
    • 20. Mai 2016 um 12:19

    Ja super - welche Fernbedienung du da hast, sollen wir wohl mit einer Glaskugel ermitteln, oder wie denkst du dir das? ;)

    Und wo ist dein Script?

  • Logout im IE

    • Bitnugger
    • 20. Mai 2016 um 12:13

    Scheint so, als hättest Du das #include <IE.au3> am Anfang des Scriptes vergessen?!


    Siehe dir doch einfach mal in der AutoIt-Hilfe das Beispiel zu der Funktion _IETagNameAllGetCollection an...


    https://autoit.de/onlinehilfe/li…tCollection.htm

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™