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. Tweaky

Beiträge von Tweaky

  • Dienst löschen klappt unter Win 10 nicht mehr

    • Tweaky
    • 14. April 2016 um 23:15

    Idealerweise möchte ich den Dienst löschen und nicht nur stoppen

  • TXT-Datei öffnen

    • Tweaky
    • 14. April 2016 um 20:01

    Öffnet die txt-Datei mit dem Standardprogramm


    AutoIt
    ShellExecute("test.txt")

    EDIT: Anführungszeichen vergessen?

  • Dienst löschen klappt unter Win 10 nicht mehr

    • Tweaky
    • 14. April 2016 um 19:55

    #RequireAdmin hilft leider auch nicht weiter.
    Versuche zwar die DllCall-Befehle zu ändern, jedoch tue ich mich mit denen immer schwer.

  • Dienst löschen klappt unter Win 10 nicht mehr

    • Tweaky
    • 13. April 2016 um 20:14

    Hi,
    ich habe ein Skript welches als 64bit läuft.
    unter Win 7 64bit kann ich problemlos einen Dienst löschen.
    Unter Win 10 64bit klappt dies leider nicht mehr.

    Ich bin total überfragt was ich ändern muss, damit es klappt.
    Die UDf ist schon etwas älter.
    Von manchen Funktionen (starten, stoppen und prüfen) habe ich eine neuere Version gefunden die auch unter Win 10 funktioniert.
    Leider ist dort das löschen eines Dienstes nicht enthalten.

    Hat jemand eine Ahnung, was man anpassen muss ?(

    AutoIt
    #Region    ;************ Includes ************
    #Include <Dienste_alt.au3>
    #Include <Dienste_neu.au3>
    #EndRegion    ;************ Includes ************
    #AutoIt3Wrapper_UseX64=y
    
    
    ;alt
    $x = _StopService("", "AdobeARMservice") ;funktioniert nicht
    ;~ $x = _StartService("", "AdobeARMservice") ;funktioniert nicht
    ;~ $x = _DeleteService("", "AdobeARMservice") ;funktioniert nicht
    ConsoleWrite($x & @CRLF)
    
    
    
    
    ;neu
    ;~ $x = _StopService2("AdobeARMservice") ;funktioniert
    ;~ $x = _StartService2("AdobeARMservice") ;funktioniert
    ;~ $x = _DeleteService2("AdobeARMservice") ;Funktion gibt es nicht
    ;~ ConsoleWrite($x & @CRLF)
    Alles anzeigen


    Dienste_alt.au3
    Dienste_neu.au3

  • Icons extrahieren

    • Tweaky
    • 25. März 2016 um 13:26

    Danke euch beiden.
    Ich verwende nun das Skript von eukalyptus :thumbup:

  • Icons extrahieren

    • Tweaky
    • 22. März 2016 um 19:10

    @eukalyptus
    Puh, hört sich nicht schlecht an. Allerdings kriege ich kein funktionierendes Beispiel zusammengestellt.

    @UEZ
    Danke für die Info.

  • Icons extrahieren

    • Tweaky
    • 21. März 2016 um 21:07

    OK, dann bin auch beruhigt. Also habe ich keinen Denkfehler.
    Wenn jemand trotzdem eine Idee hat wie man auch 256x256 in der dll ermitteln kann, bitte posten.

  • Icons extrahieren

    • Tweaky
    • 21. März 2016 um 19:32

    Sorry stehe grad aufm Schlauch, wo steht im 9. Block in der Konsole 100?
    Es wird Zeichen 1 und 2 x 3 und 4 verwendet

    Code
    000000000100200016D000000900
    0x0
  • Icons extrahieren

    • Tweaky
    • 20. März 2016 um 22:35

    Hi,
    ich habe mal wieder eine alte UDF ausgegraben.

    Damit können Icons extrahiert werden. Leider werden Icons mit 256x256 als 0x0 angezeigt.
    Kann mir einer einen Tipp geben wo der Fehler liegen könnte :/

    Getestet habe ich es mit dem ersten Icon der Datei "wucltux.dll" von Win 7.

    AutoIt
    #Region    ;************ Includes ************
    #include-once
    #include <Array.au3>
    #EndRegion    ;************ Includes ************
    
    
    Global $aINM[1], $LV, $LHT, $IHM
    
    
    ; #FUNCTION# =============================================================================================
    ; Name...........: _ExtractIconToFile
    ; Description ...: Extract an icon resource from a cpl, dll, exe, icl, ocx to a *.ico file
    ; Syntax.........: _ExtractIconToFile($sInFile, $iIcon, $sOutIco[, $iPath = 0])
    ; Parameters ....: $sInFile - Path to file that contains the icon to extract.
    ;                  $iIcon   - Icon Number to extract, eg; -1 (The first icon starts at -1)
    ;                  $sOutIco - Full path where to save the extracted icon to, eg; "C:\My Icons\new.ico"
    ;                  $iPath   - If set to 1 then the extraction path will be created if it doesn't exist.
    ;                             If left as 0 then if the extraction path doesn't exist it won't be created.
    ; Return values .: Success  - Return 1 and @error 0
    ;                  Failure  - Return 0 and @error 1 ~ 12
    ;                             @error 1 = Invalid $sInFile parameter
    ;                             @error 2 = Invalid $iIcon parameter
    ;                             @error 3 = LoadLibrary failed to return a valid ptr
    ;                             @error 4 = $iIcon does not exist in the $sInFile
    ;                             @error 5 = Failed to Find RT_GROUP_ICON Resource
    ;                             @error 6 = Returned RT_GROUP_ICON Resource as 0 bytes
    ;                             @error 7 = Failed to Load RT_GROUP_ICON Resource
    ;                             @error 8 = Failed to Lock RT_GROUP_ICON Resource
    ;                             @error 9 = Failed to create DLL Struct for RT_GROUP_ICON data
    ;                             @error 10 = Data in DLL Struct is null
    ;                             @error 11 = Failed to Open output file path
    ;                             @error 12 = Failed to write file at output path
    ;                             (Most the error returns were for my own debug purpose)
    ; Author ........: smashly
    ; Modified.......:
    ; Remarks .......: A big Thank You to Siao for the heads up on _ResourceEnumNames & ___EnumResNameProc
    ;                  Also Thank You to WeaponX for his _StringSplitRegExp
    ; Related .......:
    ; Link ..........;
    ; Example .......; _ExtractIconToFile(@SystemDir & "\shell32.dll", -42, @HomeDrive & "\Extracted.ico")
    ; ========================================================================================================
    
    
    _ExtractIconToFile("c:\windows\system32\wucltux.dll", -1, "E:\")
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    Func _ExtractIconToFile($sInFile, $iIcon, $sOutIco, $iPath = 0)
    	Local Const $LOAD_LIBRARY_AS_DATAFILE = 0x00000002
    	Local Const $RT_ICON = 3
    	Local Const $RT_GROUP_ICON = 14
    	Local $hInst, $iGN = "", $hFind, $aSize, $hLoad, $hLock, $tRes, $sDByte
    	Local $sData, $sHdr, $iOrd, $aHtail, $iCnt, $Offset, $FO, $iCrt = 18
    
    
    	If $iPath = 1 Then $iCrt = 26
    	If Not FileExists($sInFile) Then Return SetError(1, 0, 0)
    	If Not IsInt($iIcon) Then Return SetError(2, 0, 0)
    
    
    	$hInst = _LoadLibraryEx($sInFile, $LOAD_LIBRARY_AS_DATAFILE)
    	If Not IsPtr($hInst) Then Return SetError(3, 0, 0)
    	_ResourceEnumNames($hInst, $RT_GROUP_ICON)
    	For $i = 1 To $aINM[0]
    		If $i = StringReplace($iIcon, "-", "") Then
    			$iGN = $aINM[$i]
    			ExitLoop
    		EndIf
    	Next
    	If $iGN = "" Then
    		_FreeLibrary($hInst)
    		Return SetError(4, 0, 0)
    	EndIf
    	$hFind = DllCall("kernel32.dll", "int", "FindResourceA", "int", $hInst, "str", $iGN, "long", $RT_GROUP_ICON)
    	If $hFind[0] = 0 Then
    		_FreeLibrary($hInst)
    		Return SetError(5, 0, 0)
    	EndIf
    	$aSize = DllCall("kernel32.dll", "dword", "SizeofResource", "int", $hInst, "int", $hFind[0])
    	If $aSize[0] = 0 Then
    		_FreeLibrary($hInst)
    		Return SetError(6, 0, 0)
    	EndIf
    	$hLoad = DllCall("kernel32.dll", "int", "LoadResource", "int", $hInst, "int", $hFind[0])
    	If $hLoad[0] = 0 Then
    		_FreeLibrary($hInst)
    		Return SetError(7, 0, 0)
    	EndIf
    	$hLock = DllCall("kernel32.dll", "int", "LockResource", "int", $hLoad[0])
    	If $hLock[0] = 0 Then
    		_FreeLibrary($hInst)
    		Return SetError(8, 0, 0)
    	EndIf
    	$tRes = DllStructCreate("byte[" & $aSize[0] & "]", $hLock[0])
    	If Not IsDllStruct($tRes) Then
    		_FreeLibrary($hInst)
    		Return SetError(9, 0, 0)
    	EndIf
    	$sData = DllStructGetData($tRes, 1)
    	If $sData = "" Then
    		_FreeLibrary($hInst)
    		Return SetError(10, 0, 0)
    	EndIf
    	$sHdr = StringLeft($sData, 14)
    	$iOrd = Dec(LTHR("0x" & StringRight(StringLeft($sData, 42), 4))) ;index start of icon in the library
    	$aHtail = _StringSplitRegExp(StringTrimLeft($sData, 14), '(.){28}', True)
    
    
    
    
    	;hier ist das Problem ersichtlich (in dem 9. eintrag sollte statt 0x0 >>> 256x256 stehen)
    	For $i = 1 To UBound($aHtail) - 1
    		ConsoleWrite($aHtail[$i] & @CRLF)
    		$sTmp = Dec(StringMid($aHtail[$i], 1, 2)) & "x" & Dec(StringMid($aHtail[$i], 3, 2))
    		ConsoleWrite($sTmp & @CRLF & @CRLF)
    	Next
    
    
    ;~ 	$iCnt = $aHtail[0]
    ;~ 	$Offset = ($iCnt * 16) + 6
    ;~ 	For $r = 1 To $aHtail[0]
    ;~ 		$sDByte = Dec(Hex(BitRotate("0x" & StringLeft(StringRight($aHtail[$r], 12), 4), -8), 4))
    ;~ 		$aHtail[$r] = StringTrimRight($aHtail[$r], 4)
    ;~ 		$sHdr &= $aHtail[$r] & LTHR($Offset) & "0000"
    ;~ 		$Offset += $sDByte
    ;~ 	Next
    ;~ 	For $i = 1 To $iCnt
    ;~ 		$hFind = DllCall("kernel32.dll", "int", "FindResourceA", "int", $hInst, "str", "#" & $iOrd, "long", $RT_ICON)
    ;~ 		$aSize = DllCall("kernel32.dll", "dword", "SizeofResource", "int", $hInst, "int", $hFind[0])
    ;~ 		$hLoad = DllCall("kernel32.dll", "int", "LoadResource", "int", $hInst, "int", $hFind[0])
    ;~ 		$hLock = DllCall("kernel32.dll", "int", "LockResource", "int", $hLoad[0])
    ;~ 		$tRes = DllStructCreate("byte[" & $aSize[0] & "]", $hLock[0])
    ;~ 		$sHdr &= StringTrimLeft(DllStructGetData($tRes, 1), 2)
    ;~ 		$iOrd += 1
    ;~ 	Next
    ;~ 	_FreeLibrary($hInst)
    ;~ 	Dim $aINM[1]
    ;~ 	$FO = FileOpen($sOutIco, $iCrt)
    ;~ 	If $FO = -1 Then Return SetError(11, 0, 0)
    ;~ 	$FW = FileWrite($FO, $sHdr)
    ;~ 	If $FW = 0 Then Return SetError(12, 0, 0)
    ;~ 	FileClose($FO)
    ;~ 	Return SetError(0, 0, 1)
    EndFunc   ;==>_ExtractIconToFile
    
    
    ; Helper Functions beyond this point
    
    
    Func LTHR($sNum)
    	Return Hex(BitRotate($sNum, -8), 4)
    EndFunc   ;==>LTHR
    
    
    Func _LoadLibraryEx($sFile, $iFlag)
    	Local $hInst2 = DllCall("Kernel32.dll", "hwnd", "LoadLibraryExA", "str", $sFile, "hwnd", 0, "int", $iFlag)
    	Return $hInst2[0]
    EndFunc   ;==>_LoadLibraryEx
    
    
    Func _FreeLibrary($hModule)
    	DllCall("Kernel32.dll", "hwnd", "FreeLibrary", "hwnd", $hModule)
    EndFunc   ;==>_FreeLibrary
    
    
    Func _StringSplitRegExp($sString, $sPattern, $sIncludeMatch = False, $iCount = 0)
    	Local $sReservedPattern = Chr(0), $sTemp, $aResult
    	Local $sReplacePattern = $sReservedPattern
    	If $sIncludeMatch Then $sReplacePattern = "$0" & $sReplacePattern
    	$sTemp = StringRegExpReplace($sString, $sPattern, $sReplacePattern, $iCount)
    	If StringRight($sTemp, 1) = $sReservedPattern Then $sTemp = StringTrimRight($sTemp, 1)
    	$aResult = StringSplit($sTemp, $sReservedPattern, 1)
    	Return $aResult
    EndFunc   ;==>_StringSplitRegExp
    
    
    Func _ResourceEnumNames($hModule, $iType)
    	Local $aRet, $IsPtr = IsPtr($hModule), $xCB
    	If $IsPtr Then
    		$xCB = DllCallbackRegister('___EnumResNameProc', 'int', 'int*;int*;int*;int*')
    		$aRet = DllCall('kernel32.dll', 'int', 'EnumResourceNamesW', 'ptr', $hModule, 'int', $iType, 'ptr', DllCallbackGetPtr($xCB), 'ptr', 0)
    		DllCallbackFree($xCB)
    	EndIf
    EndFunc   ;==>_ResourceEnumNames
    
    
    Func ___EnumResNameProc($hModule, $pType, $pName, $lParam)
    	Local $aSize = DllCall('kernel32.dll', 'int', 'GlobalSize', 'ptr', $pName), $tBuf
    	If $aSize[0] Then
    		$tBuf = DllStructCreate('wchar[' & $aSize[0] & ']', $pName)
    		ReDim $aINM[UBound($aINM) + 1]
    		$aINM[0] += 1
    		$aINM[UBound($aINM) - 1] = DllStructGetData($tBuf, 1)
    	Else
    		ReDim $aINM[UBound($aINM) + 1]
    		$aINM[0] += 1
    		$aINM[UBound($aINM) - 1] = "#" & $pName
    	EndIf
    	Return 1
    EndFunc   ;==>___EnumResNameProc
    Alles anzeigen
  • Text Dateien vergleichen und Ergänzen

    • Tweaky
    • 12. März 2016 um 00:03

    Steht in der Hilfe drin.
    Schau dir von _FileWriteFromArray mal den 3. Parameter an ...

  • Text Dateien vergleichen und Ergänzen

    • Tweaky
    • 11. März 2016 um 23:49

    Dann so.

    AutoIt
    #Region    ;************ Includes ************
    #include <String.au3>
    #include <File.au3>
    #include <Array.au3>
    #EndRegion    ;************ Includes ************
    Global $aDatei1[1], $aDatei2[1]
    
    
    $sDatei1 = @ScriptDir & "\1.txt"
    $sDatei2 = @ScriptDir & "\2.txt"
    
    
    _FileReadToArray($sDatei1, $aDatei1) ;Datei 1 ins Array
    _FileReadToArray($sDatei2, $aDatei2) ;Datei 2 ins Array
    _ArrayDisplay($aDatei1)
    
    
    ;Schleife in Datei 2
    For $i = 1 To UBound($aDatei2) - 1
    	$aLinks = _StringBetween($aDatei2[$i], ";", ";") ;Text zwischen den ersten beiden ";" jeder Zeile von Datei 2
    	If IsArray($aLinks) Then
    		$iSearch = _ArraySearch($aDatei1, ";" & $aLinks[0] & ";", 1) ;in Datei 1 nach den Zeichen suchen (genaue Übereinstimmung notwendig)
    		If $iSearch <> -1 Then $aDatei1[$iSearch] = $aDatei2[$i] ;Eintrag gefunden >>> Zeile von Datei 2 in Datei 1 übernehmen
    	EndIf
    Next
    
    
    _ArrayDisplay($aDatei1)
    Alles anzeigen
  • Text Dateien vergleichen und Ergänzen

    • Tweaky
    • 11. März 2016 um 23:38

    So schwer ist es doch nicht.

    Hier mal meine Variante

    AutoIt
    #Region    ;************ Includes ************
    #include <File.au3>
    #include <Array.au3>
    #EndRegion    ;************ Includes ************
    Global $aDatei1[1], $aDatei2[1]
    
    
    $sDatei1 = @ScriptDir & "\1.txt"
    $sDatei2 = @ScriptDir & "\2.txt"
    
    
    _FileReadToArray($sDatei1, $aDatei1) ;Datei 1 ins Array
    _FileReadToArray($sDatei2, $aDatei2) ;Datei 2 ins Array
    _ArrayDisplay($aDatei1)
    
    
    ;Schleife in Datei 2
    For $i = 1 To UBound($aDatei2) - 1
    	$sLinks = StringLeft($aDatei2[$i], 6) ;linke 6 Zeichen jeder Zeile von Datei 2
    	$iSearch = _ArraySearch($aDatei1, $sLinks, 1) ;in Datei 1 nach den 6 Zeichen suchen (genaue Übereinstimmung notwendig)
    	If $iSearch <> -1 Then $aDatei1[$iSearch] = $aDatei2[$i] ;Eintrag gefunden >>> Zeile von Datei 2 in Datei 1 übernehmen
    Next
    
    
    _ArrayDisplay($aDatei1)
    Alles anzeigen
  • Deutsche Hilfe auf 3.3.10.2 updaten - mitmachen

    • Tweaky
    • 6. März 2016 um 19:27

    Danke.

    zu StringRegExp.
    Stimmt dieser Satz ist doppelt.
    Aber du hast du ne Menge vergessen zu übersetzen.
    In 3.3.10.2 sind da ca. 250 Zeilen hinzugekommen (ab "Newline conversations")
    Schaus dir bitte nochmal an.

  • SciTE Umlaufe in Console

    • Tweaky
    • 4. März 2016 um 22:57

    Habs nun mit
    output.code.page=65001
    hinbekommen.

    Wobei ich es nicht verstehe.

    Sollte ich eigentlich nicht 1000 eingeben?

  • SciTE Umlaufe in Console

    • Tweaky
    • 4. März 2016 um 20:07

    Es funktioniert wenn ich
    code.page=1000
    reinschreibe (also ohne "output.")

    Ich habs nun in die "SciTEUser.properties" reingeschrieben, damit bei einem Update nichts überschrieben wird.


    EDIT: seltsam.
    Es geht nur, wenn ich in SciTE noch die "SciTEUser.properties" geöffnet habe. Schließe ich diese gehts nicht mehr. ;(

  • SciTE Umlaufe in Console

    • Tweaky
    • 4. März 2016 um 19:33

    Danke für die schnelle Antwort.
    Wo muss diese Zeile hin.
    Habe es in der SciTEupser.properties probiert
    output.code.page=1000

    Leider ändert sich nichts

  • SciTE Umlaufe in Console

    • Tweaky
    • 4. März 2016 um 13:29

    Hi,
    in SciTE (3.6.0) werden über ConsoleWrite Umlaute falsch dargestellt.
    Kann man dies ändern?

    Bilder

    • SciTE.jpg
      • 109,92 kB
      • 483 × 193
  • SciTE - ersetzen

    • Tweaky
    • 7. Februar 2016 um 15:44

    Hi,
    ich verwende SciTE4AutoIt3.exe.
    Wenn ich mit ersetzen eine Variable ersetze, springt der Cursor automatisch an die untererste gefundene Variable.
    Kann man dies abschalten?

  • Laufzeit Dienststatusabfrage

    • Tweaky
    • 8. Januar 2016 um 19:58

    Bei mir ist die Funktion _ServiceRunning noch schneller

  • run mit Parametern

    • Tweaky
    • 7. Januar 2016 um 20:38

    Die Variablen im Run Befehl dürfen nicht in "
    Evtl. könnte es so funktionieren.
    Kanns allerdings nicht testen

    AutoIt
    Run($TRUECRYPT & ' -t /v ' & $CONTAINER & '/l ' & $LETTER & '/p ' & $PSW & '/aeq')

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™