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

  • FileOpen und FileRead Sonderzeichen Feindlich?

    • Bitnugger
    • 9. Januar 2017 um 23:36

    Eine aktuellere Version habe ich nicht gefunden...

    AutoIt Machine Code Algorithm Collection.zip

    Algorithms list:

    Checksum...:
    CRC16, CRC32, ADLER32
    Compression: FastLZ, LZF, LZMA, LZMAT, MiniLZO, QuickLZEncode: Base64, ARC4, XXTEA, DES, AES
    Hash.......: Checksums (CRC16/CRC32/ADLER32), MD2, MD4, MD5, SHA1, SHA2 (SHA224/256/384/512), SHA3 Candidates, BLAKE, BMW (Blue Midnight Wish), CUBEHASH, ECHO, SHABAL, SKEIN

  • SCode FTP Instant Messenger

    • Bitnugger
    • 6. Januar 2017 um 00:25
    Zitat von chesstiger

    Messages, zu Deutsch Nachrichten

    Message: Botschaft, Nachricht, Meldung, Mitteilung, Signal, Information, Telegramm, Rundspruch

    Texte zu versenden ist nur eine von vielen Möglichkeiten, eine Message auszutauschen...

  • SCode FTP Instant Messenger

    • Bitnugger
    • 5. Januar 2017 um 23:55

    Hauptsächlich haben @autoiter und @alpines bereits alles gesagt, was ich hierzu schreiben wollte.

    Hinzufügen möchte ich daher lediglich ein paar Randbemerkungen, die mir durch den Kopf gegangen sind.

    Mit Messenger assoziiere ich ein Programm, mit dem nicht nur Texte, sondern auch Bilder und Dateien ausgetauscht werden können. Deiner Beschreibung nach ist dein SCode FTP Instant Messenger demzufolge aus meiner Sicht lediglich ein Chat-Programm, von dem es zumindest bereits eines gibt, dass in AutoIt geschrieben wurde und zu dem auch, wie es sich gehört, der Quellcode verfügbar ist: CryptChat

    Zitat von SCode Germany

    Somit wird auch die Sicherheit entsprechend erhöht.

    Was daran soll bitte sicher sein, wenn die Texte unverschlüsselt übertragen werden?

  • Scripting.Dictionary Key Begrenzung?

    • Bitnugger
    • 3. Januar 2017 um 00:40

    Ahhh... ja, jetzt fällt der Groschen... vielen Dank! ^^

  • Gitternetz (edit: gelöst)

    • Bitnugger
    • 2. Januar 2017 um 16:19

    Sehr schön!

    Zitat von Oscar

    Da kann man so schön mit rumspielen.

    Hihi... jeep... habe noch einen paar Zeilen hinzugefügt, damit man die Linien transparent zeichen kann... :D

    AutoIt
    ;-- TIME_STAMP   2017-01-02 16:14:39
    
    
    #include <GDIPlus.au3>
    #include <GDIPlusConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    _GDIPlus_Startup()
    Global $hBackgr = _GDIPlus_BitmapCreateFromFile(@ScriptDir & '\jpg2_stp.jpg') ; das Hintergrundbild laden
    Global $iWidth = _GDIPlus_ImageGetWidth($hBackgr) ; die Breite
    Global $iHeight = _GDIPlus_ImageGetHeight($hBackgr) ; und die Höhe des Bildes ermitteln
    ConsoleWrite(StringFormat('Bildauflösung: %i x %i Pixel\n', $iWidth, $iHeight)) ; Debug-Info
    Global $hGui = GUICreate('', $iWidth, $iHeight) ; ein entsprechendes Fenster erstellen
    Global $hGraphic = _GDIPlus_GraphicsCreateFromHWND($hGui) ; eine Graphic des Fensters erstellen
    _GDIPlus_GraphicsSetSmoothingMode($hGraphic, $GDIP_SMOOTHINGMODE_HIGHQUALITY) ; Smoothing aktivieren
    Global $hBitmap = _GDIPlus_BitmapCreateFromGraphics($iWidth, $iHeight, $hGraphic) ; eine Bitmap von der Graphic erstellen (zum separaten Zeichnen der Linien)
    Global $hGfxCtxt = _GDIPlus_ImageGetGraphicsContext($hBitmap) ; den GraphicContext der Bitmap holen
    Global $iGridX = Int($iWidth / 22), $iGridY = Int($iHeight / 14) ; die Gitter-Breite und -Höhe errechnen
    ConsoleWrite(StringFormat('Gitternetz: %i x %i Pixel\n', $iGridX, $iGridY)) ; Debug-Info
    
    
    ; Damit wir die Linien transparent zeichnen können
    Global $iARGB = 0x11000000	; Alpha, Red, Green and Blue components of pen color
    Global $hPen = _GDIPlus_PenCreate($iARGB)
    
    
    For $iX = 0 To $iWidth Step $iGridX ; eine Schleife für die vertikalen Linien
    	_GDIPlus_GraphicsDrawLine($hGfxCtxt, $iX, 0, $iX, $iHeight, $hPen) ; die Linie zeichnen
    Next
    
    
    For $iY = 0 To $iHeight Step $iGridY ; eine Schleife für die horizontalen Linien
    	_GDIPlus_GraphicsDrawLine($hGfxCtxt, 0, $iY, $iWidth, $iY, $hPen) ; die Linie zeichnen
    Next
    GUIRegisterMsg($WM_PAINT, '_WM_PAINT') ; WM_PAINT registrieren, damit das Fenster bei Bedarf neu gezeichnet wird
    GUISetState() ; das Fenster anzeigen
    Global $aInfo, $sMsg
    While True
    	Switch GUIGetMsg()
    		Case $GUI_EVENT_CLOSE ; wenn das Fenster geschlossen wird
    			; Wichtig! Das "aufräumen" nicht vergessen!
    			_GDIPlus_PenDispose($hPen)
    			_GDIPlus_BitmapDispose($hBackgr)
    			_GDIPlus_BitmapDispose($hBitmap)
    			_GDIPlus_GraphicsDispose($hGfxCtxt)
    			_GDIPlus_GraphicsDispose($hGraphic)
    			_GDIPlus_Shutdown()
    			; und hier dann erst das Programm beenden
    			Exit
    		Case $GUI_EVENT_RESTORE ; beim Wiederherstellen des Fensters (aus dem minimierten Status)
    			_RedrawBitmap() ; die Fenster-Graphic neuzeichnen
    		Case $GUI_EVENT_PRIMARYDOWN ; wenn die linke Maustaste gedrückt wird
    			$aInfo = GUIGetCursorInfo($hGui) ; die Koordinaten der Maus ermitteln (relativ zum Fenster)
    			$sMsg = StringFormat('Maus:\n x = %3i\n y = %3i\n\nGitternetz:\n x = %2i\n y = %2i', $aInfo[0], $aInfo[1], Int($aInfo[0] / $iGridX), Int($aInfo[1] / $iGridY)) ; für die Anzeige die Maus- in Gitternetz-Koordinaten umrechnen
    			ToolTip($sMsg, Default, Default, 'Koordinaten', 1) ; und im ToolTip anzeigen
    		Case $GUI_EVENT_MOUSEMOVE ; wenn die Maus bewegt wird
    			ToolTip('') ; ToolTip wieder ausblenden
    		Case $GUI_EVENT_SECONDARYDOWN ; wenn die rechte Maustaste gedrückt wird
    			_GDIPlus_GraphicsDrawImage($hGraphic, $hBackgr, 0, 0) ; nur die Hintergrund-Bitmap (ohne das Gitter) auf die Fenster-Graphic zeichnen
    		Case $GUI_EVENT_SECONDARYUP ; beim loslassen der rechten Maustaste
    			_RedrawBitmap() ; die Fenster-Graphic neuzeichnen
    	EndSwitch
    WEnd
    Func _RedrawBitmap() ; die Fenster-Graphic neuzeichnen
    	_GDIPlus_GraphicsDrawImage($hGraphic, $hBackgr, 0, 0) ; die Hintergrund-Bitmap auf die Fenster-Graphic zeichnen
    	_GDIPlus_GraphicsDrawImage($hGraphic, $hBitmap, 0, 0) ; die Linien-Bitmap auf die Fenster-Graphic zeichnen
    EndFunc   ;==>_RedrawBitmap
    Func _WM_PAINT($hWnd, $iMsg, $wParam, $lParam)
    	#forceref $iMsg, $wParam, $lParam
    	If $hWnd = $hGui Then _RedrawBitmap() ; die Fenster-Graphic neuzeichnen
    	Return $GUI_RUNDEFMSG
    EndFunc   ;==>_WM_PAINT
    Alles anzeigen
  • Scripting.Dictionary Key Begrenzung?

    • Bitnugger
    • 2. Januar 2017 um 14:20
    Zitat von Kanashius

    Wobei ich mir nicht erklären kann, warum die eine Zeile mit dem richtigen Datentyp einen Fehler wirft

    Schaue dir die Ausgabe von diesem Script an... für mich ist es offensichtlich, dass es an dem "0x" liegt.

    Spoiler anzeigen
    AutoIt
    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_Compile_Both=y
    #AutoIt3Wrapper_UseX64=y
    #AutoIt3Wrapper_Change2CUI=y
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    ;-- TIME_STAMP   2017-01-02 14:03:43
    #include <WindowsConstants.au3>
    #include <AutoItConstants.au3>
    Global $iWidth = 800, $iHeight = 600
    $hGui = GUICreate("", $iWidth, $iHeight, -1, -1, BitOR($WS_SIZEBOX, $WS_MINIMIZEBOX, $WS_CAPTION, $WS_MAXIMIZEBOX))
    $cButton = GUICtrlCreateButton("test", 5, 5)
    $cListview = GUICtrlCreateListView("col", 5, 50, $iWidth - 10, $iHeight - 55)
    GUISetState()
    Local $tagExample = "INT temp;"
    $tStruct = DllStructCreate($tagExample)
    DllStructSetData($tStruct, "temp", 4)
    $controls = ObjCreate("Scripting.Dictionary")
    $hCtrl = GUICtrlGetHandle($cButton)
    ; Das geht...
    ConsoleWrite('+ Hex(GUICtrlGetHandle($cButton))  = ' & Hex($hCtrl) & @CRLF)
    $controls.add(Hex($hCtrl), $tStruct)
    ConsoleWrite('+ Ctrl-ID = ' & DllStructGetData($controls(Hex($hCtrl)), "temp") & @CRLF)
    ; Das geht...
    ConsoleWrite('> Int(GUICtrlGetHandle($cButton))  = ' & Int($hCtrl) & @CRLF)
    $controls.add(Int($hCtrl), $tStruct)
    ConsoleWrite('> Ctrl-ID = ' & DllStructGetData($controls(Int($hCtrl)), "temp") & @CRLF)
    ; Das geht nicht...
    ConsoleWrite('! GUICtrlGetHandle($cButton)       = ' & $hCtrl & @CRLF)
    $controls.add($hCtrl, $tStruct)
    ConsoleWrite('! Ctrl-ID = ' & DllStructGetData($controls($hCtrl), "temp") & @CRLF)
    While Sleep(10)
    	$iMsg = GUIGetMsg()
    	Switch $iMsg
    		Case -3
    			_close()
    	EndSwitch
    WEnd
    Func _close()
    	Exit
    EndFunc   ;==>_close
    Alles anzeigen


    Ausgabe:

  • Scripting.Dictionary Key Begrenzung?

    • Bitnugger
    • 2. Januar 2017 um 03:56

    Ich nehme an, es liegt daran, weil das Handle ('0x...') als Key wegen der führenden Null als Integer interpretiert wird... und das 'x' dann in diesem Fall den Fehler generiert.

    Dictionary Object

    Remarks
    A Dictionary object is the equivalent of a PERL associative array. Items can be any form of data, and are stored in the array. Each item is associated with a unique key. The key is used to retrieve an individual item and is usually an integer or a string, but can be anything except an array.

    Frei übersetzt: Der Schlüssel wird verwendet, um ein einzelnes Element abzurufen und ist in der Regel eine Ganzzahl oder ein String, kann aber alles außer einem Array sein.

    So funktioniert es...

    Spoiler anzeigen
    AutoIt
    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_Compile_Both=y
    #AutoIt3Wrapper_UseX64=y
    #AutoIt3Wrapper_Change2CUI=y
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    ;-- TIME_STAMP   2017-01-02 05:52:02
    
    
    
    
    #include <WindowsConstants.au3>
    #include <AutoItConstants.au3>
    
    
    Global $iWidth = 800, $iHeight = 600
    
    
    $hGui = GUICreate("", $iWidth, $iHeight, -1, -1, BitOR($WS_SIZEBOX, $WS_MINIMIZEBOX, $WS_CAPTION, $WS_MAXIMIZEBOX))
    $cButton = GUICtrlCreateButton("test", 5, 5)
    $cListview = GUICtrlCreateListView("col", 5, 50, $iWidth - 10, $iHeight - 55)
    GUISetState()
    
    
    Local $tagExample = "INT temp;"
    $tStruct = DllStructCreate($tagExample)
    DllStructSetData($tStruct, "temp", 4)
    
    
    $controls = ObjCreate("Scripting.Dictionary")
    
    
    ConsoleWrite('String...............' & @CRLF)
    ConsoleWrite('Handle  = ' & String(GUICtrlGetHandle($cButton)) & @CRLF)
    $controls.add(String(GUICtrlGetHandle($cButton)), $tStruct)
    ConsoleWrite('Ctrl-ID = ' & DllStructGetData($controls(String(GUICtrlGetHandle($cButton))), "temp") & @CRLF & @CRLF)
    
    
    ConsoleWrite('Integer..............' & @CRLF)
    ConsoleWrite('Handle  = ' & Int(GUICtrlGetHandle($cButton)) & @CRLF)
    $controls.add(Int(GUICtrlGetHandle($cButton)), $tStruct)
    ConsoleWrite('Ctrl-ID = ' & DllStructGetData($controls(Int(GUICtrlGetHandle($cButton))), "temp") & @CRLF & @CRLF)
    
    
    ConsoleWrite('String...............' & @CRLF)
    ConsoleWrite('Handle  = ' & '0xFFFFFFFFFFFFFFFE' & @CRLF)
    $controls.add('0xFFFFFFFFFFFFFFFE', $tStruct)
    ConsoleWrite('Ctrl-ID = ' & DllStructGetData($controls('0xFFFFFFFFFFFFFFFE'), "temp") & @CRLF & @CRLF)
    
    
    ; Max. Integer-Wert
    $iInteger = Int(0x7FFFFFFF, $NUMBER_32BIT)
    ConsoleWrite('Integer32............' & @CRLF)
    ConsoleWrite('Handle  = 0x7FFFFFFF (' & $iInteger & ')' & @CRLF)
    $controls.add($iInteger, $tStruct)
    ConsoleWrite('Ctrl-ID = ' & DllStructGetData($controls($iInteger), "temp") & @CRLF & @CRLF)
    
    
    ; Das geht nicht...
    $iInteger = Int(0x0FFFFFFFFFFFFFFE, $NUMBER_64BIT)
    ConsoleWrite('Integer64............' & @CRLF)
    ConsoleWrite('Handle  = 0x0FFFFFFFFFFFFFFE (' & $iInteger & ')' & @CRLF)
    $controls.add($iInteger, $tStruct)
    ConsoleWrite('Ctrl-ID = ' & DllStructGetData($controls($iInteger), "temp") & @CRLF)
    
    
    While Sleep(10)
    	$iMsg = GUIGetMsg()
    	Switch $iMsg
    		Case -3
    			_close()
    	EndSwitch
    WEnd
    
    
    Func _close()
    	Exit
    EndFunc   ;==>_close
    Alles anzeigen
  • probleme mit dem befehl ControlSend

    • Bitnugger
    • 2. Januar 2017 um 02:21

    Zuerst einmal ein allgemeiner Tip für dich:

    Das du für längere Scripte einen Spoiler benutzt ist schon mal echt super!
    Allerdings solltest du dann auch einen Code-Tag benutzen, damit dein Script leichter lesbar ist und dein Script in SciTE vorab mit Tidy (Ctrl +T) formatieren.

    Der Code-Tag sorgt z. B. dafür, dass dein Script hier mit Zeilennummern angezeigt wird. Tidy sorgt u.A. dafür, dass die Zeilen korrekt eingerückt werden.

    Du solltest dein Grundwissen in Sachen AutoIt erst einmal vertiefen, denn sonst kommt du auf keinen grünen Zweig.

    Ich habe dir dein Script mal ein wenig 'umgestrickt'... und ein paar Beispiele mit CTRL, ALT und SHIFT Tasten eingebaut. Mehr Infos dazu findest du in der AutoIt-Hilfe zu der Funktion Send().

    Fernbedienung
    AutoIt
    ;-- TIME_STAMP   2017-01-02 02:14:46
    
    
    #include <Array.au3>
    
    
    ; Lokale Variablen gibt es nur innerhalb von Funktionen und Schleifen! Hier jedoch sind alle Variablen global, auch wenn du sie mit Local deklarierst!
    
    
    Global $hKodi = ControlGetHandle('Kodi', '', '')
    If $hKodi = 0 Then
    	ConsoleWrite('Kodi wurde noch nicht gestartet!' & @CRLF)
    	Exit 1
    EndIf
    
    
    Global $szIPADDRESS = "127.0.0.1", $nPORT = 8765, $MainSocket, $recv
    
    
    Global $sFernbedienung_1 = "PHILIPS_26PFL5604H"
    
    
    Global $aSplit, $iIndex, $sBefehl
    
    
    Global $aBefehl_1 =	[['GUIDE',		'l',			'Guide Taste = PVR OSD Guide'], _
    					 ['MUTE',		'{F8}',			'Mute'], _
    					 ['Vol-',		'{F9 2}',		'Lautstärke runter'], _
    					 ['Vol+',		'{F10 2}',		'Lautstärke hoch'], _
    					 ['up',			'{UP}',			'hoch'], _
    					 ['down',		'{DOWN}',		'runter'], _
    					 ['left',		'{LEFT}',		'links'], _
    					 ['right',		'{RIGHT}',		'rechts'], _
    					 ['back',		'{BACKSPACE}',	'zurück'], _
    					 ['source', 	'{TAB}',		'Taste Source = Vollbild'], _
    					 ['ok',			'{ENTER}',		'OK'], _
    					 ['play',		'p',			'Play'], _
    					 ['stop',		'x',			'Stop'], _
    					 ['pause',		'{SPACE}',		'Pause'], _
    					 ['ch+',		'{PGUP}',		'Channel rauf Taste = eine seite hoch'], _
    					 ['ch-',		'{PGDN}',		'Channel runter Taste = eine seite runter'], _
    					 ['home',		'c',			'Home Taste = ContexMenü'], _
    					 ['options',	'{ESCAPE}',		'Options Taste = PreviousMenü'], _
    					 ['info',		'i',			'Info anzeigen'], _
    					 ['>>',			'f',			'schneller Vorlauf'], _
    					 ['<<',			'r',			'schneller Rücklauf'], _
    					 ['format',		'q',			'Format Plugin commands'], _
    					 ['0',			'0',			'0'], _
    					 ['1',			'1',			'1'], _
    					 ['2',			'2',			'2'], _
    					 ['3',			'3',			'3'], _
    					 ['4',			'4',			'4'], _
    					 ['5',			'5',			'5'], _
    					 ['6',			'6',			'6'], _
    					 ['7',			'7',			'7'], _
    					 ['8',			'8',			'8'], _
    					 ['9',			'9',			'9'], _
    					 ['red',		'{F1}',			'rot Musik'], _
    					 ['green',		'{F2}',			'grün PVR'], _
    					 ['yellow',		'{F3}',			'gelb Bilder'], _
    					 ['blue',		'{F4}',			'blau'], _
    					 ['Special1',	'!{F11}',		'Special1 = ALT + F11'], _
    					 ['Special2',	'^{F11}',		'Special2 = CONTROL + F11'], _
    					 ['Special3',	'+{F11}',		'Special3 = SHIFT + F11'], _
    					 ['Special4',	'!+{F12}',		'Special4 = ALT + SHIFT + F12'], _
    					 ['Special5',	'^+{F12}',		'Special5 = CONTROL + SHIFT + F12'], _
    					 ['Special6',	'^!{F12}',		'Special6 = CONTROL + ALT + F12']]
    
    
    ; ! = ALT-Taste
    ; + = SHIFT-Taste
    ; ^ = CTRL-Taste
    ; # = Windows-Taste
    
    
    Global $sFernbedienung_2 = 'Not Defined'
    Global $aBefehl_2 = [['Noop', 'Noop', 'Noop']]
    
    
    TCPStartup()
    $MainSocket = TCPConnect($szIPADDRESS, $nPORT)
    
    
    While 1
    	$recv = TCPRecv($MainSocket, 512)
    	If $recv = "" Then ContinueLoop
    
    
    	$aSplit = StringSplit($recv, ", ")
    	If @error Then ContinueLoop
    
    
    	Switch StringTrimRight($aSplit[4], 1)
    		Case $sFernbedienung_1
    			$iIndex = _ArraySearch($aBefehl_1, $aSplit[3], 0, 0, 0, 0, 1, -1)
    			If @error Then
    				ConsoleWrite('Befehl "' & $aSplit[3] & '" nicht gefunden!' & @CRLF)
    			Else
    				_SendBefehl_1($iIndex)
    			EndIf
    		Case $sFernbedienung_2
    			$iIndex = _ArraySearch($aBefehl_2, $aSplit[3], 0, 0, 0, 0, 1, -1)
    			If @error Then
    				ConsoleWrite('Befehl "' & $aSplit[3] & '" nicht gefunden!' & @CRLF)
    			Else
    				_SendBefehl_2($iIndex)
    			EndIf
    		Case Else
    			ConsoleWrite('Fernbedienung "' & $aSplit[4] & '" nicht gefunden!' & @CRLF)
    	EndSwitch
    WEnd
    
    
    Func _SendBefehl_1($iIndex)
    	ConsoleWrite('Sende Befehl: ' & $aBefehl_1[$iIndex][2] & @CRLF)
    	Local $iRet = ControlSend('', '', $hKodi, $aBefehl_1[$iIndex][1])
    	Sleep(150)
    
    
    	Return $iRet
    EndFunc
    
    
    Func _SendBefehl_2($iIndex)
    	ConsoleWrite('Sende Befehl: ' & $aBefehl_2[$iIndex][2] & @CRLF)
    	Local $iRet = ControlSend('', '', $hKodi, $aBefehl_2[$iIndex][1])
    	Sleep(150)
    
    
    	Return $iRet
    EndFunc
    Alles anzeigen
  • GUI Untermenü/fenster

    • Bitnugger
    • 1. Januar 2017 um 21:30

    Wenn ich es recht verstehe, suchst du folgende Funktionen:

    GUICtrlCreateTab()

    bzw.

    GUISetState()

    Schau dir die Hilfe dazu an und wenn du allein nicht weiter kommst, frage einfach noch mal...

  • C:\Windows\System32\Tasks auslesen

    • Bitnugger
    • 1. Januar 2017 um 21:07

    Wenn du ein 64-Bit-System hast und dein Script als 32-Bit-Anwendung ausgeführt wird, greift die x64 Redirection.

    Hier mal zur Veranschaulichung... das Script kompilieren und dann beide Exe ausführen.

    AutoIt
    #RequireAdmin
    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_Compile_Both=y
    #AutoIt3Wrapper_UseX64=y
    #AutoIt3Wrapper_Res_requestedExecutionLevel=requireAdministrator
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    ;-- TIME_STAMP   2017-01-01 21:06:44   v 0.1
    
    
    
    
    #include <File.au3>
    
    
    Global $g_sTasks = "C:\Windows\System32\Tasks"
    Global $g_aTasks = _FileListToArray($g_sTasks, "*", $FLTA_FILES, False)
    _ArrayDisplay($g_aTasks, '$g_aTasks')
    Alles anzeigen
  • Treeviewitems aus externem Programm auslesen

    • Bitnugger
    • 26. Dezember 2016 um 16:38

    Evtl. hilft dir das hier weiter:
    https://www.autoitscript.com/forum/topic/125606-how-do-i-select-a-specific-path-in-systreeview32/?do=findComment&comment=872450
    https://www.autoitscript.com/forum/topic/79…-by-their-name/

  • Treeview Style wechseln

    • Bitnugger
    • 23. Dezember 2016 um 19:14

    Bei mir musste ich zuerst noch ein Include hinzufügen, um dein Script zu testen...
    #include <WindowsConstants.au3>

    Dann habe ich mich gefragt, wieso du den Style nicht mit GUICtrlSetStyle() änderst... und habe in der Hilfe dazu dann folgendes gelesen:
    Remarks
    Some styles cannot be changed dynamically, check MSDN documentation. $CBS_UPPERCASE combo style is one example.

    Mit GUICtrlSetStyle() kannst du den Checkbox-Style zwar setzen, jedoch nicht wieder entfernen...

  • Computer-Info

    • Bitnugger
    • 20. Dezember 2016 um 21:57

    Bei mir stürzt das Script ab, wenn ich auf den Tab "Steckplätze" wechsle, so auch bei "Report", da hier ja wohl auch die Steckplätze abgefragt werden.

    Und was mir sonst noch so aufgefallen ist...

    bundestag.de ist erreichbar, antwortet jedoch nicht auf Ping... nimmst die dann doch besser raus oder eben eine andere?

    Tab "Festplatten" - Seriennummer (Hardware) - die Exe meint, wird von WIN_8 nicht unterstützt, die Au3 sagt, wird von WIN_10 nicht unterstützt... dann nimm doch in dem Fall einfach den Soft-Serial...

    Tab "Netzwerk" - dauert bei mir ewig und drei Tage... und am Ende wird auch nicht mehr angezeigt, als bereits 1 Sekunde nach Wechseln auf diesen Tabs - nur mein erstes Netzwerk.

    Tab "Netzwerkadapter" - Die MTU ist nicht verfügbar? Kannst du die nicht aus der Registry auslesen? Zudem fehlen alle Infos zu IPv6.

    Tab "Monitor" - hier wird bei Breite und Höhe nichts angezeigt - und auch nur der erste von zwei Monitoren!

    Tab "Drucker" - hier wäre schön, wenn dort auch stehen würde, welcher der Standard-Drucker ist...

    Tab "Mainboard" - Seriennummer vom Mainboard und BIOS kannst du nicht auslesen? Ist bei mir jedenfalls beides leer.

    Computer-Info.png

  • Datei einlesen nach Wert suchen und ergänzen

    • Bitnugger
    • 20. Dezember 2016 um 20:04

    Ich würde das so angegen...

    Spoiler anzeigen
    AutoIt
    ;-- TIME_STAMP   2016-12-20 20:00:02
    
    
    #include <file.au3>
    ;#include <array.au3>
    
    
    Opt('MustDeclareVars', 1)
    
    
    _Example1()
    _Example2()
    
    
    ; Einen Eintrag suchen und hinzufügen
    Func _Example1()
    	Local $hFile, $sFile = @LocalAppDataDir & "Low\Sun\Java\Deployment\security\exception.sites"
    	Local $sURL = 'autoit.de', $aCertmodelArray
    
    
    	If FileExists($sFile) = 0 Then
    		; Datei existiert nicht... erzeugen und URL hinzufügen...
    		$hFile = FileOpen($sFile, BitOR($FO_OVERWRITE, $FO_CREATEPATH))
    		FileWrite($hFile, $sURL)
    	Else
    		$hFile = FileOpen($sFile, $FO_APPEND)
    		_FileReadToArray($hFile, $aCertmodelArray)
    		If @error = 0 Then
    			_ArraySearch($aCertmodelArray, $sURL)
    			If @error Then
    				; Eintrag nicht vorhanden... URL hinzufügen...
    				FileWrite($hFile, $sURL)
    			EndIf
    		Else
    			; Datei ist vorhanden, aber leer... URL hinzufügen...
    			FileWrite($hFile, $sURL)
    		EndIf
    	EndIf
    
    
    	FileClose($hFile)
    EndFunc  ;==>_Example1
    
    
    ; Mehrere Einträge suchen und hinzufügen
    Func _Example2()
    	Local $hFile, $sFile = @LocalAppDataDir & "Low\Sun\Java\Deployment\security\exception.sites"
    	Local $aURLs = ['autoit.de', 'www.autoitscript.com', 'chocolatey.org'], $aCertmodelArray, $aAppendURLs[0]
    
    
    	If FileExists($sFile) = 0 Then
    		; Datei existiert nicht... erzeugen und URLs hinzufügen...
    		$hFile = FileOpen($sFile, BitOR($FO_OVERWRITE, $FO_CREATEPATH))
    		_FileWriteFromArray($hFile, $aURLs)
    	Else
    		$hFile = FileOpen($sFile, $FO_APPEND)
    		_FileReadToArray($hFile, $aCertmodelArray)
    		If @error = 0 Then
    			For $i = 0 To UBound($aURLs) -1 Step 1
    				_ArraySearch($aCertmodelArray, $aURLs[$i])
    				If @error Then
    					; Eintrag nicht vorhanden... URL hinzufügen...
    					_ArrayAdd($aAppendURLs, $aURLs[$i])
    				EndIf
    			Next
    			If UBound($aURLs) > 0 Then _FileWriteFromArray($hFile, $aAppendURLs)
    		Else
    			; Datei ist vorhanden, aber leer... URLs hinzufügen...
    			_FileWriteFromArray($hFile, $aURLs)
    		EndIf
    	EndIf
    
    
    	FileClose($hFile)
    EndFunc  ;==>_Example2
    Alles anzeigen
  • SciTE - Variablen- und Funktions- Tipp (CallTipp oder Konsolenausgabe) per HotKey od. Kontextmenü, Suche nach Variable [v0.11]

    • Bitnugger
    • 20. Dezember 2016 um 18:38

    Meinen Vorschlag mit dem ToolTip schließen hast du wirklich super umgesetzt... echt klasse!

    Den Fehler, wenn das Caret am Ende einer Zeile steht, hast du aber immer noch drin...

  • Verzeichnisse und Unterverzeichnisse aus Variablen

    • Bitnugger
    • 15. Dezember 2016 um 18:27

    Ja - guckst du hier...

    "Diese Funktion erstellt auch alle übergeordneten Verzeichnisse, die in der Variable "path" enthalten sind, wenn sie noch nicht existieren."

  • Ich benötige einen Denkanstoss beim kopieren von Dateien

    • Bitnugger
    • 12. Dezember 2016 um 09:04

    Du sagst, die Dateien könnten in unterschiedlichen Verzeichnissen liegen... sind diese Verzeichnisse Unterverzeichnisse oder sind sie verstreut auf verschieden Pfaden/Partitionen?

    Ich mache solche Aktionen gerne mit Everything... bzw. mit dem Komandozeilen-Tool es.exe, dass du auch auf dieser Seite findest.

    Beispiel:
    > es.exe -h
    -r Search the database using a basic POSIX regular expression.
    -i Does a case sensitive search.
    -w Does a whole word search.
    -p Does a full path search.
    -h --help Display this help.
    -n <num> Limit the amount of results shown to <num>.
    -s Sort by full path.

    ; alle Bilder aus dem Verzeichnis "f:\Eigene Dateien\Pictures\Fun\" inkl. aller Unterverzeichnisse nach Bildern durchsuchen, die mit "img" beginnen und mit ".jpg" enden
    > es.exe -p "f:\Eigene Dateien\Pictures\Fun\*img*.jpg"
    F:\Eigene Dateien\Pictures\Fun\Fun - JPG\Ichhasseallekriminellen.jpg
    F:\Eigene Dateien\Pictures\Fun\Fun - JPG\Katzenfalle.jpg
    F:\Eigene Dateien\Pictures\Fun\Fun - Linux\linux_users_what_i_really_do.jpg
    ...


    oder die Ausgabe direkt in eine Datei umleiten...

    > es.exe -p "f:\Eigene Dateien\Pictures\Fun\*img*.jpg" >> c:\pics.txt


    Alternativ kannst du natürlich auch es.exe via AutoIt starten und die Ausgabe von Stdout in ein Array einlesen...


    es_example
    AutoIt
    #include <AutoItConstants.au3>
    #include <MsgBoxConstants.au3>
    #include <Array.au3> ; Required for _ArrayDisplay only.
    
    
    ;-- TIME_STAMP   2016-12-12 08:54:13
    
    
    Example()
    
    
    Func Example()
    	;Local $iPID = Run(@ComSpec & ' /C DIR "' & $sFilePath & $sFilter & '" /B /A-D /S', $sFilePath, @SW_HIDE, $STDOUT_CHILD)
    	;Hilfe anzeigen
    	;Local $iPID = Run('es.exe -h', '', @SW_HIDE, $STDOUT_CHILD)
    	;
    	Local $iPID = Run('es.exe -p "f:\Eigene Dateien\Pictures\*Aqua*.jpg"', '', @SW_HIDE, $STDOUT_CHILD)
    	ConsoleWrite("@@ Debug line" & @TAB & @ScriptLineNumber & "   var: $iPID --> " & $iPID & @CRLF)
    	; If you want to search with files that contains unicode characters, then use the /U commandline parameter.
    
    
    	; Wait until the process has closed using the PID returned by Run.
    	ProcessWaitClose($iPID)
    
    
    	; Read the Stdout stream of the PID returned by Run. This can also be done in a while loop. Look at the example for StderrRead.
    	Local $sOutput = StdoutRead($iPID)
    ConsoleWrite("@@ Debug line" & @TAB & @ScriptLineNumber & "   var: $sOutput --> " & $sOutput & @CRLF)
    
    
    	; Use StringSplit to split the output of StdoutRead to an array. All carriage returns (@CRLF) are stripped and @CRLF (line feed) is used as the delimiter.
    	Local $aArray = StringSplit(StringTrimRight(StringStripCR($sOutput), StringLen(@CRLF)), @CRLF)
    	If @error Then
    		MsgBox($MB_SYSTEMMODAL, "", "It appears there was an error trying to find all the files in the current script directory.")
    	Else
    		; Display the results.
    		_ArrayDisplay($aArray)
    	EndIf
    EndFunc   ;==>Example
    Alles anzeigen


    es_example.png

  • ISN AutoIt Studio

    • Bitnugger
    • 12. Dezember 2016 um 07:09
    Zitat von Cape-City

    z.B. wie ich den Form Designer starten kann

    So z. B. ...
    ISN_Form.png

  • Update autoit.de Forum

    • Bitnugger
    • 10. Dezember 2016 um 19:45

    Kommunikation ist alles... und ja, ich spende auch für ein Upgrade... in der Hoffnung, dass die Suche und der Editor überarbeitet wurden und besser funktionieren, als es derzeit der Fall ist. :D

    Ich mache es auch via PayPal... brauche dann zu gegebener Zeit nur die Bankdaten.

  • Exe mit Parameter übergeben

    • Bitnugger
    • 10. Dezember 2016 um 19:24

    Ich meine da wäre zumindest ein " überflüssig...
    Run('"C:\Program Files (x86)\deepinvent\MailStore Home\MailStoreHome.exe" /c archive --id="16""')

    Sowas mache ich bei komplizierten Fällen dann auch gerne mit StringFormat... weil man sich dabei nicht so sehr die Augen wund guckt. :D
    Run(StringFormat('"%s" %s %s %s"%s"' , 'C:\Program Files (x86)\deepinvent\MailStore Home\MailStoreHome.exe', '/c', 'archive', '--id=', '16'))

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™