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

Beiträge von autoBert

  • Brauch hilfe mit AutoIt

    • autoBert
    • 13. Juni 2009 um 13:09

    Hallo Sirocool,

    hab mir diesen Link bisher immer verkniffen, da ich mir nicht sicher bin ob die Werbung dafür hier gern gesehen ist,

    mfg (Auto)Bert

  • Probleme beim abspeichern und wiederauslesen von GIFs in SQLite DB

    • autoBert
    • 13. Juni 2009 um 13:06

    Hallo Progandy,

    ja Ziel ist es eine Anwendung zu haben, bei der am Schluss nur noch 2 Dateien existieren a) die Exe b) die DB. In der DB sollen auch alle Einstellungen gespeichert werden.

    mfg (Auto)Bert

  • GUI aktualisieren

    • autoBert
    • 13. Juni 2009 um 12:32

    Hallo PoloShirt,

    diese Änderunng sollte ebenfalls mehrere Guis verhindern:

    Spoiler anzeigen
    [autoit]

    Func AusgabeimFenster()
    if $hGui = 0 then
    $hGui = GUICreate($sTitle, $Width, $Height, $Left, $Top, $WS_POPUPWINDOW, $WS_EX_TOOLWINDOW) ; keine Titelleiste, kein Button in der Taskleiste
    GUISetBkColor($BgColor) ; Hintergrundfarbe setzen
    GUISetOnEvent($GUI_EVENT_CLOSE, '_End') ; [ESC] beendet das Programm

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

    $hLabel = GUICtrlCreateLabel('', 0, 0, $Width, $Height, Default, $GUI_WS_EX_PARENTDRAG) ; Transparentes Label zum verschieben des Fensters

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

    $hHead = GUICtrlCreateLabel('', 10, 10, $Width - 20, 30, $SS_CENTER, $GUI_WS_EX_PARENTDRAG) ; Ein Label für die Überschrift
    GUICtrlSetFont(-1, 16, 600, 0, 'Arial') ; Größe und Zeichensatz der Überschrift setzen

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

    $hText = GUICtrlCreateEdit('', 10, 45, $Width - 20, $Height - 60, BitOR($WS_VSCROLL, $ES_AUTOVSCROLL, $ES_READONLY), $WS_EX_TRANSPARENT) ; ein scrollbares Editfeld erstellen
    GUICtrlSetBkColor(-1, $BgColor) ; Hintergrundfarbe setzen
    GUICtrlSetState(-1, $GUI_ONTOP) ; Das Editfeld nach vorne holen, damit man scrollen kann
    GUICtrlSetFont(-1, 10, 500, 0, 'Arial') ; Größe und Zeichensatz der Überschrift setzen

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

    ;$hCountdown = GUICtrlCreateEdit('', 10, 45, $Width-20, $Height-20, $WS_EX_TRANSPARENT) ; ein scrollbares Editfeld erstellenEin Label für den Countdown
    ; GUICtrlSetFont(-1, 10, 500, 0, 'Arial') ; Größe und Zeichensatz der Überschrift setzen

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

    $hContextMenu = GUICtrlCreateContextMenu($hLabel) ; Kontextmenü erstellen
    GUICtrlCreateMenuItem('Minimieren', $hContextMenu) ; Minimieren-Eintrag erstellen
    GUICtrlSetOnEvent(-1, '_Minimize') ; dem Eintrag eine Funktion zuweisen
    GUICtrlCreateMenuItem('Beenden', $hContextMenu) ; Beenden-Eintrag erstellen
    GUICtrlSetOnEvent(-1, '_End') ; dem Eintrag eine Funktion zuweisen

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

    TrayCreateItem('Manuell vom Internet trennen') ; Traymenüeintrag erstellen
    TrayItemSetOnEvent(-1, '_Netzwerktrennen') ; dem Eintrag eine Funktion zuweisen
    TrayCreateItem('Manuell Verbindung wiederherstellen') ; Traymenüeintrag erstellen
    TrayItemSetOnEvent(-1, '_Netzwerkverbinden') ; dem Eintrag eine Funktion zuweisen
    TrayCreateItem('Wiederherstellen') ; Traymenüeintrag erstellen
    TrayItemSetOnEvent(-1, '_Restore') ; dem Eintrag eine Funktion zuweisen
    TrayCreateItem('Beenden') ; Traymenüeintrag erstellen
    TrayItemSetOnEvent(-1, '_End') ; dem Eintrag eine Funktion zuweisen

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

    $hShadow = GUICreate('Shadow', $Width, $Height, $Left + 6, $Top + 6, $WS_POPUP, $WS_EX_TOOLWINDOW) ; Schattenfenster erzeugen
    GUISetBkColor($ShColor) ; Farbe des Schattens setzen
    WinSetTrans($hShadow, '', 128) ; Transparenz des Schattens einstellen

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

    GUISetState(@SW_SHOW, $hShadow) ; Schatten anzeigen
    GUISetState(@SW_SHOW, $hGui) ; GUI anzeigen
    WinSetOnTop('Shadow', '', 1) ; Schatten immer im Vordergrund
    WinSetOnTop($sTitle, '', 1) ; GUI immer im Vordergrund

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

    GUIRegisterMsg($WM_MOVE, '_ShadowMove') ; Funktion zum "Schatten verschieben" registrieren

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

    EndIf
    ;Diese Variable möchte ich über mein Programm definieren.
    ;$msg = 'In der großen Koalition sorgt der Zank um die Novelle des Gesetzes für das Bundeskriminalamt (BKA) weiter für Unmut. Vor allem Bundesinnenminister Wolfgang Schäuble ist nach wie vor erzürnt über den Widerstand auch aus SPD-regierten Ländern gegen die vom Bundestag abgesegnete Ausweitung der BKA-Befugnisse einschließlich einer Lizenz für heimliche Online-Durchsuchungen.'
    ;$msg &= '"Die Führung der Partei kann ihre Entscheidungen derzeit nicht durchsetzen", klagte der CDU-Minister dem "Focus" sein Leid. Der Koalitionspartner befinde sich in einer "akuten Krise". Eine "Handvoll Jusos" in Sachsen könne das Inkrafttreten eines jahrelang beratenen Gesetzes verzögern, schimpfte Schäuble gegen das erste Nein eines Landes gegen das Vorhaben, in dem die Sozialdemokraten mit an der Macht sind.'
    ;GUICtrlSetData($hHead, 'Streit um BKA-Gesetz') ; Überschrift anzeigen
    Global $Count, $60Count, $hShadow
    Global $msg = @HOUR & ":" & @MIN & ":" & @SEC & " Uhr"
    $msg &= @CRLF & @CRLF & "Aktuell sind: " ; Fensterinhalt definieren: Traffic und Verbleibende Minuten
    $msg &= $traffic
    $msg &= " Gbyte verbraucht."
    $msg &= @CRLF & "Nächste Überprüfung in "
    $msg &= $Minutes
    $msg &= " Minuten."

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

    GUICtrlSetData($hHead, "Internet-Kontingent") ; Überschrift anzeigen
    GUICtrlSetData($hText, $msg) ; denText anzeigen
    ; Wie zeigt man einen Countdown an?

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

    #cs While True ; Endlosschleife
    Sleep(10) ; Prozessor entlasten
    WEnd
    #ce
    EndFunc ;==>AusgabeimFenster
    ;--------------------------------------------

    [/autoit]


    Kann immer noch nicht testen Fehler:

    [autoit]

    --> IE.au3 V2.4-0 Warning from function _IETableGetCollection, $_IEStatus_NoMatch
    --> IE.au3 V2.4-0 Error from function _IETableWriteToArray, $_IEStatus_InvalidDataType
    C:\Programme\AutoIt3\Downloads\PoloShirt\VolumenGui.au3 (123) : ==> Subscript used with non-Array variable.:
    If $array[3][0] = "Gesamt " Then
    If $array^ ERROR
    ->12:23:05 AutoIT3.exe ended.rc:1

    [/autoit]

    Ich benutze Web'N'Walk Stick fürs Internet, warscheins liegt da der Grund, aber vielleicht kümmert sich ja jemand anderes darum,

    mfg (Auto)Bert

    mfg (Auto)Bert

  • Probleme beim abspeichern und wiederauslesen von GIFs in SQLite DB

    • autoBert
    • 13. Juni 2009 um 03:56

    Hallo zusammen,

    ich probiere gerade GIF-Dateien in SQLite zu speichern (nicht den Pfad sondern die Daten). Leider gehen aber entweder beim Ein- oder beim Auslesen Dateien verloren. Im Anhang ist das Skript, eine Liste der Ländercodes nach ISO 3166 und GIFs. Wäre gut wenn jemand den Bug finden könnte,

    mfg (Auto)Bert

  • schleife bis Buttonklicka usführen

    • autoBert
    • 12. Juni 2009 um 23:50

    Hallo Pinguin94,

    Delphi kostet Geld => AutoIT nicht. Und da ich selbst in Delphi programmiert habe weiss ich das es zumindest bis 6.0 (danach?) keine fertigen Funktionen beigelegt waren, die diese Art der Automation (Tastendrücke senden) unterstützt hätten,

    mfg (Auto)Bert

  • button drücken lassen

    • autoBert
    • 12. Juni 2009 um 23:38

    Hallo Nektus,

    in Zusammenhang mit diesem Thread wird dieser Beitrag bedenklich, vor allem da du am 1. Juni noch beides zusammen in diesem Thread schon mal wissen wolltest, aber bernd670 den Thread geclosed hat,

    mfg (Auto)Bert

  • zufallscode

    • autoBert
    • 12. Juni 2009 um 23:32

    Hallo nektus,

    netter Versuch wie ja bernd670 schon beim letzten mal bemerkte: https://autoit.de/index.php?page…97466#post97466
    und

    Zitat

    von Progandy:
    Hört sich nach Seriennummern-Brutforce an... da wirst du wohl kein Glück haben

    du solltest mal die Forenregeln lesen,

    Edit: @all hätte ich beinahe vergessen zu erwähnen der Thread damals wurde selbstverständlich von bernd670 geclosed ,
    @nektus obwohl du den 2. Teil deiner damaligen Frage in einem separaten Thread gestellt hast, wirst du wohl auch dieses Mal kein Glück damit haben

    mfg (Auto)Bert

  • WM 2010

    • autoBert
    • 12. Juni 2009 um 21:31

    Hallo Madmaxx89,

    wie man Grafiken in einer SQLite-DB mit AutoIt ablegt weiss ich auch noch nicht, bin mir aber sicher dass es eine Lösung gibt ich muss sie nur noch finden, Edit2: ht sich erledigt @progandy hatte passende Lösung

    Sirocool die Namen scheinen dem Ländercode zu folgen, wie die Topleveldomains gibt es irgendwo auch eine Liste für den Ländercode?
    Edit hat sich erledigt: Ländercodes nach Iso 3166

    Edit2: wenn du jetzt eine Textdaei laut der obigen Ländercodes aufbaust kannst du damit:

    Spoiler anzeigen
    [autoit]

    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_UseUpx=n
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    ; *** Start added by AutoIt3Wrapper ***
    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    ; *** End added by AutoIt3Wrapper ***
    ;AutoIt Skript
    ;ListView aus Gif-Files erstellen und anschliessend in DB eintragen
    #include <GuiListView.au3>
    #include <TreeViewConstants.au3>
    #include <SQLite.au3>
    #include <SQLite.dll.au3>
    #Include <Misc.au3>
    #Include <GuiListView.au3>

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

    Opt('GUIOnEventMode', 1)
    Opt('MUSTDECLAREVARS' ,1)

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

    Global $sTitel = 'Flaggen Ver.: 0.7.0'
    Global $Colourpath = @ScriptDir & '\flags'

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

    ;Global $himglstColours = _GUIImageList_Create()

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

    If _Singleton($sTitel, 1) = 0 Then
    MsgBox(64, $sTitel, $sTitel & ' ist bereits gestartet',5)
    Exit
    EndIf

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

    Global $sSqldb = @ScriptDir & '\Laender.db'

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

    Global $hfrmMain ;Hauptfenster Adressstammdaten wird immer sofort erzeugt
    Global $hfrmConf=0 ;Konfigurationsfenster nur bei Bedarf 1mal erzeugt
    Global $hfrmAkt ;aktuelles Fenster
    Global $lstvwLaender

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

    Global $hmnuitmFile, $hmnuitmListQueries, $hmnuitm2, $hmnuitmExit, $hmnuitmSave, $hmnuitmWindow, $hmnuitmRestore, $nMsg

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

    _Main()
    Exit

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

    Func _Main()
    Local $iLeft, $iWith, $iNr, $hLine1, $aText, $hImage
    $hfrmMain = GUICreate($sTitel, 500, 300, 220, 200) ; GuiFenster erstellen ;800, 540, -1, -1, $WS_SIZEBOX + $WS_SYSMENU +$WS_MAXIMIZEBOX +$WS_MINIMIZEBOX)
    $hfrmAkt = $hfrmMain ;zum vergleichen merken
    GUISetOnEvent($GUI_EVENT_CLOSE, '_exitMain')

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

    if FileExists($sSqldb) = 0 Then _DatenbankAnlegen()
    _SQLite_Startup ()
    If @error > 0 Then
    MsgBox(16, "SQLite Fehler", "SQLite.dll kann nicht geladen werden!")
    Exit
    EndIf
    _SQLite_Open($sSqldb)
    If @error > 0 Then
    MsgBox(16, "SQLite Fehler", "Kann Datenbank nicht öffnen")
    Exit
    EndIf
    $hmnuitmFile = GUICtrlCreateMenu("&Datei")
    $hmnuitmWindow = GUICtrlCreateMenu("&Fenster")
    ;$hmnuitmListQueries = GUICtrlCreateMenuItem("&Auswertungen", $hmnuitmFile)
    ;$hmnuitmSave = GUICtrlCreateMenuItem("&Zwischenspeicherung", $hmnuitmFile)
    ;$MenuItem2 = GUICtrlCreateMenuItem("", $hmnuitmFile)
    $hmnuitmExit = GUICtrlCreateMenuItem("Be&enden", $hmnuitmFile)
    GUICtrlSetOnEvent(-1, '_exitMain')
    $lstvwLaender = GUICtrlCreateListView("Speichern?|nID|Bzeichnung|Flagge", 10, 10, 480, 230, _
    BitOR($LVS_SHOWSELALWAYS, $LVS_REPORT), BitOR($LVS_EX_FULLROWSELECT, $LVS_EX_CHECKBOXES)) ;$LVS_SHOWSELALWAYS
    ; wichtig ist der Stil $LVS_Report und der eweiterte Stil $LVS_EX_Checkboxes
    ; erzeugt eine Listview mit den Spaltenüberschriften die zurückgegebene ID wird in der Variablen $ListView gespeichert

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

    _GUICtrlListView_SetColumnWidth($lstvwLaender, 0, 80) ; Breite für Spalte mit Index 0 auf 80 setzen
    _GUICtrlListView_SetColumnWidth($lstvwLaender, 1, 40) ; Breite für Spalte mit Index 1 auf 160 setzen
    _GUICtrlListView_SetColumnWidth($lstvwLaender, 2, 160) ; Breite für Spalte mit Index 2 auf 160 setzen

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

    LaenderEintragen()
    FlaggeAusgeben("DE") ;Test fü Deutschland-Flagge
    GUISetState()
    While 1
    Sleep(125)
    WEnd

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

    EndFunc

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

    Func _exitMain()
    Switch @GUI_WINHANDLE
    Case $hfrmMain
    _SQLite_Close()
    _SQLite_Shutdown()
    Exit
    EndSwitch
    EndFunc

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

    Func _DatenbankAnlegen()
    Local $aSql, $res
    _FileCreate($sSqldb)
    _SQLite_Startup ()
    If @error > 0 Then
    MsgBox(16, "SQLite Fehler", "SQLite.dll kann nicht geladen werden!")
    Exit
    EndIf
    _SQLite_Open($sSqldb)
    If @error > 0 Then
    MsgBox(16, "SQLite Fehler", "Kann Datenbank nicht öffnen")
    Exit
    EndIf
    $aSql = "CREATE TABLE [Laender] ([lID] VARCHAR(3) UNIQUE NOT NULL,[lName] vARCHAR(50) NULL,[lColours] BLOB NULL)"
    $res = _SQLite_Exec (-1, $aSql)
    _SQLite_Close()
    _SQLite_Shutdown()
    EndFunc

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

    Func FlaggeAusgeben($slID)
    Local $aSql, $res ,$rawFile, $aRow, $hQuery
    ;$aSql = "Select * from Laender WHERE lID=" & _SQLite_Escape($slID) & " LIMIT 1" ;SQL Abfrage für das gewünschte Land
    $aSql = 'Select * from Laender order by lID' ; SQL Abfage zeigt alle Länder der Tabelle
    If $SqlITE_OK <> _SQlite_Query (-1, $aSql, $hQuery) Then _ ; erstellt das Query mit den Daten
    MsgBox(0,"SQLite Error","Error Code: " & _SQLite_ErrCode() & @CR & "Error Message: " & _SQLite_ErrMsg())
    while _SQLite_FetchDataBin ($hQuery, $aRow ) = $SqlITE_OK ; gibt 1D-Array zurück mit den Daten einer Zeile aus Query
    ;If $aRow[2]="" Then ContinueLoop
    $rawFile = FileOpen(_DecodeUTF8($aRow[0]) & ".gif",18)
    ;ConsoleWrite(_DecodeUTF8($aRow[0]) & " " & _DecodeUTF8($aRow[1]) & @CRLF)
    FileWrite($rawFile,$aRow[2])
    FileClose($rawFile)
    WEnd
    EndFunc

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

    Func LaenderEintragen()
    Local $aSql = "", $res, $rawFile, $_preData, $_postData
    Local $i, $j, $aName, $sData = "", $pic
    Local $aFile = StringSplit(StringReplace(FileRead("LändercodeTabelle_ISO_3166.txt"),@CRLF,"|"),"|") ;0 basierend aber es steht die Anzahl darin
    If Not IsArray($aFile) Then Return
    ;_ArrayDisplay($aFile)
    ;hier werden die ListViewItems erzeugt mit das "|" ist das Trennzeichen zwischen den Spalten
    _GUICtrlListView_BeginUpdate($lstvwLaender)
    For $i = 1 To $aFile[0] -1
    $aName = StringSplit($aFile[$i],";",2) ;Dateinamen teilen Trennzeichen ist Punkt 2=Array = 0-basierend

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

    if FileExists($Colourpath & "\" & $aName[1] & ".gif") then
    $rawFile = FileOpen($Colourpath & "\" & $aName[1] & ".gif",16)
    $sData = FileRead($rawFile,FileGetSize($Colourpath & "\" & $aName[1] & ".gif"))
    FileClose($rawFile)
    Else
    $sData = ""
    EndIf
    GUICtrlCreateListViewItem(" |" & $aName[1] & "|" & $aName[0] & "|" & $sData, $lstvwLaender)
    Select
    Case $sData = ""
    $aSql &= "INSERT INTO Laender (lID,lName) VALUES ('" & $aName[1] & "','" & $aName[0]& "');" & @CRLF
    Case Else
    $aSql &= "INSERT INTO Laender (lID,lName,lColours) VALUES ('" & $aName[1] & "','" & $aName[0]& "', X'" & Hex($sData) & "');" & @CRLF
    $j = $j + 1
    EndSelect
    ;SQL-Aktionen sammeln
    If StringLen($aSQL) > 100000 Then
    ; sonst wird zu viel Speicher verbraucht oder so, auf jeden Fall läuft es nicht.
    ;$res = _SQLite_Exec (-1, $aSql); SQL auf einmal ausführen
    $aSQL = ""
    EndIf
    Next
    ;$res = _SQLite_Exec (-1, $aSql); SQL auf einmal ausführen
    _GUICtrlListView_EndUpdate($lstvwLaender)
    MsgBox(0,"Anzahl",$j)
    EndFunc

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

    ; Author(s): piccaso (Fida Florian)
    ; Modified: Prog@ndy
    Func _SQLite_FetchDataBin($hQuery, ByRef $aRow)
    If $g_hDll_SQLite = 0 Then Return SetError(1, 0, $SQLITE_MISUSE)
    If Not __SQLite_hChk($hQuery, $SQLITE_QUERYHANDLE) = $SQLITE_OK Then Return SetError(7, 0, $SQLITE_MISUSE)
    If Not IsArray($aRow) Then
    Dim $aRow[1]
    EndIf
    Local $iRval_Step, $iRval_ColCnt, $sRval, $i, $iRval_coltype
    Local $iColBytes, $vResult, $vResultStruct
    Local $SQLITE_NULL = 5
    $iRval_Step = DllCall($g_hDll_SQLite, "int:cdecl", "sqlite3_step", "ptr", $hQuery)
    If @error > 0 Then
    Return SetError(1, 0, $SQLITE_MISUSE)
    ElseIf $iRval_Step[0] = $SQLITE_ROW Then
    $iRval_ColCnt = DllCall($g_hDll_SQLite, "int:cdecl", "sqlite3_data_count", "ptr", $hQuery)
    If @error > 0 Then
    Return SetError(2, 0, $SQLITE_MISUSE)
    EndIf
    If $iRval_ColCnt[0] > 0 Then
    ReDim $aRow[$iRval_ColCnt[0]]
    For $i = 0 To $iRval_ColCnt[0] - 1
    $iColBytes = DllCall($g_hDll_SQLite, "int:cdecl", "sqlite3_column_bytes", "ptr", $hQuery, "int", $i)
    If @error > 0 Then Return SetError(5, 0, $SQLITE_MISUSE)
    $vResult = DllCall($g_hDll_SQLite, "ptr:cdecl", "sqlite3_column_blob", "ptr", $hQuery, "int", $i)
    If @error > 0 Then Return SetError(6, 0, $SQLITE_MISUSE)
    if $iColBytes[0]=0 Then
    $aRow[$i] = ""
    else
    $vResultStruct = DllStructCreate("byte[" & $iColBytes[0] & "]", $vResult[0])
    $aRow[$i] = DllStructGetData($vResultStruct, 1)
    Endif
    Next
    Return $SQLITE_OK
    Else
    Return SetError(-1, 0, $SQLITE_EMPTY)
    EndIf
    Else ; incl. $SQLITE_DONE
    _SQLite_QueryFinalize($hQuery)
    If $iRval_Step[0] <> $SQLITE_OK Then SetError(-1)
    Return $iRval_Step[0]
    EndIf
    EndFunc ;==>_SQLite_FetchData

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

    Func _DecodeUTF8(ByRef Const $vData)
    ; Author: Prog@ndy
    Local $sData
    If IsBinary($vData) Then Return BinaryToString($vData, 4)
    Return BinaryToString(StringToBinary($sData, 1), 4)
    EndFunc

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

    Func _EncodeUTF8(ByRef Const $vData, $fBinary =False)
    ; Author: Prog@ndy
    If $fBinary Then Return StringToBinary($vData,4)
    Return BinaryToString(StringToBinary($vData,4),1)
    EndFunc

    [/autoit]

    eine Tabelle aller Teilnehmer-Länder erstellen.


    mfg (Auto)Bert

  • schleife bis Buttonklicka usführen

    • autoBert
    • 12. Juni 2009 um 18:20

    Hallo oldy,

    Zitat von oldy

    Hallo Leute :)
    ich bin recht neu im Autoit-scripting, habe allerdings einigermaßen viel erfahrung in delphi, weshalb ich so ziehmlich weiß, was genau ich will :)
    Ich erklär mal wie das Programm ablaufen soll:
    Auf einer Form ist ein Button.
    Wenn mana uf den klickt, soll er von "Starten" in "Beenden" umbenannt werden (Caption) und eine Schleife starten, die folgendes macht:
    > Immer 5 mal hintereinander " " (Leertaste) senden im abstand von 0,4 sec.

    obwohl du genau weist was du willst, schilder doch bitte genauer welches Programm du damit automatisieren möchtest, da es elegantere Möglichkeiten gibt ein Fremprogramm zu automatisieren als über "Send". Vor allem welches Programm benötigt schon alle 0,4 sec eine Leertaste. Mir fällt in diesem Zusammenhang nur das Wort BOT ein, von daher lies die Forenregeln und erkläre dich genauer,

    mfg (Auto)bert

  • Präsentationsideen für AutoIt?

    • autoBert
    • 12. Juni 2009 um 18:03

    Hallo MatthiasG.

    Zitat

    Was heißt hier in normalen Situtationen: Außer BugFix braucht das kein Mensch

    BugFix : Das ist keineswegs böse gemeint!

    Im normalen Leben ist die 4. Dimension die Zeit und die kann manchmal auch ganz schön wichtig sein, nur falls du einen Ansatz suchst wie du 4D erklären sollst.

    mfg (Auto)Bert

  • Pfadauswahl soll in einen eingabebereich

    • autoBert
    • 12. Juni 2009 um 17:30

    Hallo TheBigX,

    nachdem ich gerade mitbekommen habe, dass bernd670 dir in deinem anderen Thread geholfen hat und ausserdem die Feststellung getroffen hat, das es sich bei deinem Start-Tool nicht um einen Bot handelt, hier die Lösung zu deinem FileSelectFolder Problem:

    [autoit]

    #Region ##Functions
    Func srofolder ()
    ;FileSelectFolder("Wähle den Silkroadordner aus:", @HomePath, 0,$SROPfad)
    $actualsropath = FileSelectFolder("Wähle den Ordner aus in dem Silkroad installiert ist:", @HomePath, 0, $SROPfad)
    If Not @error Then
    GUICtrlSetData ($SROPfad,$actualsropath & "\silkroad.exe")
    Else
    ;Fehlermedlung ausgeben
    EndIf
    EndFunc

    [/autoit]


    sorry für meine falsche Einschätzung aber der Name TheBigX taucht dummerweise auch auf Boter-Seiten auf,

    mfg (Auto)Bert

  • WM 2010

    • autoBert
    • 12. Juni 2009 um 16:10

    Hallo Madmaxx89,

    gut wenn du das bereits verwendest, dann erstelle damit die Struktur für die Datenbank und beschäftige dich mit der SQL-Syntax (Select, Insert, Update Delete etc.) vielleicht hilft ja auch dieser Link oder dieser dabei den generellen Aufbau einer DB zu verstehen.

    Zitat

    und ich hab nicht primary key gewählt sondern "[id] INTEGER KEY" das die 0 erlaubt ist, das das mit dem Index aus der Listbox übereinstimmt, hab ich mir zumindest gedacht wegen auslesen später wieder??

    Dann hast du das Problem, dass die ID aus Versehen (Programmierfehler) doppelt vergeben werden könnte. Ich würde eh eine ListView nehmen, da könntest du in einer extra Spalte (evtl. Breite 0 also nicht zu sehen) die ID ablegen, außerdem in einer weiteren die Gruppe, evtl. auch noch ein Feld in DB und zugehörige Spalte für die Flagge des entsprechenden Landes einfügen (muss aber nicht sein)

    mfg (Auto)Bert

  • WM 2010

    • autoBert
    • 12. Juni 2009 um 15:33

    Hallo madmaxx89,

    Zitat

    Was meinst du mit "ist normalerweise die Syntax afair."?

    Abk.: so weit er (also Pee) sich erinnert

    Zitat

    und wie verhindere ich das er die Datensätze so oft in DB schreibt?
    Da muss irgendwas mit der for schleife nicht stimmen!


    die Syntax stimmt, nur die Logik nicht. Bei jedem einfügen eines Landes in die Listbox, speicherst du danach alle Einträge der Listbox in die Datenbank, daher manche Länder öfter.
    Besorg dir mal diese Tool, damit hast du einen guten Einbblick was sich in deiner DB tut. Du kannst es auch dazu verwenden die DB-Struktur aufzubauen.
    Bei der DB solltest du das speichern von NULL-Werten nicht zulassen (zumindest für das Feld ID), das Feld ID sollte eindeutig sein.
    so sollte die Tabelle im Idealfall aussehen

    Code
    CREATE TABLE [Mannschaften] (
    [id] INTEGER  PRIMARY KEY AUTOINCREMENT NOT NULL,
    [team] VARCHAR[50]  NOT NULL,
    [gruppe] VARCHAR[3]  NOT NULL
    )

    mit SQLite-Admin erzeugt

    Bitte verwende in deinem Skript etwas eindeutigere Namen (dann kann man sich schneller einlesen)

    mfg (Auto)Bert

  • QUIZ

    • autoBert
    • 12. Juni 2009 um 13:02

    Hallo Gianni,

    deine Antwort zeigt mir dass du dir noch nicht einmal die Mühe gemacht hast den anderen Thread zu lesen, da z.B @ChaosKeks auch eine Lösung ohne adlib gepostet hat. Unter Hilfe verstehe ich anscheinend etwas anderes als du. Du solltest dir überlegen mit deinem Programmwunsch in das Forum Jobbörse umzuziehen,

    mfg (Auto)Bert

  • WM 2010

    • autoBert
    • 12. Juni 2009 um 12:16

    Hallo Jam00,

    würde mich wundern, wenn das Skript ohne existierende Tabelle funktioniert, da in diesem Fall die DB nicht geöffnet ist,

    mfg (Auto)Bert

  • WM 2010

    • autoBert
    • 12. Juni 2009 um 12:10

    Hallo Madmaxx89,

    Hier entsteht das Problem:

    [autoit]

    Global $hSQL = _SQLite_Open(@ScriptDir & '\Mannschaften.db')

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

    If Not FileExists($hSQL) Then
    _sqltableerstellen()
    EndIf

    [/autoit]


    $hSQL = DB-Handle das von _SQLite_Open zurückgegeben wurde, FileExist erwartet aber eine Pfadangabe. Du könntest das ganze so so lösen,

    [autoit]

    Global $hdbPath = @ScriptDir & '\Mannschaften.db'
    Global $hSQL = _SQLite_Open($hdbPath)

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

    If Not FileExists($hSQL) Then
    _sqltableerstellen()
    else
    ;Befehle zum öffnen ohne anlegen hier einfügen
    EndIf

    [/autoit]


    Dies hab ich hier online erstellt, sollte dir den Lösungsansatz erleichtern,

    mfg (Auto)Bert

  • Pfadauswahl soll in einen eingabebereich

    • autoBert
    • 12. Juni 2009 um 01:24

    Hallo TheBigX,

    Zitat von TheBigX

    Bitte, im Spoiler ist der komplette quellcode
    Ich wollte nicht das irgendwer hier wieder denkt ich würde nur "bots" coden...
    Dieses ist halt meine art des lernens (für etwas ein programm schreiben von dem ich weiss was passieren muss / sollte)

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEX.au3>
    #include <IE.au3>
    #include <WindowsConstants.au3>
    #Region ##Festgelegte Variablen
    Const $slow = 15000
    $actualsropath = "asd"
    #EndRegion ##Variablen
    #Region ##Gui
    $Form1 = GUICreate("Start-Tool", 516, 397, 552, 286)
    Opt("GuiOnEventMode",1)
    Opt("MustDeclareVars",0 )
    $PageControl1 = GUICtrlCreateTab(8, 8, 500, 336)
    GUICtrlSetResizing(-1, $GUI_DOCKWIDTH+$GUI_DOCKHEIGHT)
    GUISetOnEvent($GUI_EVENT_CLOSE, "beenden")
    #EndRegion ##Gui
    #Region ##Angaben
    $Account = GUICtrlCreateTabItem("Account")
    $ID = GUICtrlCreateInput("", 24, 72, 121, 22)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    $PW = GUICtrlCreateInput("", 24, 104, 121, 22,0x0020)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    $SROPfad = GUICtrlCreateInput($actualsropath & "silkroad.exe", 24, 136, 121, 22)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    #EndRegion ## Angaben
    #Region ##Angaben Label
    GUICtrlCreateLabel("ID", 160, 72, 13, 18)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    GUICtrlCreateLabel("PW", 160, 104, 20, 18)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    GUICtrlCreateLabel("SROPfad", 160, 136, 48, 18)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    #EndRegion ## Angaben Label
    #Region ##Buttons seite 1
    $Start = GUICtrlCreateButton("Starten", 256, 88, 99, 49, 0)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    GUICtrlSetOnEvent ($Start,"Start") ;done /buggy?
    $Bug = GUICtrlCreateButton("Bugreport", 400, 304, 99, 33, 0)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    GUICtrlSetOnEvent ($Bug,"bug") ;done

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

    $Group1 = GUICtrlCreateGroup("Account Daten", 16, 56, 209, 113)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    GUICtrlCreateGroup("", -99, -99, 1, 1)

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

    $hide = GUICtrlCreateButton("Client Verstecken", 16, 312, 99, 25, 0)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    GUICtrlSetOnEvent ($hide,"hide") ;done
    $show = GUICtrlCreateButton("Client Zeigen", 120, 312, 99, 25, 0)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    GUICtrlSetOnEvent ($hide,"show") ;done

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

    $silkexe = GUICtrlCreateButton("SROPfad suchen", 16, 170, 99, 25, 0)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    GUICtrlSetOnEvent ($silkexe,"srofolder")

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

    $save = GUICtrlCreateButton("save", 255, 312, 50, 25, 0)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    GUICtrlSetOnEvent ($save,"save") ;done
    $load = GUICtrlCreateButton("load", 305, 312, 50, 25, 0)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    GUICtrlSetOnEvent ($load,"load") ;done
    #EndRegion ##Buttons seite 1
    #Region ##Buttons seite 2
    $optionen = GUICtrlCreateTabItem("Optionen")
    $Enterdruecken = GUICtrlCreateCheckbox("Enterdrücken", 32, 72, 15, 17)
    GUICtrlCreateLabel ("Enterdrücken", 48, 74, 177,17)
    ;GUICtrlSetOnEvent ($Enterdruecken,"enter")
    $Client = GUICtrlCreateCheckbox("Client verstecken", 32, 96, 15, 17)
    GUICtrlCreateLabel ("Client verstecken",48,98,177,17)
    ;GUICtrlSetOnEvent ($Client,"client")
    $Restart = GUICtrlCreateCheckbox("", 32, 120, 15, 17)
    GUICtrlCreateLabel ("DC -> Clientrestart", 48, 122, 177,17)
    ;GUICtrlSetOnEvent ($Restart,"restart")
    $slowpc = GUICtrlCreateCheckbox("", 32, 144, 15, 17)
    GUICtrlCreateLabel ("Langsamer PC", 48, 146, 177, 17)
    IF $slowpc = (1) Then ;done
    $slowpc = $slow
    EndIf
    $ecsro = GUICtrlCreateCheckbox("", 32, 168, 15, 17)
    GUICtrlCreateLabel ("ECSRO Autopotter starten "&@LF&"(Nur wenn der Autopotter im selben Verzeichnis ist)",48,170,257,47)
    GUICtrlSetOnEvent ($ecsro,"ecsro")
    #EndRegion ##Buttons seite 2
    #Region ##Buttons seite 3
    $links = GUICtrlCreateTabItem("Links")
    $JMHP = GUICtrlCreateButton("Joymax Homepage", 192, 192, 123, 33, 0)
    GUICtrlSetOnEvent ($JMHP,"JMHP") ;done
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    $JMBAN = GUICtrlCreateButton("Joymax Banliste", 192, 136, 123, 33, 0)
    GUICtrlSetOnEvent ($JMBAN,"JMBAN") ;done
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    $FORUM = GUICtrlCreateButton("Silkroad Online Forum", 192, 80, 123, 33, 0)
    GUICtrlSetOnEvent ($FORUM,"FORUM") ;done
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    $UPDATE = GUICtrlCreateButton("Updates", 192, 248, 123, 33, 0)
    GUICtrlSetOnEvent ($UPDATE,"UPDATE") ;done
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    GUICtrlCreateTabItem("")
    $exit = GUICtrlCreateButton("Exit", 350, 360, 75, 25, 0)
    GUICtrlSetOnEvent ($exit,"beenden") ;done
    $hilfe = GUICtrlCreateButton("Hilfe", 432, 360, 75, 25, 0)
    GUICtrlSetOnEvent ($hilfe,"hilfe") ;done
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    Case $ID
    EndSwitch
    WEnd
    #EndRegion ##Buttons seite 3

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

    ;Func OnAutoItStart()
    ;
    ;EndFunc

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

    #Region ##Functions
    Func srofolder ()
    ;FileSelectFolder("Wähle den Silkroadordner aus:", @HomePath, 0,$SROPfad)
    If FileSelectFolder("Wähle den Ordner aus in dem Silkroad installiert ist:", @HomePath, 0, $SROPfad) = (0) Then GUICtrlSetData ($actualsropath,$SROPfad)
    EndFunc
    Func Start()
    GUICtrlRead($SROPfad)
    Run (GUICtrlRead($SROPfad))
    If $slowpc = (1) Then
    sleep ($slow)
    EndIf
    if $slowpc <> (1) Then
    sleep (10000)
    EndIf
    WinActivate ("[CLASS:CLIENT]")
    $handle = WinGetHandle ("[CLASS:CLIENT]")
    sleep (8000)
    Controlsend ($handle,"","Edit1","{TAB}{TAB}")
    Sleep(1000)
    ControlSend ($handle,"","Edit1",$ID)
    Sleep(1000)
    Controlsend ($handle,"","Edit2","{TAB}")
    ControlSend ($handle,"","Edit2",$PW)
    EndFunc

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

    Func UPDATE ()
    $oIE = _IECreate ("http://semtexunion.se.funpic.de/wordpress/?p=6")
    EndFunc
    Func FORUM ()
    $oIE = _IECreate ("www.silkroadonline.de")
    EndFunc
    Func JMHP ()
    $oIE = _IECreate ("www.silkroadonline.net")
    EndFunc
    Func JMBAN ()
    $oIE = _IECreate ("http://www.joymax.com/silkroad/Silkroad_Front.jmx?workURL=http://silkroadcp.joymax.com/notarget/punishment/punishment_list.asp?")
    EndFunc

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

    Func bug ()
    $oIE = _IECreate ("http://www.silkroadonline.de/index.php?form=Mail&userID=25108")
    EndFunc
    Func save ()
    IniWrite("settings.ini","char","Acc-name",GUICtrlRead($ID))
    Iniwrite("settings.ini","char","Passwort", GuiCtrlRead($PW))
    Iniwrite("settings.ini","char","Silkroadordner",GUICtrlRead($SROPfad))
    Iniwrite("settings.ini","char","Autopotter",GUICtrlRead($ecsro))
    EndFunc

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

    Func load ()
    $1=IniRead("settings.ini","char","Acc-name", GUICtrlRead($ID))
    $2=Iniread("settings.ini","char","Passwort", GuiCtrlRead($PW))
    $3=IniRead("settings.ini","char","Silkroadordner",GUICtrlRead($SROPfad))
    $4=IniRead("settings.ini","char","Autopotter", GUICtrlRead($ecsro))
    GUICtrlSetData($ID,$1)
    GuiCtrlSetData($PW,$2)
    GUICtrlSetData($SROPfad,$3)
    GUICtrlSetData($ecsro,$4)
    EndFunc

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

    Func ecsro ()
    if $ecsro = "1" then
    Winwaitactive ("[CLASS:CLIENT]")
    sleep (500)
    run ("autopotion.exe")
    EndIf
    EndFunc

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

    Func beenden ()
    Exit
    EndFunc

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

    Func Optionenende ()
    GUIDelete ( "Hilfe" )
    EndFunc

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

    Func hilfe ()
    Opt("GuiOnEventMode",1)
    $secondwindow = GUICreate ("Hilfe",400,200)
    GUISetOnEvent($GUI_EVENT_CLOSE, "Optionenende")

    GUICtrlCreateLabel ("ID: Bitte gib dort die ID deines Chars ein",20,10,250,20)
    GuiCtrlcreatelabel ("PW: Bitte gib dort das Passwort deines Chars ein",20,30,250,20)
    GUICtrlCreateLabel ("SROPfad: Bitte gib dort den Pfad zum SilkroadClienten ein "&@LF&"(mit silkroad.exe oder loader.exe)",20,50,300,50)
    GUICtrlCreateLabel ("Enterdrücken: Das Tool drückt automatisch EINMAL! die ENTER taste",20,85,250,50)
    GUICtrlCreateLabel ("Client Verstecken: Das Tool versteckt nach der eingabe der Daten den Clienten",20,120,250,50)
    GUICtrlCreateLabel ("Langsamer PC: Das Tool wartet länger auf den Clienten",20,155,250,30)
    GUISetState(@SW_Show)
    While 0
    sleep(1000)
    WEnd
    EndFunc

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

    Func hide ()
    $handle = WinGetHandle ("[CLASS:CLIENT]")
    WinSetState ($handle,"",@SW_HIDE)
    EndFunc

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

    Func show ()
    $handle = WinGetHandle ("[CLASS:CLIENT]")
    WinSetState ($handle,"",@SW_SHOW)
    EndFunc

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

    #EndRegion ##Functions

    [/autoit]
    Alles anzeigen


    In dem Skript kommt mir das Wort SILKROAD zuoft vor, daher BOT verdächtig,

    mfg (Auto)Bert

  • QUIZ

    • autoBert
    • 12. Juni 2009 um 00:58

    Hallo Gianni,

    du willst also in dem Skript das @ Xenobiologist für @racemike511 geschrieben hat einen Counter einbauen. Soll dieser die insgesamte Zeit beschränken oder die Zeit für jede einzelne Frage. Na ja, eigentlich egal schau dir mal dieses an: https://autoit.de/index.php?page…98505#post98505 (Original war von BugFix ),

    mfg (Auto)Bert

  • Pfadauswahl soll in einen eingabebereich

    • autoBert
    • 12. Juni 2009 um 00:11

    Hallo TheBigX,

    poste doch bitte das komplette Skript, es soll Leute geben die keine Puzzlespiele mögen, oder bist du zu bequem es aus deinem Sikroad-Starter BOT herauszuschneiden,

    mfg (Auto)Bert

  • Raul (Lotus)

    • autoBert
    • 11. Juni 2009 um 23:01

    Hallo Lotus,

    hezlich willkommen im Forum :thumbup: , wir hatten ja bereits das Vergnügen in
    [ gelöst ] Auf einer Website automatisch ein logen. In welchem Teil B oder W (ist eigentlich egal), aber das würde evtl. die Frage (Feststellung?) von L3viathan2142 beantworten, der auch nicht aus Hannover kommt,

    mfg (Auto)Bert

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™