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

Beiträge von funkey

  • *.grb Dateien öffnen

    • funkey
    • 31. Juli 2009 um 07:43

    Welches Programm erstellt diese Dateien?

    Wenn es eine DOS-Bilddatei ist, dann: http://www.programmersheaven.com/download/4980/download.aspx

  • Wie heißen die Tastaturtasten auf Englisch?

    • funkey
    • 30. Juli 2009 um 21:26

    http://www.autoit.de/dokumentation_…ctions/Send.htm

  • 2000 Rechner Prüfen ob Online oder nicht?

    • funkey
    • 30. Juli 2009 um 21:15

    Nur mal so um die Idee von XovoxKingdom aufzugreifen:

    Spoiler anzeigen
    [autoit]

    Global $aIP1[10] = ['10.10.10.10', '10.10.10.11', '10.10.10.12', '10.10.10.13', '10.10.10.14', '10.10.10.15', '10.10.10.16', '10.10.10.17', '10.10.10.18', '10.10.10.19']
    Global $aIP2[10] = ['10.10.11.10', '10.10.11.11', '10.10.11.12', '10.10.11.13', '10.10.11.14', '10.10.11.15', '10.10.11.16', '10.10.11.17', '10.10.11.18', '10.10.11.19']

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

    If $CmdLine[0] = 0 Then
    For $i = 1 To 2
    Run(@AutoItExe & ' /AutoIt3ExecuteScript "' & @ScriptFullPath & '" ' & $i)
    Next
    Exit
    EndIf

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

    Local $aIP = Eval('aIP' & $CmdLine[1])
    For $j = 0 To UBound($aIP) - 1
    Ping($aIP[$j], 1)
    ;~ MsgBox(0,$CmdLine[1] & ' ' & $aIP[$j] , Ping($aIP[$j], 1))
    Next

    [/autoit]

    Die Auswertung musst du dann noch selber hinzufügen.

  • OCR für QWidget-Controls

    • funkey
    • 30. Juli 2009 um 19:49

    Da es Programme gibt, bei denen man mit ControlGetText keine Erfolge erzielt (hauptsächlich Programme mit QWidget-Controls die nicht kompatibel zur Windows-API sind), gibt es nur die Möglichkeit, die benötigten Daten über OCR auszulesen. Durch diesen diesen Artikel von Andy wurde ich auf die Programme djpeg und gocr aufmerksam. Es sind Komandozeilentools um aus einem Bild Text auszulesen. djpeg wandelt das jpg-Bild in ein Graustufenbild um, damit gocr besser den Text finden kann.

    _ReadControl_OCR funktioniert es mit allen Controls und nicht nur mit QWidgets
    Mit _ReadGuiArea_OCR kann ein Bereich eines Fensters ausgewählt werden.

    djpeg.exe
    gocr.exe
    Diese Dateien habe ich im Beispiel im Ordner @ScriptDir&'\App liegen.

    Funktionen mit Beispiel
    [autoit]

    #include <ScreenCapture.au3>

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

    Local $pid = Run('notepad.exe')
    WinWait('[Class:Notepad]')
    WinActivate('[Class:Notepad]')
    WinWaitActive('[Class:Notepad]')
    Send('Das wird über OCR ausgelesen!')

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

    Local $text = _ReadControl_OCR("[Class:Notepad]", "", "Edit1", 2, 2, @ScriptDir&'\App')
    If @error Then
    MsgBox(16, "Fehler", @error)
    Else
    MsgBox(64, "Ergebnis", $text)
    EndIf

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

    Local $text = _ReadGuiArea_OCR("[Class:Notepad]", "", 3, 2, 350, 18, @ScriptDir&'\App')
    If @error Then
    MsgBox(16, "Fehler", @error)
    Else
    MsgBox(64, "Ergebnis", $text)
    EndIf

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

    ProcessClose($pid)

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

    Func _ReadControl_OCR($hWnd, $sText, $hCtrl, $iBorderX = 0, $iBorderY = 0, $AppDir = @ScriptDir)
    ;funkey
    WinActivate($hWnd)
    Local $Timeout = WinWaitActive($hWnd, $sText, 1)
    If Not $Timeout Then Return SetError(1, 0, "")
    Local $WinPos = WinGetPos($hWnd, $sText)
    Local $ControlPos = ControlGetPos($hWnd, $sText, $hCtrl)
    If @error Then Return SetError(2, 0, "")
    Local $aClientSize = WinGetClientSize($hWnd, $sText)
    If @error Then Return SetError(3, 0, "")
    Local $Rahmen = ($WinPos[2] - $aClientSize[0]) / 2
    Local $iOffsetx = $WinPos[2] - $aClientSize[0] - $Rahmen
    Local $iOffsety = $WinPos[3] - $aClientSize[1] - $Rahmen
    Local $Wert = ""
    _ScreenCapture_Capture(@ScriptDir & '\TextControl.jpg', _
    $WinPos[0] + $ControlPos[0] + $iOffsetx + $iBorderX, _
    $WinPos[1] + $ControlPos[1] + $iOffsety + $iBorderY, _
    $WinPos[0] + $ControlPos[0] + $ControlPos[2] + $iOffsetx - $iBorderX, _
    $WinPos[1] + $ControlPos[1] + $ControlPos[3] + $iOffsety - $iBorderY, False)
    RunWait($AppDir & '\djpeg -greyscale -dither none TextControl.jpg TextControl.pnm', @ScriptDir, @SW_HIDE)
    Local $App = Run($AppDir & '\gocr -i TextControl.pnm', @ScriptDir, @SW_HIDE, 0x2)
    While 1
    $Wert &= StdoutRead($App)
    If @error Then ExitLoop
    WEnd
    FileDelete(@ScriptDir & '\TextControl.jpg')
    FileDelete(@ScriptDir & '\TextControl.pnm')
    Return $Wert
    EndFunc ;==>_ReadQWidget

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

    Func _ReadGuiArea_OCR($hWnd, $sText, $x1, $y1, $x2, $y2, $AppDir = @ScriptDir)
    ;funkey
    WinActivate($hWnd)
    Local $Timeout = WinWaitActive($hWnd, $sText, 1)
    If Not $Timeout Then Return SetError(1, 0, "")
    Local $WinPos = WinGetPos($hWnd, $sText)
    Local $aClientSize = WinGetClientSize($hWnd, $sText)
    If @error Then Return SetError(2, 0, "")
    Local $Rahmen = ($WinPos[2] - $aClientSize[0]) / 2
    Local $iOffsetx = $WinPos[2] - $aClientSize[0] - $Rahmen
    Local $iOffsety = $WinPos[3] - $aClientSize[1] - $Rahmen
    Local $Wert = ""
    _ScreenCapture_Capture(@ScriptDir & '\TextArea.jpg', _
    $WinPos[0] + $x1 + $iOffsetx, _
    $WinPos[1] + $y1 + $iOffsety, _
    $WinPos[0] + $x2 + $iOffsetx, _
    $WinPos[1] + $y2 + $iOffsety, False)
    RunWait($AppDir & '\djpeg -greyscale -dither none TextArea.jpg TextArea.pnm', @ScriptDir, @SW_HIDE)
    Local $App = Run($AppDir & '\gocr -i TextArea.pnm', @ScriptDir, @SW_HIDE, 0x2)
    While 1
    $Wert &= StdoutRead($App)
    If @error Then ExitLoop
    WEnd
    FileDelete(@ScriptDir & '\TextArea.jpg')
    FileDelete(@ScriptDir & '\TextArea.pnm')
    Return $Wert
    EndFunc ;==>_ReadQWidget

    [/autoit]

    Kommentare sind herzlich willkommen ;)

  • Touch-me

    • funkey
    • 30. Juli 2009 um 18:15

    Geht super Progandy :thumbup:
    Ich vergesse manchmal wie einfach das mit GUISetAccelerators geht.

  • Informationsfenster öffnen

    • funkey
    • 30. Juli 2009 um 17:33

    Schau dir das Hilfe-Beispiel zu

    [autoit]

    HotKeySet

    [/autoit]

    an.

  • Generell funktioniert es aber Zugriff auf ein Objekt - For each Objekt tut nicht ! Citrix MFCOM !

    • funkey
    • 30. Juli 2009 um 17:31

    Deine 'Übersetzung' des Codes sollte eigentlich passen!? Hab also keine Ahnung was fehlen könnte, da ich es nicht testen kann. Du kannst höchstens mit 'IsObj' überprüfen ob es noch ein Objekt ist oder nicht. Der Farmname wird ja noch zurückgegeben, oder?

  • Zum schleifen Start gehen

    • funkey
    • 30. Juli 2009 um 17:27
    [autoit]

    ContinueLoop

    [/autoit]
  • Informationsfenster öffnen

    • funkey
    • 30. Juli 2009 um 17:25

    So zum Beispiel:

    [autoit]

    $Antwort = MsgBox(36, "Starten", "Willst du das Skript starten?")
    If $Antwort <> 6 Then Exit
    MsgBox(0, "Credits", "Das ist von uns ;)", 5)

    [/autoit]
  • Informationsfenster öffnen

    • funkey
    • 30. Juli 2009 um 17:10

    Einfach den TimeOut der MsgBox verwenden oder SplashTextOn, Sleep, SplashOff.

    [autoit]

    MsgBox(0, "Credits", "Das ist von uns ;)", 5)

    [/autoit]
  • Zufalls ausgaben nach Anleitung

    • funkey
    • 30. Juli 2009 um 17:05

    Da fehlt nur ein Local, (oder Global, oder Dim)

    [autoit]

    Local $array[5] = ["Berlin", "Franktfurt", "Mailand", "Venedig", "Kapstadt"]
    ControlSetText("ProjectX", "Stadt", "Edit5", $array[Random(0, UBound($array) - 1, 1)])

    [/autoit]
  • Was mach ich falsch? (IniRead)

    • funkey
    • 30. Juli 2009 um 14:29
    [autoit]

    $Zufall = Random(1,3,1)
    $Frage = IniRead("C:\Dokumente und Einstellungen\Charlie\Desktop\Fragen\Frage" & $Zufall & ".ini", "Frage","Frage", "Nicht gefunden")

    [/autoit]
  • HotKey - Liste???

    • funkey
    • 30. Juli 2009 um 14:28

    Die Liste steht doch in der Hilfe zu Send!

  • While , IF Problem

    • funkey
    • 30. Juli 2009 um 13:54

    Das kannst du doch leicht testen einfach über und unter dem 'While 1' eine leere MsgBox ;)

  • Touch-me

    • funkey
    • 30. Juli 2009 um 13:52

    Einwandfrei! Wieder mal ein tolles Produkt von dir. Läuft bei mir fehlerfrei! :thumbup::thumbup:


    Da das Spiel mit 4 Buttons zum spielen ausgestattet ist, könnte man auch die Pfeiltasten verwenden um die Buttons auszuwählen und die Leertaste um das Spiel (neu-)zustarten.

  • While , IF Problem

    • funkey
    • 30. Juli 2009 um 13:40

    Schwieriger Fall um dir zu helfen. Wie weit kommt die Funktion? Ich kann nicht sagen wo die Funktion verlassen wird, das musst du schon selber herausfinden.

  • Datei schliessen

    • funkey
    • 30. Juli 2009 um 13:17

    Ich denke, dass du den ganzen Pfad zur Datei benötigst und nicht nur den Dateinamen.

  • While , IF Problem

    • funkey
    • 30. Juli 2009 um 13:08

    Was erhälst du da?

    Spoiler anzeigen
    [autoit]

    Local $icount = _GUICtrlListView_GetItemCount($hListViewon)
    MsgBox(0, $icount, "")

    [/autoit]

    Wenn $icount = 0 dann wird die schleife gar nicht ausgeführt!

  • Probleme mit Treeview und Event

    • funkey
    • 30. Juli 2009 um 11:03

    Hab ein paar Sachen umgestellt. Im OnEventMode ist alles einfacher ;)

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <TreeViewConstants.au3>
    #include <StaticConstants.au3>
    #include <INet.au3>
    #include <String.au3>
    #include <File.au3>
    #include <array.au3>
    #include <GUIConstants.au3>
    #include <GuiTreeView.au3>
    #include <GuiConstants.au3>

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

    Opt("GUIOnEventMode", 1)

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

    Dim $Allarray, $array2, $a, $b, $s, $t, $u, $v, $w, $x, $y, $z, $arrayPic, $showtemp, $iIndex

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

    $GUI = GUICreate("List", 1200, 750, -1, -1)
    GUISetOnEvent($GUI_EVENT_CLOSE, "_Ende")

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

    Global $TreeView = GUICtrlCreateTreeView(6, 6, 350, 700, BitOR($TVS_HASBUTTONS, $TVS_HASLINES, $TVS_LINESATROOT, $TVS_DISABLEDRAGDROP, $TVS_SHOWSELALWAYS), $WS_EX_CLIENTEDGE)
    $TreeItem2007 = GUICtrlCreateTreeViewItem("2007", $TreeView)
    $Pic = GUICtrlCreatePic("", 370, 5, 800, 650)

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

    ReadArray2007()

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

    GUICtrlSetState($TreeItem2007, BitOR($GUI_FOCUS, $GUI_EXPAND))

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

    GUISetState(@SW_SHOW, $GUI)

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

    While 1
    Sleep(100000)
    WEnd

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

    Func ReadArray2007()
    _FileReadToArray("2007.txt", $Allarray)
    For $a = 1 To $Allarray[0]
    $array2 = _StringBetween($Allarray[$a], '(', ')')
    GUICtrlCreateTreeViewItem($array2[0], $TreeItem2007)
    GUICtrlSetOnEvent(-1, '_ReadTree')
    Next
    EndFunc ;==>ReadArray2007

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

    Func _Ende()
    Exit
    EndFunc ;==>_Ende

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

    Func _ReadTree()
    Local $v = GUICtrlRead($TreeView, 1)
    GUICtrlSetImage($Pic, $v & ".jpeg")
    MsgBox(64, "", $v)
    EndFunc ;==>_ReadTree

    [/autoit]
  • Probleme mit Treeview und Event

    • funkey
    • 30. Juli 2009 um 10:36

    Wie sieht denn beispielweise diese 2007.txt aus?

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™