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

Beiträge von BugFix

  • AutoIt, Word und Ich...

    • BugFix
    • 6. April 2008 um 21:16

    Na dann is ja prima :) - Und wieder konnte einem armen Irren geholfen werden :rofl:

  • While schleife wird nicht abgefragt

    • BugFix
    • 6. April 2008 um 21:08

    Da hadddu Recht. :D
    Ist mir gar nicht aufgefallen. Dieses Bsp. beweist, dass es besser ist mit Option Explicit, ;) bzw. wie es in AutoIt heißt, mit Opt("MustDeclareVars", 1) zu arbeiten.

  • AutoIt, Word und Ich...

    • BugFix
    • 6. April 2008 um 21:01

    Du erzeigst ja auch jedes mal ein neues Objekt.
    Versuch mal, ob du eine Referenz auf das existierende Objekt erhalten kannst:

    [autoit]

    $Referenz_Auf_Offene_Datei = ObjGet($Worddatei_Pfad, "Word.Application")

    [/autoit]
  • Voting system\text aus programm auslesen

    • BugFix
    • 6. April 2008 um 20:38
    Zitat von hofi02

    wenn ich WinGetText benutze gibt er mir die komplette console aus, ich brauche aber nur die letzte zeile davon ...

    Na was erwartest du denn? Sollen dir die gebratenen Tauben in den Mund fliegen? :D
    Etwas mußt du schon noch selbst erledigen, Zeilen kann man an ihrem Umbruch splitten. Dafür gibt es Makros (@LF, @CRLF).
    Einfach mal etwas in der Hilfe lesen.

  • While schleife wird nicht abgefragt

    • BugFix
    • 6. April 2008 um 20:27

    Auf den ersten Blick würde ich vermuten, dass du die Schleife

    [autoit]

    For $read_line = 1 to 18

    [/autoit]

    nicht verläßt.
    Laß dir doch mal die Werte der Abbruchbedingung in die Console ausgeben, dann siehst du ja ob und warum es hängt.

  • Ordner in Laufwerk suchen...

    • BugFix
    • 5. April 2008 um 13:35

    Probier mal das:

    Spoiler anzeigen
    [autoit]

    Global $sourcePath = @ScriptDir
    Global $application = '\gepackt.exe'
    Global $SuchOrdner = 'zu suchender Ordner'
    Global $Daten = _GetFileList($StartPfad, "n",1) ; erzeugt Array mit allen Ordnernamen
    Global $ret = _ArraySearch($Daten, $SuchOrdner,1,0,0,True) ; durchsucht nach Ordner
    ;~ If $ret > 0 Then MsgBox(0, '', $Daten[$ret]) ; gibt den kpl.Pfad zurück
    If $ret > 0 Then
    FileCopy($sourcePath & $application, $Daten[$ret] & $application, 1) ; EXE in gefundenen Ordner kopieren
    Run($Daten[$ret] & $application)
    Else
    MsgBox(0, 'Fehler', 'Ordner nicht vorhanden')
    EndIf

    [/autoit]
  • Editbox auslesen und in Script einfügen

    • BugFix
    • 5. April 2008 um 13:19

    Beruhigt mich ja, dass ich das nicht verstehen muß. :rofl:
    Machbar ist, dass du in deinem Skript eine Variable für eine Codezeile bereithältst, diese Codezeile einliest und dann im Skript per Execute dieser Code ausgeführt wird.
    Aber ein Skript zur Laufzeit ergänzen kannst du knicken. Ist auch völlig sinnfrei.

    Übrigens: Wenn du meinst, dass wir nicht verstehen müssen, worum es geht, kannst du dir auch die Frage schenken. Denn ohne den Hintergrund eines Problems zu kennen, ist das wie Stochern im Nebel - es kommt nix bei raus. :P

  • Editbox auslesen und in Script einfügen

    • BugFix
    • 5. April 2008 um 11:41

    Versteh ich nicht. Du willst ein Skript ausführen und dabei neuen Code in dieses Skript hineinschreiben? ?( :wacko:

  • md5 erstellen

    • BugFix
    • 4. April 2008 um 23:44

    Das ist doch eine Funktion - was willst du da für ein Bsp?
    Du übergibst einen String und bekommst einen Hash zurück.

    [autoit]

    $MD5_Hash = md5($sMessage)

    [/autoit]
  • md5 erstellen

    • BugFix
    • 4. April 2008 um 22:42

    Guckst du: http://www.autoitscript.com/forum/index.php?showtopic=21010&hl=hash

  • Ordner in Laufwerk suchen...

    • BugFix
    • 4. April 2008 um 20:50
    Zitat von Alina


    Wie macht man es, das er in das Verzeichnis springt und nicht die Msg-Ausgabe ausführt?

    Welches Programm soll denn in dieses Verzeichnis wechseln?

  • Probleme bei befüllung einer Textarea

    • BugFix
    • 4. April 2008 um 20:34

    Guckst du hier: ;)

    Spoiler anzeigen
    [autoit]

    #include <GuiListBox.au3>
    #include <File.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Global $aFile, $aFolder, $aPath[1] = [@HomeDrive & '\'], $currPath, $sUp = '[ EBENE HÖHER ]'
    Global $Safed = '[SHOC]' ; mit diesen Attributen gesperrt für: Ausführen, Umbenennen, Löschen
    Global $Application, $RunPath
    Global $aZuordnung[2][2] = [ _
    ['ico|bmp|jpg', 'mspaint.exe '], _
    ['txt|ini|log', 'notepad.exe ']]; Leerzeichen hinter Dateinamen ist wichtig für Aufruf!
    ; Je nach Anwendung kann es notwendig sein, den kpl. Pfad anzugeben!!

    [/autoit] [autoit][/autoit] [autoit]

    $GUI = GUICreate("Simple Explorer",400,300)
    $label = GUICtrlCreateLabel('', 5, 5, 390, 53)
    $List = GUICtrlCreateList( '', 2, 65, 396, 230, BitOR($WS_HSCROLL, $WS_VSCROLL, $WS_BORDER))
    $hList = GUICtrlGetHandle($List)
    $menu = GUICtrlCreateContextMenu($List)
    $itemRun = GUICtrlCreateMenuItem('Ausführen', $menu)
    $itemShape = GUICtrlCreateMenuItem('', $menu)
    $itemCopy = GUICtrlCreateMenuItem('Kopieren', $menu)
    $itemPaste = GUICtrlCreateMenuItem('Einfügen', $menu)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $itemRen = GUICtrlCreateMenuItem('Umbenennen', $menu)
    $itemShape = GUICtrlCreateMenuItem('', $menu)
    $itemDel = GUICtrlCreateMenuItem('Löschen', $menu)
    GUISetState(@SW_SHOW)

    [/autoit] [autoit][/autoit] [autoit]

    GUIRegisterMsg($WM_COMMAND, 'WM_COMMAND')

    [/autoit] [autoit][/autoit] [autoit]

    _WriteList($aPath[0])

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $itemRun
    _RunFile()
    Case $itemCopy
    _CopyFile()
    Case $itemPaste
    _PasteFile()
    Case $itemRen
    _RenFile()
    Case $itemDel
    _DelFile()
    EndSwitch
    Wend

    [/autoit] [autoit][/autoit] [autoit]

    Func _WriteList($PATH)
    _GUICtrlListBox_ResetContent($hList) ; alte Inhalte löschen
    $aFolder = _FileListToArray($PATH, '*', 2)
    $aFile = _FileListToArray($PATH, '*', 1)
    If UBound($aPath) > 1 Then _GUICtrlListBox_AddString($hList, $sUp)
    If IsArray($aFolder) Then
    _GUICtrlListBox_AddString($hList, '--------------- ORDNER ---------------')
    For $i = 1 To UBound($aFolder) -1
    _GUICtrlListBox_AddString($hList, $aFolder[$i])
    Next
    EndIf
    If IsArray($aFile) Then
    _GUICtrlListBox_AddString($hList, '--------------- DATEIEN ---------------')
    For $i = 1 To UBound($aFile) -1
    _GUICtrlListBox_AddString($hList, $aFile[$i])
    Next
    EndIf
    GUICtrlSetData($label, $PATH)
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _ListDblClick()
    Local $str = _GUICtrlListBox_GetText($hList, _GUICtrlListBox_GetCurSel($hList))
    Local $tmpPath = ''
    If $str = $sUp Then
    ReDim $aPath[UBound($aPath)-1]
    $currPath = $aPath[UBound($aPath)-1]
    _WriteList($currPath)
    Else
    $currPath = $aPath[UBound($aPath)-1] & $str & '\' ; neuer Pfad = letzter Pfad + geklickter Pfad
    If Not StringRegExp(FileGetAttrib($currPath), 'D') Then ; ist es kein Ordner ?
    _RunFile()
    Else
    ReDim $aPath[UBound($aPath)+1]
    $aPath[UBound($aPath)-1] = $currPath ; neuen Pfad hinzufügen
    _WriteList($currPath)
    EndIf
    EndIf
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _RunFile()
    Local $str = _GUICtrlListBox_GetText($hList, _GUICtrlListBox_GetCurSel($hList))
    If $str = '' Then Return
    Local $attrib = FileGetAttrib($aPath[UBound($aPath)-1] & $str)
    If StringRegExp($attrib, $Safed) Then Return MsgBox(0, 'Geschützt!', $str & ' - Attribut: ' & $attrib)
    $RunPath = $aPath[UBound($aPath)-1] & $str
    $Application = _GetApplication($RunPath)
    If $Application = -1 Then ; keine Anwendung hinterlegt
    ShellExecuteWait($RunPath) ; mit Standardanwendung ausführen
    Else
    RunWait($Application & '"' & $RunPath & '"') ; Dateipfad muß in "" eingebettet sein!
    EndIf
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _GetApplication($PATH)
    Local $SUFFIX = StringRight($PATH, StringLen($PATH)-StringInStr($PATH, '.', 1, -1))
    For $i = 0 To UBound($aZuordnung) -1
    If StringInStr($aZuordnung[$i][0], $SUFFIX) Then Return $aZuordnung[$i][1]
    Next
    Return -1 ; keine Anwendung hinterlegt
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _CopyFile()
    Local $str = _GUICtrlListBox_GetText($hList, _GUICtrlListBox_GetCurSel($hList))
    If $str = '' Then Return
    Local $attrib = FileGetAttrib($aPath[UBound($aPath)-1] & $str)
    If StringRegExp($attrib, 'D') Then Return MsgBox(0, 'Achtung', $str & ' ist keine Datei')
    ClipPut($aPath[UBound($aPath)-1] & $str)
    GUICtrlSetState($itemPaste, $GUI_ENABLE)
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _PasteFile()
    Local $str = _GUICtrlListBox_GetText($hList, _GUICtrlListBox_GetCurSel($hList))
    If $str = '' Then Return
    Local $attrib = FileGetAttrib($aPath[UBound($aPath)-1] & $str)
    If Not StringRegExp($attrib, 'D') Then Return MsgBox(0, 'Achtung', $str & ' - ist kein Ordner')
    Local $tmp = ClipGet(), $pos = StringInStr($tmp, '\', -1)
    Local $file = StringRight($tmp, StringLen($tmp)-$pos)
    If FileExists($aPath[UBound($aPath)-1] & $str & '\' & $file) Then $file = 'Kopie von ' & $file
    FileCopy($tmp, $aPath[UBound($aPath)-1] & $str & '\' & $file)
    _WriteList($aPath[UBound($aPath)-1])
    GUICtrlSetState($itemPaste, $GUI_DISABLE)
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _RenFile()
    Local $str = _GUICtrlListBox_GetText($hList, _GUICtrlListBox_GetCurSel($hList))
    If $str = '' Then Return
    Local $attrib = FileGetAttrib($aPath[UBound($aPath)-1] & $str)
    If StringRegExp($attrib, $Safed) Then Return MsgBox(0, 'Geschützt!', $str & ' - Attribut: ' & $attrib)
    Local $tmp = InputBox('Umbenennen', 'Neuer Name:' & @LF & @LF & $aPath[UBound($aPath)-1], $str)
    If $tmp <> '' Then FileMove($aPath[UBound($aPath)-1] & $str, $aPath[UBound($aPath)-1] & $tmp)
    _WriteList($aPath[UBound($aPath)-1])
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _DelFile()
    Local $str = _GUICtrlListBox_GetText($hList, _GUICtrlListBox_GetCurSel($hList))
    If $str = '' Then Return
    Local $attrib = FileGetAttrib($aPath[UBound($aPath)-1] & $str)
    If StringRegExp($attrib, $Safed) Then Return MsgBox(0, 'Geschützt!', $str & ' - Attribut: ' & $attrib)
    FileDelete($aPath[UBound($aPath)-1] & $str)
    _WriteList($aPath[UBound($aPath)-1])
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func WM_COMMAND($hWnd, $iMsg, $iwParam, $ilParam)
    Local $hWndFrom, $iIDFrom, $iCode, $hWndListBox
    If Not IsHWnd($hList) Then $hWndListBox = GUICtrlGetHandle($hList)
    $hWndFrom = $ilParam
    $iIDFrom = BitAND($iwParam, 0xFFFF) ; Low Word
    $iCode = BitShift($iwParam, 16) ; Hi Word
    Switch $hWndFrom
    Case $hList, $hWndListBox
    Switch $iCode
    Case $LBN_DBLCLK ; Sent when the user double-clicks a string in a list box
    _ListDblClick()
    EndSwitch
    EndSwitch
    Return $GUI_RUNDEFMSG
    EndFunc ;==>WM_COMMAND

    [/autoit]
  • TaskManager sperren

    • BugFix
    • 4. April 2008 um 20:14
    Zitat von blubbstar

    Soweit ich weiss ist das Programm aber dafür da, das es den gesperrten Taskmanager wieder entsperrt ;).

    Genau das ist der Sinn. Entstanden ist es aus der Tatsache, dass ein Trojaner diesen Schlüssel angelegt hatte, um zu verhindern dass man dessen Prozeß killen kann. ;)
    Hat ihm nicht geholfen, hab ihm trotzdem den Garaus gemacht. :D
    Aber dabei kam mir der Gedanke, dass man das auch zur Skriptsicherung nutzen kann.

  • Resource DLL Problem

    • BugFix
    • 2. April 2008 um 22:46

    Werden nicht auch bei DLL die Dateien mit 0 beginnend angesprochen?

  • Inhalt einer Website auslesen (InternetExplorer7)

    • BugFix
    • 2. April 2008 um 22:04

    Genau, meinte ich :D
    Im Editor brauch ich nur sis dafür schreiben :P , aber hierdrin muß ich jeden Befehl selbst tippen, da kann man schon mal was verwurschteln :rofl:

  • Inhalt einer Website auslesen (InternetExplorer7)

    • BugFix
    • 2. April 2008 um 21:57

    Warum liest du die Source aus, nimm doch den Text.

    [autoit]

    $txt = _IEBodyReadText($oIE)
    If StringInString($txt, 'Suchbegriff') Then MsgBox(0, '', 'gefunden')

    [/autoit]
  • Bild von Hp in ner MsgBox anzeigen?

    • BugFix
    • 2. April 2008 um 11:53

    Man kann es natürlich umständlich machen :D - aber es gibt doch Funktionen, die dir die Links selektieren.

    Spoiler anzeigen
    [autoit]

    #include <IE.au3>
    $PicPath = @ScriptDir & '\Secure.gif'
    $url = 'http://www.sceneload.to/?p=Userupload'
    $oIE = _IECreate($url,0,0)
    $oLinks = _IEImgGetCollection($oIE)
    For $Link In $oLinks
    If StringInStr($Link.href, 'http://www.sceneload.to/secure/') Then
    $SecureLink = $Link.href
    ExitLoop
    EndIf
    Next
    InetGet($SecureLink, $PicPath, 1)
    _IEQuit($oIE)
    MsgBox(0, '', 'Fertig')

    [/autoit]


    Alerdings ist diese Website sehr mit Vorsicht zu genießen. Wer versteckte Links anbringt ("Ihr Browser verhindert einen schnellen Downlad. Zur Problembehebung klicken Sie bitte hier." ==> Link auf usenext), ist für mich alles andere als seriös. Ebenso Warez-Links etc.
    Ich hoffe deine Programme laufen in einer Sandbox, wenn du dich da einwählst. Denn akuter Virenbefall ist vorprogrammiert.

  • _ADDeleteObject Wie User OU herausfinden

    • BugFix
    • 2. April 2008 um 11:08

    Ich hab im Web ein Skript gefunden, dass ich mal AutoIt-fähig gemacht habe.
    Ziel des Skripts ist eine automatische Anmeldung und dafür die notwendigen Daten (u.a. die OU des Users) zu ermitteln.
    Kann es selbst nicht testen, weiß also nicht ob es wirklich funktioniert.
    Vielleicht bringt es dich weiter.

    Spoiler anzeigen
    [autoit]

    ; Create all necessary COM objects.
    ;--------------------------------------------------------------------------
    $WSHShell = ObjCreate("WScript.Shell")
    $AppShell = ObjCreate("Shell.Application")
    $WSHNetwork = ObjCreate("WScript.Network")
    $WSHfso = ObjCreate("Scripting.FileSystemObject")
    $objADSysInfo = ObjCreate("ADSystemInfo")
    $objFavoritesFolderRef = $AppShell.Namespace('FAVORITES')
    $objFavoritesFolder = $objFavoritesFolderRef.Self
    $objNetHoodFolderRef = $AppShell.Namespace('NETHOOD')
    $objNetHoodFolder = $objNetHoodFolderRef.Self
    $FavoritesDir = $objFavoritesFolder.Path
    $NetHoodDir = $objNetHoodFolder.Path

    [/autoit] [autoit][/autoit] [autoit]

    ; find the domain name and login-parameters
    ;--------------------------------------------------------------------------
    $strComputer = $WSHNetwork.ComputerName
    $objDomain = ObjGet("LDAP://rootDse")
    $strConfigNC = $objDomain.Get("configurationNamingContext")
    $SiteName = $objADSysInfo.SiteName
    $objSite = ObjGet("LDAP://CN=" & $SiteName & ",CN=Sites," & $strConfigNC)
    $SiteDesc = $objSite.Get("description")
    $DomainString = $objDomain.Get("dnsHostName")
    $WinDir = $WshShell.ExpandEnvironmentStrings("%WinDir%")
    $clientname = $WshShell.ExpandEnvironmentStrings("%clientname%")
    $UserString = $WSHNetwork.UserName
    $AdsPath = $objDomain.ADsPath($UserString)
    $adsUser = ObjGet($AdsPath)
    $adsParent = ObjGet($adsUser.Parent)
    $UserOU = $adsParent.Get("ou")
    $UserObj = ObjGet("WinNT://" & $DomainString & "/" & $UserString)
    $ADSCompPath = $objDomain.ADsPath($strComputer)
    $CompObj = ObjGet($ADSCompPath)

    [/autoit]
  • Probleme bei befüllung einer Textarea

    • BugFix
    • 2. April 2008 um 10:15
    Zitat von TKH

    Gibt es dort auch die Möglichkeit zusagen mit welchem Programm eine Datei geöffnet werden soll?


    Klar, du kannst ja die Dateiendung abfragen und in Abhängigkeit davon ein bestimmtes Programm aufrufen.
    Hinterleg dir beim Start ein 2D-Array mit dem Aufbau:
    [n][0] = Dateiendung(en)
    [n][1] = zugehöriger Programmpfad

    Hier mal ein Bsp. - kannst es ja dann einbauen.

    Spoiler anzeigen
    [autoit]

    Global $aZuordnung[2][2] = [ _
    ['ico|bmp|jpg', 'mspaint.exe '], _
    ['txt|ini|log', 'notepad.exe ']]; Leerzeichen hinter Dateinamen ist wichtig für Aufruf!

    [/autoit] [autoit][/autoit] [autoit]

    $PicPath = "C:\Dokumente und Einstellungen\Standard\Eigene Dateien\Eigene Bilder\pda.ico"
    $Application = _GetApplication($PicPath)
    If $Application = -1 Then ; keine Anwendung hinterlegt
    ShellExecuteWait($PicPath) ; mit Standardanwendung ausführen
    Else
    RunWait($Application & '"' & $PicPath & '"') ; Dateipfad muß in "" eingebettet sein!
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    Func _GetApplication($PATH)
    Local $SUFFIX = StringRight($PATH, StringLen($PATH)-StringInStr($PATH, '.', 1, -1))
    For $i = 0 To UBound($aZuordnung) -1
    If StringInStr($aZuordnung[$i][0], $SUFFIX) Then Return $aZuordnung[$i][1]
    Next
    Return -1 ; keine Anwendung hinterlegt
    EndFunc

    [/autoit]
  • Problem bei Variablenzuweisung aus Array

    • BugFix
    • 2. April 2008 um 09:12

    Dann ist die Funktion nicht erfolgreich, füge eine Fehlerauswertung ein:

    Code
    $cp = GUIGetCursorInfo() 
    If Not IsArray($cp) Then Exit MsgBox(0, '', 'Cursor-Info konnte nicht ermittelt werden)
    GUICtrlSetData ($mx,$cp[0]+3)


    Mist, die AutoIt-Code-Darstellung funzt grad nicht.

    Edit:
    Vielleicht drauf achten: "The mouse cursor position is successful only on an window created by a GUICreate. "
    Oder einfach mal versuchen, das Handle mit zu übergeben: $cp = GUIGetCursorInfo($Handle-GUI)

    Edit2:
    Verwende doch

    [autoit]

    #Include <WinAPI.au3>
    $cp = _WinAPI_GetCursorInfo()

    [/autoit]

    Damit solltest du keine Probleme haben.

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™