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

Beiträge von MadCatz

  • Programm Sicherheit/ Programm schließen verhindern

    • MadCatz
    • 5. September 2014 um 14:27

    Hey, danke für die Antworten :)


    Das mit #NoTrayIcon kannt ich noch nicht :D

    philipp

    Versteh leider nicht genau wie das gehen sollte

    James

    Das ist ein Tool bei dem der System Admin der einzige sein soll, der das Tool wieder entsperren kann bzw. der einzige sein darf, der das Tool beenden darf ist mir das ziemlich egal, was die User davon halten. Hab nur meine Vorgaben, die ich einhalten muss.


    Hört sich an, als ob ich hier einen Virus oder ähnliches schreiben würde, da das Tool ja quasi verhindert, dass man es beenden kann selbst wenn man das System neustartet, dem ist aber nicht so.
    Falls ihr den Quewllcode haben möchtet um zu sehen, ob es so eine Schadsoftware ist, stell ich den gerne rein ;)

  • Programm Sicherheit/ Programm schließen verhindern

    • MadCatz
    • 5. September 2014 um 13:54

    Hallo Zusammen,

    ich hab ein Problem :/

    Ich schreibe momentan ein Tool, mein Problem bezieht sich nur auf einen winzigen Part bei dem bei einer bestimmten Fehlerhäufigkeit, verlangt wir ein Passwort einzugeben.

    Also 3 mal das falsche eingegeben zack geht die Inputbox auf und lässt sich auch nicht mehr schließen. Das Programm wird komplett ausgegraut, der Exit Button des Haupttol funktioniert in dem Fall auch nicht mehr.

    Jedenfalls ist es dennoch sehr einfach dies zu Umgehen:

    1. Indem das Tool über die Schnellstartleiste geschlossen wird, also Exit, dann irgend einen Button der InputBox klicken und schon ist das Programm zu.

    oder

    2. Einfach über den Taskmanager schließen.


    Gibt es eine Möglichkeit, dass das Tool weder über Taskmanager noch über die Schnellstartleiste zu beenden ist, quasi wie ein antivirus?
    Das was ich bisher gefunden hab ist nicht zugbrauchen (Prozess verstecken, 2tes Programm laufen lassen):/

  • Automatisches Auslesen von Inputbox

    • MadCatz
    • 19. August 2014 um 15:18

    Ok Danke =)


    Allerdings versteh ich BugFix Funktion so, als dass diese String Eingabe bei 7 Zeichen in den Zwischenspeicher lädt und dann das Inputfeld ausgraut.


    Wie hilft mir das bei meinem Problem ?(

  • Automatisches Auslesen von Inputbox

    • MadCatz
    • 19. August 2014 um 14:45

    das klingt erstmal plausibel allerdings gibt es die Funktion GUICtrlGetData nicht.

    Meinst du vielliecht GUICtrlRead?


    Und was bedeutet NOT $bSended?

  • Automatisches Auslesen von Inputbox

    • MadCatz
    • 19. August 2014 um 14:08

    OK ich muss doch nochmal stören:

    Ich hab folgendes gecoded:

    [autoit]


    While 1
    While 2
    $sStickbox = GUICtrlRead($StickBox)
    $SticknummerS = GUICtrlRead($Sticknummer)

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

    If StringLen($SticknummerS) = 7 Then
    ;~ Sleep(500)
    $Send = GUICtrlSendMsg($OK,$BM_Click,0,0)
    MsgBox(0,"",$Send)
    If $Send = 0 then MsgBox(0,0,"")
    ExitLoop
    ElseIf StringLen($SticknummerS) < 7 Then
    ExitLoop
    EndIf
    WEnd

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

    $nMsg = GUIGetMsg()
    Switch $nMsg
    ;~ Case StringLen($SticknummerS) = 7
    ;~ $Send = GUICtrlSendMsg($OK,$BM_Click,0,0)
    Case $GUI_EVENT_CLOSE
    Exit

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

    Case $OK
    $sStick = String(GUICtrlRead($Sticknummer))
    ;~ MsgBox(0,"Stick",$iStick)
    $sBox = String(GUICtrlRead($StickBox))
    ;~ MsgBox(0,"Box",$iBox)
    ;~ $iName = String(GUICtrlRead($Techniker2))
    ;~ MsgBox(0,"Name",$iName)
    ;~ MsgBox(0,"Alles OK", "Alles OK")
    ;~ GUICtrlSetData($Sticknummer,"")
    $query = "SELECT * FROM "&$tabellenname&" WHERE Stick = '"&$sStick&"' and Box = '"&$sBox&"'"
    $strData = String(_ReadOneFld($query, $datenbankpfad, $Spalte))
    ;~ MsgBox(0,"Read",$strData&$Spalte)
    If $strData = True Then
    MsgBox(0,"","ID Gefunden",1)
    ;~ ---------------------UPDATE---------------------
    ;~ SplashTextOn("","")
    ;~ $adoCon = ObjCreate("ADODB.Connection")
    ;~ $adoCon.Open("Provider=Microsoft.ACE.OLEDB.12.0; Data Source="&$datenbankpfad&";")
    ;~ $adoRs = ObjCreate("ADODB.Recordset")
    ;~ $update = "UPDATE "&$tabellenname&" SET Benutzer = '"&$iName&"' WHERE Stick = '"&$iStick&"' AND Box = '"&$iBox&"'"
    ;~ $adoRs.CursorType = 1
    ;~ $adoRs.LockType = 3
    ;~ $adoRs.Open($update,$adoCon)
    ;~ $adoCon.Execute($update)
    ;~ MsgBox(0,"", "Update",1)
    ;~ MsgBox(0,"Update",$update)
    ;~ $adoCon.Close
    ;~ SplashOff()
    ElseIf $strData = False Then
    SplashTextOn("Fehler","Nicht Gefunden", 270,50)
    Sleep(300)
    GUICtrlSetData($Sticknummer,"")
    GUICtrlSetState($Sticknummer,$GUI_FOCUS)
    SplashOff()
    EndIf

    [/autoit]

    Das auskommentierte ist wichtig, ist aber zu Testzwecken bei mir auskommentiert.


    Problem ist das ich bei

    [autoit]

    GUICtrlSendMsg($OK, &BM_Click,0,0)

    [/autoit]

    eine "0" also Failure erhalte, obwohl, der OK Button betätigt wird und alles enthaltene ausgeführt wird. Allerdings in doppelter Ausführung ?( Trotz ExitLoop

  • Automatisches Auslesen von Inputbox

    • MadCatz
    • 19. August 2014 um 11:47

    Ja ^^, das sind halt immer so Fehler, die zu spät auffallen

  • Automatisches Auslesen von Inputbox

    • MadCatz
    • 19. August 2014 um 09:55

    Funktioniert aus irgendeinem Grund jetzt doch :)

    Ich danke euch! :)

  • Automatisches Auslesen von Inputbox

    • MadCatz
    • 19. August 2014 um 09:50

    Ich bekomm es nicht hin :(

    $sSticknummer = GUICtrlRead($Sticknummer)
    If StringLen($Sticknummer) = 7 Then MsgBox(0,"","ok")


    Das ist bestimmt 100% falsch, ich werds aber weiter versuchen

  • Automatisches Auslesen von Inputbox

    • MadCatz
    • 19. August 2014 um 09:02

    Hey Danke für deine schnelle Antwort,


    hier mal der ganze relevante Quellcode:

    [autoit]


    ;~ #include <Function.au3>
    #include <User_Interface.au3>
    #include <Date.au3>

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

    ;~ --Voreinstellungen--------------------------------------------------------------------------------------------------------------------------------------------------------
    ;~ GUICtrlSetState ($Rueckgabe,$GUI_Disable)
    ;~ GUICtrlSetState ($Ausleihen,$GUI_Disable)
    GUICtrlSetState ($Techniker,$GUI_FOCUS)
    DirCreate(@ScriptDir&"\Daten")
    $Date = Date()
    $Pfad_Techniker = @ScriptDir&"\Daten\Techniker.ini"
    $datenbankpfad = @ScriptDir&"\USB_Stick_Datenbank.accdb"
    $Ausgeliehen_Stick = @ScriptDir&"\Daten\Temp\Ausgeliehene_Sticks.ini"
    $Ausgeliehen_Datum_Name_Stick_Box = @ScriptDir&"\Daten\Lend_Date"&$Date&".ini"
    $Rueckgabe_Stick = @ScriptDir&"\Daten\Rueckgabe_Sticks.ini"
    $Rueckgabe_Datum_Name_Stick_Box = @ScriptDir&"\Daten\Return_Date"&$Date&".ini"
    @WorkingDir
    $Overview = @ScriptDir&"\Daten\Temp\Overview.ini"
    $tabellenname = "Stickuebersicht"
    $Spalte = "ID"
    $Spalte1 = "Box"
    $Spalte2 = "Stick"
    $Spalte3 = "User"
    $time = 0

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

    ;~ ###############################Voreinstellungen########################################

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

    ComboBox_fill($Pfad_Techniker,"Techniker",$Techniker,"neuen Techniker")

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

    ;~ #######################################################################################
    While 1

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

    ;~ ###############################Programm################################################
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    ;~ --Techniker hinzufügen---------------------------------------------------------------------------------------------------------------------------------------------------
    Case $Techniker_Add
    Passwort("AdminTC",$Konsole_Techniker_Add)
    Case $End_Add
    Cancel($Konsole_Techniker_Add)
    Case $Add_Button
    Add($Neuer_Techniker_Add,$Kennwort_Input,$Kennwort_Input2,$Pfad_Techniker,"Techniker",$Techniker,"neuen Techniker")

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

    ;~ --Techniker entfernen----------------------------------------------------------------------------------------------------------------------------------------------------
    Case $Techniker_Delete
    $ArrayDelete = IniReadSection(@ScriptDir&"\Daten\Techniker.ini","Techniker")
    If @error = 0 Then
    Passwort("AdminTC",$Konsole_Techniker_Delete)
    Techniker_ListView($ListView_Delete,$Pfad_Techniker,"Techniker")
    Elseif @error = 1 Then
    MsgBox(0+64,"Fehler","Vorgang kann nicht ausgeführt werden.",2)
    EndIf
    Case $Cancel_Delete
    Cancel($Konsole_Techniker_Delete)
    Case $Delete_Techniker
    $ArrayDelete = IniReadSection(@ScriptDir&"\Daten\Techniker.ini","Techniker")
    Techniker_Delete($ListView_Delete,$Pfad_Techniker,"Techniker",$Pfad_Techniker)
    _GUICtrlComboBox_ResetContent($Techniker)
    If FileExists($Pfad_Techniker) Then
    Global $Array = IniReadSection($Pfad_Techniker,"Techniker")
    If Not @error Then
    _GUICtrlComboBox_ResetContent($Techniker)
    $LastIndex = $Array[0][0]
    For $i = 1 To $LastIndex Step 1
    _GUICtrlComboBox_AddString($Techniker, $Array[$i][0])
    Next
    IniReadSection($Pfad_Techniker,"Techniker")
    Else
    Sleep(500)
    GUISetState(@SW_Hide, $Konsole_Techniker_Delete)
    EndIf
    EndIf
    ;~ --Return---------------------------------------------------------------------------------------------------------------------------
    Case $Return
    ComboBox_fill($Pfad_Techniker,"Techniker",$Techniker,"neuen Techniker")
    GUICtrlSetState($Techniker,$GUI_Enable)
    GUICtrlSetState($Kennwort,$GUI_Enable)
    GUICtrlSetState($StickBox,$GUI_Enable)
    GUICtrlSetState($Sticknummer,$GUI_Disable)
    GUICtrlSetState($Ausleihen,$GUI_Enable)
    GUICtrlSetState($Rueckgabe,$GUI_Enable)
    GUICtrlSetState($OK,$GUI_Disable)
    GUICtrlSetData($Kennwort,"")
    GUICtrlSetData($Sticknummer,"")
    GUICtrlSetData($StickBox,"")
    GUICtrlSetState($Techniker,$GUI_FOCUS)

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

    ;~ --Authentifizierung-----------------------------------------------------------------------------------------------------------------------------------------------------
    Case $Ausleihen
    $sTechniker = GUICtrlRead($Techniker)
    $sKennwort = GUICtrlRead($Kennwort)
    $sStickBox = GUICtrlRead($StickBox)
    ;~ $sSticknummer = GUICtrlRead($Sticknummer)

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

    If $sKennwort = "" And $sTechniker = "" And $sStickBox = "" Then
    MsgBox(0+64,"Fehler","Zum Fortfahren Techniker auswählen, Kennwort eingeben und Stick-Box eingeben.",4)
    $Enter = 0
    ElseIf $sKennwort = "" Then
    MsgBox(0+64,"Fehler","Zum Fortfahren Kennwort eingeben.",3)
    ElseIf $sTechniker = "" Then
    MsgBox(0+64,"Fehler","Zum Fortfahren Techniker auswählen.",3)
    ElseIf $sStickBox = "" Then
    MsgBox(0+64,"Fehler", "Zum Fortfahren Stickbox eingeben.",3)
    ElseIf $sKennwort <> "" And $sTechniker <> "" And $sStickBox <> "" Then
    $Search = _ArraySearch($Array,$sTechniker)
    $Search2 = _ArraySearch($Array, $sKennwort,$Search,$Search)
    $query1 = "SELECT * FROM "&$tabellenname&" WHERE Box = '"&$sStickBox&"'"
    $strData = String(_ReadOneFld($query1, $datenbankpfad, $Spalte))
    ;~ MsgBox(0,"",$strData)
    If $strData = True Then
    If $Search = $Search2 Then
    SplashTextOn("Anmeldung","Anmeldung erfolgreich.", 230,50)
    Sleep(100)
    GUICtrlSetState($Techniker,$GUI_Disable)
    GUICtrlSetState($Kennwort,$GUI_Disable)
    GUICtrlSetState($StickBox,$GUI_Disable)
    GUICtrlSetState($Sticknummer,$GUI_Enable)
    GUICtrlSetState($Ausleihen,$GUI_Disable)
    GUICtrlSetState($Rueckgabe,$GUI_Disable)
    GUICtrlSetState($OK,$GUI_Enable)
    GUICtrlSetState($Sticknummer,$GUI_FOCUS)
    SplashOff()
    Else
    MsgBox(0+16,"Authentifizierungsfehler", "Kennwort stimmt nicht mit Techniker überein."&@CRLF&"Bitte erneut eingeben.",5)
    EndIf
    ElseIf $strData = False Then
    MsgBox(0+64,"Fehler","Diese Stickbox exestiert nicht. Bitte Eingabe überprüfen.",5)
    GUICtrlSetState($StickBox,$GUI_FOCUS)
    EndIf
    EndIf

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

    so und danach müsste das passieren, was ich vorhabe, ich weiß aber nicht, wie ich das machen soll. Wenn ich dieses oben unter das while schreibe, dann ist es ja rund um die uhr in der Ausführung

  • Automatisches Auslesen von Inputbox

    • MadCatz
    • 19. August 2014 um 08:38

    Guten Morgen =),


    ich stehe mal wieder vor einem Problem.

    Folgendes:
    Ich habe eine GUI, mit 3x Inputfeldern, 1x ComboBox und 3 Button (siehe Anhang).

    Wenn ich nun, wie im Bild, die oberen beiden Felder und unten links das Feld gefüllt habe und den Button "Ausleihen" betätige, dann wird, wie im Bild alles "ausgegraut" bis auf der Button "OK und das rechte Inputfeld.

    Meine Frage wäre jetzt, wie ich es schaffe, dass wenn das rechte Inputfeld 7 zeichen enthält (auf keinen Fall mehr oder weniger) automatisch der Button "Ok" gedrückt wird und seine Funktion ausgeführt wird ?(
    Wichtig dabei ist, dass wirklich die GUI so aussehen muss, wie auf dem Bild, bevor der gewünschte Schritt entretten darf.


    Wenn Quellcode benötigt werden sollte poste ich den gerne auf Anfrage :)

    Dateien

    Unbenannt.JPG 20,63 kB – 0 Downloads
  • Access 2007 Eintrag erstellen (UPDATE)

    • MadCatz
    • 18. August 2014 um 07:19

    Danke gmmg :)

    Hab das Problem gefunden, die Datenbank ist beschädigt, muss diese neu erstellen.


    Nochmal Danke =)

  • Access 2007 Eintrag erstellen (UPDATE)

    • MadCatz
    • 15. August 2014 um 14:56

    Hey,

    Danke für deine Antwort. Den ersten Teil hab ich auch schon einmal von dir bekommen, der ist auch umgesetzt.

    Allerdings möchte ich eine .accdb updaten.
    Also das Auslesen funktioniert einwandfrei, da hattest du mir auch im April, meine ich, sogar sehr gut bei geholfen :)

    Hier mal Ausschnitte des Quellcode, die dafür wichtig sind:

    [autoit]

    ;~ --Voreinstellungen--------------------------------------------------------------------------------------------------------------------------------------------------------
    GUICtrlSetState ($Rueckgabe,$GUI_Disable)
    GUICtrlSetState ($Ausleihen,$GUI_Disable)
    GUICtrlSetState ($Techniker,$GUI_FOCUS)
    DirCreate(@ScriptDir&"\Daten")
    DirCreate(@ScriptDir&"\Daten\Lend_Date")
    DirCreate(@ScriptDir&"\Daten\Return_Date")
    DirCreate(@ScriptDir&"\Daten\Temp")
    $Date = Date()
    $Pfad_Techniker = @ScriptDir&"\Daten\Techniker.ini"
    $datenbankpfad = @ScriptDir&"\USB_Stick_Anlage.accdb"
    $Ausgeliehen_Stick = @ScriptDir&"\Daten\Temp\Ausgeliehene_Sticks.ini"
    $Ausgeliehen_Datum_Name_Stick_Box = @ScriptDir&"\Daten\Lend_Date"&$Date&".ini"
    $Rueckgabe_Stick = @ScriptDir&"\Daten\Rueckgabe_Sticks.ini"
    $Rueckgabe_Datum_Name_Stick_Box = @ScriptDir&"\Daten\Return_Date"&$Date&".ini"
    @WorkingDir
    $Overview = @ScriptDir&"\Daten\Temp\Overview.ini"
    $tabellenname = "Stickübersicht"
    $Spalte = "ID"
    $Spalte1 = "Box"
    $Spalte2 = "Stick"
    $Spalte3 = "User"
    $time = 0

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

    Case $Ausleihen2
    $iStick = String(GUICtrlRead($Sticknummer2))
    MsgBox(0,"Stick",$iStick)
    $iBox = String(GUICtrlRead($StickBox2))
    MsgBox(0,"Box",$iBox)
    $iName = GUICtrlRead($Techniker2)
    MsgBox(0,"Name",$iName)
    If $iStick = "" And $iBox = "" Then
    MsgBox(0+64,"","Bitte die Sticknummer und StickBox angeben.",4)
    ElseIf $iBox = "" Then
    MsgBox(0+64,"","Bitte die StickBox angegeben.",3)
    ElseIf $iStick = "" Then
    MsgBox(0+64,"","Bitte die Sticknummer angeben.",3)
    EndIf
    MsgBox(0,"","Kein Fehler aufgetreten, alle Felder ausgefüllt.")
    If $iBox <> "" and $iStick <> ""Then
    $query = "SELECT * FROM "&$tabellenname&" WHERE Stick = '"&$iStick&"' and Box = '"&$iBox&"'"
    $strData = String(_ReadOneFld($query, $datenbankpfad, $Spalte))
    MsgBox(0,"Read",$strData&$Spalte)
    If $strData = True Then
    ;~ SplashTextOn("","")
    $adoCon = ObjCreate("ADODB.Connection")
    $adoCon.Open("Provider=Microsoft.ACE.OLEDB.12.0; Data Source="&$datenbankpfad&";")
    $adoRs = ObjCreate("ADODB.Recordset")
    $update = "UPDATE "&$tabellenname&" SET User = '"&$iName&"' WHERE Stick = '"&$iStick&"'" <-------- Das Funktioniert nicht und ich komm hier nicht weiter :(
    $adoRs.Open($update,$adoCon)
    ;~ MsgBox(0,"Update",$update)
    $adoCon.Close
    ;~ SplashOff()
    EndIf
    EndIf

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

    Funktion:
    ;~ --Access auslesen---------------------------------------------------------------------------
    Func _ReadOneFld($_access,$_datenbankpfad,$_field)
    Dim $_output
    $adoCon = ObjCreate("ADODB.Connection")
    $adoCon.Open("Provider=Microsoft.ACE.OLEDB.12.0; Data Source="&$_datenbankpfad&";")
    $adoRs = ObjCreate("ADODB.Recordset")
    $adoRs.CursorType = 1
    $adoRs.LockType = 3
    $adoRs.Open($_access,$adoCon)
    With $adoRs
    If .RecordCount Then
    While Not .EOF
    $_output = $_output&.Fields($_field).Value&@CRLF
    .MoveNext
    WEnd
    EndIf
    EndWith
    $adoCon.Close
    Return $_output
    EndFunc

    [/autoit][autoit][/autoit][autoit][/autoit]
  • Access 2007 Eintrag erstellen (UPDATE)

    • MadCatz
    • 15. August 2014 um 11:03

    Hallo Zusammen,

    ich stehe nun nach einer längeren Programmierpause vor einem kleinen Problem:

    Ich besitzte eine Datenbank, die vier Spalten enthält: ID | Stick | Box | User
    in dieser soll ein Update eingespielt werden.

    Hier zum Programm:
    Im ersten Schritt meines Programms meldet man sich an, also User + Kennwort (alles über .ini, soll auch erstmal so bleiben)
    Im zweiten Schritt gibt man dann eine Box und einen Sticknummer ein z.B.:

    Box: 201
    Stick: 002.003

    Diese Werte werden in der Datenbank gesucht, wenn die beiden Werte neben einander stehen, gibt es eine Erfolgsmeldung und wenn nicht eben eine Fehlermeldung.

    Nun möchte ich, dass in der Spalte User, der Name eingetragen wird, den man am Anfang verwendet. Dieser Name soll dann neben der Box eingetragen werden, also in etwa so:


    ID | Stick | Box | User
    3 002.003 201 MadCatz


    Ich verwende dazu folgenden Befehl:


    [autoit]

    "Update "&$tabellenname&" Set User = '"&$iName&"' Where ID = '"&$strData&"'"

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

    $strData ist die ID
    $iName ist der Username
    $tabellenname ist die Tabelle

    [/autoit]

    Wenn ich das ganze in eine MsgBox ausgeben wird auch alles richtig ausgegeben, aber der Name wird nicht in die Datenbank eingetragen =(

    Kann mir jemand helfen?

  • .ACCDB Einträge hinzufügen

    • MadCatz
    • 4. Juni 2014 um 08:44

    Hallo Zusammen,

    ich hab ein Script, dass Daten aus einer ACCDB Datenbank auslist, das klappt auch.

    Meine Frage wäre jetzt, wie ich aus einem GUI erstellten Input-Feld die Eingebenen Daten in eine neue Datenbanktabelle einschreibe, also selbe Datenbank, nur neue Tabelle.
    Und was mich auch interessieren würde, wäre, wie ich die Datenbank mit einem Passwort absichere und wenn sie benötigt wird, dass das Passwort automatisch eingegeben wird.
    Das PW kann auch im Script enthalten sein ;)

    Viele Grüße,
    MadCatz

  • Access (.accdb) Datenbank auslesen etc.

    • MadCatz
    • 19. Mai 2014 um 08:26

    Also, nochmal es Funktioniert =)

    Ich danke die gmmg, das du soviel Geduld mit mir hast =)


    Ich denke, dass es jetzt das letzte mal war, dass ich irgendetwas zu den Datenbanken fragen muss =)

  • Access (.accdb) Datenbank auslesen etc.

    • MadCatz
    • 19. Mai 2014 um 08:15

    GMMG ich hab das überlesen in deinem Post:

    [autoit]

    $query = "SELECT * FROM " & $tabellenname & " WHERE Box = '12' AND Stick = '3'"
    $strData1 = _ReadOneFld($query, $datenbankpfad,$Spalte0)

    [/autoit]

    ich werd das jetzt mal ausprobieren.

    Sorry, dass ich es nicht gesehen habe

  • Access (.accdb) Datenbank auslesen etc.

    • MadCatz
    • 19. Mai 2014 um 08:13

    Der Vierte Parameter bezog sich auf eine Fehlermeldung, die ich in deine Funktion eingefügt hatte, habe ich jetzt allerdings wieder entfernt.

    Ich dachte ich muss das hier schreiben:

    [autoit]


    $query1 = "SELECT ID FROM "&$tabellenname&" WHERE Stick = '"&$iStick&"'"
    $strData1 = Int(_ReadOneFld($query1, $datenbankpfad, $Spalte1))

    [/autoit]


    Wichtigster Teil des Tools:
    Funktion:

    [autoit]


    Func _ReadOneFld($_access,$_datenbankpfad,$_field)
    Dim $_output
    $adoCon = ObjCreate("ADODB.Connection")
    $adoCon.Open("Provider=Microsoft.ACE.OLEDB.12.0; Data Source="&$_datenbankpfad&";")
    $adoRs = ObjCreate("ADODB.Recordset")
    $adoRs.CursorType = 1
    $adoRs.LockType = 3
    $adoRs.Open($_access,$adoCon)
    With $adoRs
    If .RecordCount Then
    While Not .EOF
    $_output = $_output&.Fields($_field).Value&@CRLF
    .MoveNext
    WEnd
    EndIf
    EndWith
    $adoCon.Close
    Return $_output
    EndFunc

    [/autoit]

    Programm:

    [autoit]

    ;~ --Voreinstellungen--------------------------------------------------------------------------------------------------------------------------------------------------------
    GUICtrlSetState ($Rueckgabe,$GUI_Disable)
    GUICtrlSetState ($Ausleihen,$GUI_Disable)
    GUICtrlSetState ($Techniker,$GUI_FOCUS)
    $Pfad_Techniker = @ScriptDir&"\Daten\Techniker.ini"
    $datenbankpfad = @ScriptDir&"\Test.accdb"
    $Ausgeliehen_Stick = @ScriptDir&"\Daten\Ausgeliehene_Sticks.ini"
    $Rueckgabe_Stick = @ScriptDir&"\Daten\Rueckgabe_Sticks.ini"
    $tabellenname = "Stickübersicht"
    $Spalte1 = "Box"
    $Spalte2 = "Stick"
    $Spalte = "ID"
    ComboBox_fill($Pfad_Techniker,"Techniker",$Techniker,"neuen Techniker")

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

    ;~ --Lend Box and Sticks---------------------------------------------------------------------------------------------------------------------------------
    Case $Ausleihen2
    $iStick = int(GUICtrlRead($Sticknummer2))
    $iBox = int(GUICtrlRead($StickBox2))
    If $iStick = "" And $iBox = "" Then
    MsgBox(0+48,"","Bitte die Sticknummer und StickBox angeben.")
    ElseIf $iBox = "" Then
    MsgBox(0+48,"","Bitte die StickBox angegeben.")
    ;~ ElseIf $iStick = "" Then
    ;~ MsgBox(0+48,"","Bitte die Sticknummer angeben.")
    EndIf
    If $iBox <> "" Then
    $query1 = "SELECT Stick FROM "&$tabellenname&" WHERE Stick = '"&$iStick&"'"
    $strData1 = Int(_ReadOneFld($query1, $datenbankpfad, $Spalte2))
    $query2 = "SELECT Box FROM "&$tabellenname&" WHERE Box = '" &$iBox&"'"
    $strData2 = int(_ReadOneFld($query2, $datenbankpfad, $Spalte1))
    If $iBox = $strData2 Then
    ConsoleWrite($query1&@CRLF&$strData1)
    MsgBox(0,"",$query1&@CRLF& "Ergebnis: " &$strData1)
    ConsoleWrite($query2&@CRLF&$strData2)
    MsgBox(0,"",$query2&@CRLF& "Ergebnis: " &$strData2)
    IniWrite($Ausgeliehen_Stick,$iBox,"0","-")
    $Array1 = IniReadSection($Ausgeliehen_Stick, $iBox)
    $LastIndex1 = $Array1[0][0]
    IniWrite($Ausgeliehen_Stick,$iBox,$LastIndex1,$iStick)
    IniDelete($Ausgeliehen_Stick,$iBox,"0")
    ElseIf $iStick <> $strData1 Then
    MsgBox(0,"","Diese Sticknummer exestiert nicht.")
    ElseIf $iBox <> $strData2 Then
    MsgBox(0,"","Diese StickBox exestiert nicht.")
    EndIf
    EndIf

    [/autoit]
  • Tastenschlag und Button betätigungsproblem

    • MadCatz
    • 14. Mai 2014 um 15:08

    da bin grade dabei, dies umzusetzten

  • Tastenschlag und Button betätigungsproblem

    • MadCatz
    • 14. Mai 2014 um 14:23

    Also ich hab eine GUI, die halt wie beschriben über den OK Button die Anfrage bestätigt.

    Wenn allerdings dem User ein Fehler unterlaufen sollte und dies erst bemerkt, wenn er auf OK geklickt hat, hat er die möglichkeit einen Beenden Button zubetätigen, der den OK Button, an seiner Posotion austauscht.

  • Tastenschlag und Button betätigungsproblem

    • MadCatz
    • 14. Mai 2014 um 12:27

    Das läst sich aber nicht zufällig auf mehrere Button anwenden?

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™