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
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
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
Hallo PoloShirt,
diese Änderunng sollte ebenfalls mehrere Guis verhindern:
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
$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
$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
;$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
$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
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
$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
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
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."
GUICtrlSetData($hHead, "Internet-Kontingent") ; Überschrift anzeigen
GUICtrlSetData($hText, $msg) ; denText anzeigen
; Wie zeigt man einen Countdown an?
#cs While True ; Endlosschleife
Sleep(10) ; Prozessor entlasten
WEnd
#ce
EndFunc ;==>AusgabeimFenster
;--------------------------------------------
Kann immer noch nicht testen Fehler:
--> 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
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
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
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
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
Hallo nektus,
netter Versuch wie ja bernd670 schon beim letzten mal bemerkte: https://autoit.de/index.php?page…97466#post97466
und
Zitatvon 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
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:
#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>
Opt('GUIOnEventMode', 1)
Opt('MUSTDECLAREVARS' ,1)
Global $sTitel = 'Flaggen Ver.: 0.7.0'
Global $Colourpath = @ScriptDir & '\flags'
;Global $himglstColours = _GUIImageList_Create()
[/autoit] [autoit][/autoit] [autoit]If _Singleton($sTitel, 1) = 0 Then
MsgBox(64, $sTitel, $sTitel & ' ist bereits gestartet',5)
Exit
EndIf
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
Global $hmnuitmFile, $hmnuitmListQueries, $hmnuitm2, $hmnuitmExit, $hmnuitmSave, $hmnuitmWindow, $hmnuitmRestore, $nMsg
[/autoit] [autoit][/autoit] [autoit]_Main()
Exit
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')
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
_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
LaenderEintragen()
FlaggeAusgeben("DE") ;Test fü Deutschland-Flagge
GUISetState()
While 1
Sleep(125)
WEnd
EndFunc
[/autoit] [autoit][/autoit] [autoit]Func _exitMain()
Switch @GUI_WINHANDLE
Case $hfrmMain
_SQLite_Close()
_SQLite_Shutdown()
Exit
EndSwitch
EndFunc
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
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
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
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
; 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
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
Func _EncodeUTF8(ByRef Const $vData, $fBinary =False)
; Author: Prog@ndy
If $fBinary Then Return StringToBinary($vData,4)
Return BinaryToString(StringToBinary($vData,4),1)
EndFunc
eine Tabelle aller Teilnehmer-Länder erstellen.
mfg (Auto)Bert
Hallo 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
Hallo MatthiasG.
ZitatWas 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
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
sorry für meine falsche Einschätzung aber der Name TheBigX taucht dummerweise auch auf Boter-Seiten auf,
mfg (Auto)Bert
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.
Zitatund 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
Hallo madmaxx89,
ZitatWas meinst du mit "ist normalerweise die Syntax afair."?
Abk.: so weit er (also Pee) sich erinnert
Zitatund 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
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
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
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
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
$hSQL = DB-Handle das von _SQLite_Open zurückgegeben wurde, FileExist erwartet aber eine Pfadangabe. Du könntest das ganze so so lösen,
Global $hdbPath = @ScriptDir & '\Mannschaften.db'
Global $hSQL = _SQLite_Open($hdbPath)
If Not FileExists($hSQL) Then
_sqltableerstellen()
else
;Befehle zum öffnen ohne anlegen hier einfügen
EndIf
Dies hab ich hier online erstellt, sollte dir den Lösungsansatz erleichtern,
mfg (Auto)Bert
Hallo TheBigX,
Alles anzeigenBitte, 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>
[/autoit] [autoit][/autoit] [autoit]
#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$Group1 = GUICtrlCreateGroup("Account Daten", 16, 56, 209, 113)
[/autoit] [autoit][/autoit] [autoit]
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
GUICtrlCreateGroup("", -99, -99, 1, 1)$hide = GUICtrlCreateButton("Client Verstecken", 16, 312, 99, 25, 0)
[/autoit] [autoit][/autoit] [autoit]
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$silkexe = GUICtrlCreateButton("SROPfad suchen", 16, 170, 99, 25, 0)
[/autoit] [autoit][/autoit] [autoit]
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
GUICtrlSetOnEvent ($silkexe,"srofolder")$save = GUICtrlCreateButton("save", 255, 312, 50, 25, 0)
[/autoit] [autoit][/autoit] [autoit]
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)While 1
[/autoit] [autoit][/autoit] [autoit]
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
ExitCase $ID
[/autoit] [autoit][/autoit] [autoit]
EndSwitch
WEnd
#EndRegion ##Buttons seite 3;Func OnAutoItStart()
[/autoit] [autoit][/autoit] [autoit]
;
;EndFunc#Region ##Functions
[/autoit] [autoit][/autoit] [autoit]
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)
EndFuncFunc UPDATE ()
[/autoit] [autoit][/autoit] [autoit]
$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?")
EndFuncFunc bug ()
[/autoit] [autoit][/autoit] [autoit]
$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))
EndFuncFunc load ()
[/autoit] [autoit][/autoit] [autoit]
$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)
EndFuncFunc ecsro ()
[/autoit] [autoit][/autoit] [autoit]
if $ecsro = "1" then
Winwaitactive ("[CLASS:CLIENT]")
sleep (500)
run ("autopotion.exe")
EndIf
EndFuncFunc beenden ()
[/autoit] [autoit][/autoit] [autoit]
Exit
EndFuncFunc Optionenende ()
[/autoit] [autoit][/autoit] [autoit]
GUIDelete ( "Hilfe" )
EndFuncFunc hilfe ()
[/autoit] [autoit][/autoit] [autoit]
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
EndFuncFunc hide ()
[/autoit] [autoit][/autoit] [autoit]
$handle = WinGetHandle ("[CLASS:CLIENT]")
WinSetState ($handle,"",@SW_HIDE)
EndFuncFunc show ()
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$handle = WinGetHandle ("[CLASS:CLIENT]")
WinSetState ($handle,"",@SW_SHOW)
EndFunc#EndRegion ##Functions
[/autoit]
In dem Skript kommt mir das Wort SILKROAD zuoft vor, daher BOT verdächtig,
mfg (Auto)Bert
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
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
Hallo Lotus,
hezlich willkommen im Forum
, 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