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

Beiträge von Prajoss

  • GDI+ Spiel: AutoIt Arena Fight.

    • Prajoss
    • 5. Mai 2011 um 08:50

    Servus,

    eine wirklich gute Idee und Umsetzung :)

    Bezüglich des Genre, so etwas gibt es schon, Stichwort "Counterstrike 2D" ;)

    Evtl. wäre es interessant wenn man die Größe des Spielfeldes ändern könnte.
    Aber ich denke mal du wirst genug Ideen und Optionen im Hinterkopf haben ;)

    PS: Würde meine Hilfe anbieten, hab in GDI+ allerdings bisher nur ein Snake gescriptet (Thread)

    Gruß

    Prajoss

  • SQL Abfrage - Objekte

    • Prajoss
    • 22. Dezember 2010 um 14:41

    Super, ich danke dir.

    Auf die Idee

    [autoit]

    $record.BOF<>0 And $record.EOF<>0

    [/autoit]


    zu probieren bin ich nich gekommen.

    Gruß

    Prajoss

  • SQL Abfrage - Objekte

    • Prajoss
    • 22. Dezember 2010 um 13:58

    Hi Leute,

    ich arbeite derzeit an einem Projekt in der Firma. Hierfür muss ich ein Skript schreiben, dass anhand des am Terminalserver
    eingeloggten Benutzers erkennt, welche "Attribute" er besitzt. Diese werden aus einer Sybase SQL Datenbank ausgelesen.

    Wichtiger Skriptteil:

    [autoit]

    $dbconnect = ObjCreate("ADODB.Connection")

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

    $dbconnect.Open("DSN=TESTODBC")

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

    $result = $dbconnect.execute("SELECT Benutzer, Datenbank FROM Testtabelle Where Benutzer='" & $User & "'")

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

    $DB = "XXX" & $result.Fields("Datenbank").Value

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

    Das Problem entsteht in der letzten Zeile. Wenn der Select Befehl etwas findet, dann ist alles in Ordnung und die Variable richtig gefüllt.
    Wenn jetzt aber nichts gefunden ist, dann bricht AutoIT mit dem Fehler ab:

    Spoiler anzeigen

    The requested action with this object has failed.:
    $DB = "XXX" & $result.Fields("Datenbank").Value Then
    $DB = "XXX" & $result.Fields("Datenbank").Value ^ ERROR

    Meine Frage deshalb:

    Wie kann ich Abfragen ob dieser "Objekt-Teil" überhaupt existiert oder wie lasse ich AutoIT diesen Fehler ignorieren?

    Ausprobiert habe ich

    [autoit]

    If $result.Fields("Benutzer").Value <> 0 Then

    [/autoit]


    Bricht mit dem genannten Fehler ab.

    Und

    [autoit]

    IsObj($result)

    [/autoit]


    ist leider immer 1.

    Gruß

    Prajoss

    PS: Hoffe ich habs verständlich genug rübergebracht :) und Hilfe habe ich schon durchsucht aber nichts passendes gefunden.

  • Texterkennung -> nicht genügend Speicher verfügbar

    • Prajoss
    • 27. August 2010 um 15:34

    Hi,

    und willkommen im Forum.

    Ich persönlich benutze gerne den Befehl

    [autoit]

    DllCall("Psapi.dll", 'int', 'EmptyWorkingSet', 'long', -1)

    [/autoit]

    um den Speicher zu leeren. Evtl. hilft es bei euren Problemen.

    Ansonsten sollte man Fehler schon selber finden können ;) Ich poste gleich nen Link

    zum Fehlersuchen-Tutorial :)

    Edit: [ offen ] Tutorial: Wie man Script-Fehler erfolgreich sucht/findet bzw. richtig debuggt

    Gruß

    Prajoss

  • GUIAutoSize?

    • Prajoss
    • 17. August 2010 um 10:19

    Hi,

    sowas würde mich sogar reizen eine Funktion dafür zu schreiben.
    Die größe eines Fensters kann man ja über die _WinApi Befehle abfragen.
    Geht das auch mit Controls?

    Edith sagt: Habs selbst rausgefunden, werd mich mal dranmachen :)

    Gruß

    Prajoss

  • DialogOpen

    • Prajoss
    • 16. August 2010 um 16:50

    Ach mist, hab ausversehen FileOpen drin gehabt in der Hilfe :-/

  • DialogOpen

    • Prajoss
    • 16. August 2010 um 16:38

    Hi,

    probiers so

    Spoiler anzeigen
    [autoit]

    Case $MenuItem5
    $fileopendialog = FileOpenDialog("Projekt öffnen", @DesktopDir, "INI-Datei (*.ini;)", 1) ; Öffnen Dialog
    If $fileopendialog <> -1 Then
    If StringRight($fileopendialog, 4) <> ".ini" Then $fileopendialog &= ".ini" ; wenn kein .ini dann .ini

    For $i = 0 To 43
    $var = IniRead($fileopendialog, $i, "Input", 1000)
    ;~ msgbox(0,"",$var)
    GUICtrlSetData(($Inputport[$i]),$var)
    Next
    Else
    MsgBox(0, "", "Abbruch durch Benutzer") ; Nach error Fragen
    EndIf

    [/autoit]
  • Laufen AutoIt Skripte mit Mausklicks auch ohne Login

    • Prajoss
    • 16. August 2010 um 16:11

    Hi,

    Das Script als Dienst laufen lassen (Systembenutzer).
    Und den Status der USV abfragen (schätze es gibt ein Diagnoseprogramm welches man abfragen kann).

    Gruß

    Prajoss

  • Steganographie....Verstecken statt Verschlüsseln

    • Prajoss
    • 16. August 2010 um 13:17

    Einfach genial ;)

    Danke

  • Im Browser prüfen ob ein Link da ist wo sich gerade die Maus befindet

    • Prajoss
    • 16. August 2010 um 10:43

    Moin,

    es ist immer von Vorteil wenn man das ganze immer so beschreibt, dass
    sich jeder vorstellen kann was du möchtest / was du für ein Problem hast.

    Gleich vorweg, Bots sind hier verboten und werden nicht unterstützt.

    Ansonsten benutz einfach den IE :P

    Gruß

    Prajoss

  • DHCP dauerhaft ausstellen, nur wie ?

    • Prajoss
    • 11. August 2010 um 08:26

    Hi,

    Ein bischen mehr Infos wären nützlich.

    Gruß

    Prajoss

  • Prozess überwachen

    • Prajoss
    • 6. August 2010 um 09:28

    Hi,

    wenn nur die Zahl sich ändert, dann kannst du den StringRexExp Befehl benutzen.

    Schau einfach mal in der Hilfe nach.

    Wie man die Prozessbeschreibung ausliest, wäre ich im moment überfragt. Evtl. gibt es eine dll die man dazu nutzen könnte.

    Du könntest noch im englischen Forum nachschauen.

    Gruß

    Prajoss

  • Mittelweg zwischen #RequireAdmin und keinem #RequireAdmin?

    • Prajoss
    • 6. August 2010 um 08:33

    Hi,

    der Fileinstall ist so schon richtig, wenn er keinen Pfad, sondern nur den Dateinamen angibt, wirds ins Scriptverzeichnis reinkopiert..

    Du solltest bei ihm seine Benutzerkontensteuerung, Datenausführungsverhinderung und seine eigentlichen Ordnerrechte für seinen User-Ordner prüfen. Alles andere wäre im moment nur Kaffeesatzlesen..

    Gruß

    Prajoss

  • GUI bei Fehler anzeigen

    • Prajoss
    • 5. August 2010 um 12:44

    Hi,

    schick mir einfach den Quellcode, ich bastels dir so wie du es brauchst.

    Auf der Arbeit ist eh grad nix los^^

    Gruß

    Prajoss

  • GUI bei Fehler anzeigen

    • Prajoss
    • 5. August 2010 um 10:55

    Hi,

    kurze Frage,

    warum machst du das über #include und so kompliziert.
    Verwende doch ganz einfach Funktionen!

    Beispiel:

    [autoit]

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $Form2 = GUICreate("Form2", 413, 305, 302, 218)
    $Button1 = GUICtrlCreateButton("Button1", 168, 136, 75, 25, 0)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    Funktion_1()
    EndSwitch
    WEnd

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

    Func Funktion_1()
    $var1 = 5
    if $var1 = 5 Then
    MsgBox(0+16, 'Fehler', 'Fehlerbeschreibung')
    ; Wenn der User auf OK drückt sollte das Menü angezeigt werden.
    EndIf
    ; ganz viel Code
    MsgBox(0+64, 'OK', 'Keine Fehler')

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

    Endfunc

    [/autoit]

    Edit: Kleiner Tippfehler, hab das Func vergessen

    Gruß

    Prajoss

  • AVI

    • Prajoss
    • 4. August 2010 um 15:53

    Hi,

    Probier folgenden Befehl

    [autoit]

    GuiCtrlCreateAvi("name.avi", V, W, X, Y, Z, $ACS_AUTOPLAY)

    [/autoit]

    Gruß

    Prajoss

  • GUI Unklarheiten

    • Prajoss
    • 3. August 2010 um 09:50

    Hi,

    die GUI selbst solltest du natürlich nicht in die Schleife packen ;)

    Schau dir doch einfach im Auto-IT Ordner unter "Examples" die ganzen Beispiele an.

    Das sollte dir genug Infos geben.

    Gruß

    Prajoss

  • Variable richtig deklarieren

    • Prajoss
    • 3. August 2010 um 08:30

    Hi,

    [autoit]


    $hKitIOW = $res[0]

    [/autoit]

    Also das erste Problem ist schon mal, dass du

    [autoit]

    $hKitIOW[0]

    [/autoit]

    schreibst was totaler Quatsch ist, da $hKitIOW kein Array ist!


    Probier folgendes:

    Spoiler anzeigen
    [autoit][/autoit] [autoit][/autoit] [autoit]

    Global $dllIOW, $hKitIOW, $iNumDevs, $iProdID, $snIOW, $buffer, $res

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

    ;Dll öffnen
    $dllIOW = DllOpen("iowkit.dll")
    If ($dllIOW = -1) Then ConsoleWrite("!> Mist, DllOpen fehlgeschlagen..." & @CRLF)

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

    ;IOWhandle übergeben
    $res = DllCall($dllIOW, "PTR", "IowKitOpenDevice")

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

    $hKitIOW = $res[0]
    ;Anzahl der angeschlossenen Bausteine abfragen
    $res = DllCall($dllIOW, "ULONG", "IowKitGetNumDevs")
    If Not IsArray($res) Then
    ; Error handling
    ConsoleWrite("!> Mist, IowKitGetNumDevs fehlgeschlagen..." & @CRLF)
    Else
    $iNumDevs = $res[0]
    EndIf

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

    ;ProductID abfragen
    $res = DllCall($dllIOW, "ULONG", "IowKitGetProductId", "PTR", $hKitIOW)
    If Not IsArray($res) Then
    ; Error handling
    ConsoleWrite("!> Mist, IowKitGetProductId fehlgeschlagen..." & @CRLF)
    Else
    $iProdID = $res[0]
    EndIf

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

    ;Seriennummer auslesen
    ; Entweder so ...
    $buffer = DLLStructCreate("WCHAR[9]")
    $res = DllCall($dllIOW, "BOOL", "IowKitGetSerialNumber", "PTR", $hKitIOW, "PTR", DllStructGetPtr ($buffer))
    If (not @error) Then
    $snIOW = $res[2] ; Hier bitte über _Arraydisplay($res) das richtige auswähle, keine Ahnung welches man hier braucht!!!
    Else
    $snIOW = "error code: "&@error
    EndIf
    ; ... oder so:

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

    ;IOWhandle freigeben
    DllCall($dllIOW, "INT", "IowKitCloseDevice", "PTR", $hKitIOW)

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

    ;Dll schließen
    DllClose($dllIOW)

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

    ;Anzeige
    ConsoleWrite("NUM " & $iNumDevs & @CRLF)
    ConsoleWrite("PID " & "0x" & Hex($iProdID) & @CRLF)
    ConsoleWrite("S/N " & $snIOW & @CRLF)
    ;~ ConsoleWrite("S/N " & DllstructGetData($buffer, 1) & @CRLF)

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

    Beachte den Kommentar in Zeile 34!

    Gruß

    Prajoss

  • Nach "enter" soll Script automatisch oder nach Zeit weiter ausgeführt werden

    • Prajoss
    • 3. August 2010 um 08:02

    Hi,

    das Problem ist, dass du keine Anweisung hast deine Schleife zu verlassen!

    Durch "While 1" sagst du, dass er die Schleife immer ausführt.

    ideas2code hat versucht dir zu sagen, dass du in diesem Fall eine If - Abfrage einbauen musst.

    Wieso packst du das ganze überhaupt in eine Schleife? Das ganze soll doch eh nur 1 mal ausgeführt werden.

    Nimm einfach "While1 und Wend" raus und probiers so, sollte gehen.

    Gruß

    Prajoss

  • Flackern beim Redraw (GDI+)

    • Prajoss
    • 15. Juli 2010 um 09:02

    Moin,

    schau dir doch einfach mal das hier an

    SuperMario Gameplay und Download


    Gruß

    Prajoss

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™