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

Beiträge von Schnitzel

  • Anfänger braucht Hilfe bei GUI

    • Schnitzel
    • 16. Februar 2011 um 17:27

    So gehts:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 259, 222, 192, 124)
    $Input1 = GUICtrlCreateInput("A oder B?", 64, 64, 121, 21)
    $Button1 = GUICtrlCreateButton("Start", 88, 136, 75, 25, $WS_GROUP)
    GUISetState(@SW_SHOW)
    #endregion ### END Koda GUI section ###

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

    Const $Ax = 515
    Const $Ay = 500
    Const $Bx = 1200
    Const $By = 370

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

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

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

    Case $Input1

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

    Case $Button1

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

    If GUICtrlRead($Input1) = "A" Then
    _deinskript($Ax, $Ay)

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

    ElseIf GUICtrlRead($Input1) = "B" Then
    _deinskript($Bx, $By)
    EndIf

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

    EndSwitch
    WEnd

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

    Func _deinskript($x, $y)

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

    Sleep(1000)
    MouseMove(1200, 1200)
    Sleep(1000)
    MouseMove($x, $y)
    Sleep(1000)
    MouseMove(10, 1200)
    Sleep(1000)

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

    EndFunc ;==>_deinskript

    [/autoit]

    Und bitte für Quellcode die Spoiler verwenden ;)

  • Anfängerfrage - Program öffnet sehr viele Instanzen von Notepad

    • Schnitzel
    • 16. Februar 2011 um 14:42

    Ich kann mir zwar nich vorstellen dass es was bringt aber installier mal schnell Autoit neu.
    Wenn Fehler behoben-->gut
    Wenn Fehler nicht behoben--> kein Autoit-Problem

    Was anderes fällt mir echt nicht ein weil es ja kein Fehler im Quellcode ist.

  • drop down files in array ( array wert nach unten verschieben)

    • Schnitzel
    • 16. Februar 2011 um 13:11

    Das würde doch mit _GUICtrlListBox_SwapString leichter gehen.
    Dann brauchst du nicht alle Elemente löschen und neu erstellen ;)

  • Datum Augabe in Deutsch statt in Englisch

    • Schnitzel
    • 16. Februar 2011 um 11:53
    Zitat von misterspeed
    [autoit]

    ; Überprüfung am...
    Send("Wir überprüfen die Sicherung am " & _DateDayOfWeekDeutsch(@WDAY+1) & " nochmals.") ; nicht heute sondern morgen... ungetestet

    [/autoit]


    Da wirst du an einem Sonntag aber ein Problem bekommen
    Wochentag Nr. 8 wirste nicht finden^^

    Zitat von misterspeed

    Warum fängt in Autoit die Woche eigentlich Sonntags an?

    [autoit]

    Local Const $aDayOfWeek[8] = ["", "Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"]

    [/autoit]

    Kurz gesagt: Weils in der Funktion _DateDayOfWeek aus der Date.au3 so vorgegeben is

  • Datum Augabe in Deutsch statt in Englisch

    • Schnitzel
    • 16. Februar 2011 um 11:49

    Also ich würds so machen:

    Spoiler anzeigen
    [autoit]

    #include <Date.au3>
    Sleep(1000)

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

    ; Kein Tape eingelegt
    $sNewDate = _DateAdd('d', 0, _NowCalcDate())
    Send("Es war kein Tape eingelegt (" & $sNewDate & "). ")

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

    ; Überprüfung am...
    If @WDAY = 7 Then
    $iWeekday = 1
    Else
    $iWeekday = @WDAY + 1
    EndIf
    Send("Wir überprüfen die Sicherung am " & _DateDayOfWeekDeutsch($iWeekday) & " nochmals.")

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

    Func _DateDayOfWeekDeutsch($iDayNum, $iShort = 0)
    ; The first element (0) is intentionally empty. The valid range is 1 - 7. It is important
    ; this empty element is preserved or the days will be off by one.
    Local Const $aDayOfWeek[8] = ["", "Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"]
    Select
    Case Not StringIsInt($iDayNum) Or Not StringIsInt($iShort)
    Return SetError(1, 0, "")
    Case $iDayNum < 1 Or $iDayNum > 7
    Return SetError(1, 0, "")
    Case Else
    Select
    Case $iShort = 0
    Return $aDayOfWeek[$iDayNum]
    Case $iShort = 1
    Return StringLeft($aDayOfWeek[$iDayNum], 3)
    Case Else
    Return SetError(1, 0, "")
    EndSelect
    EndSelect
    EndFunc ;==>_DateDayOfWeekDeutsch

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

    Natürlich könnte man es auch in der Funktion anpassen, aber so finde ich es sauberer.

  • Anfängerfrage - Program öffnet sehr viele Instanzen von Notepad

    • Schnitzel
    • 16. Februar 2011 um 11:27

    Hallo und Herzlich willkommen im Forum.
    In meiner Signatur findest du einige Tutorials falls du Bedarf hast

    Zum eigentlichen Thema:
    Laut deinem Script startest du Notepad genau 2 mal.
    Und das ist genau das was es auch tut. Man kann hier leider keinen Fehler erkennen.
    Hast du das Script 1zu1 so ausgeführt wie es gepostet wurde?

  • Datum Augabe in Deutsch statt in Englisch

    • Schnitzel
    • 16. Februar 2011 um 11:22

    Hallo und Herzlich willkommen im Forum.
    In meiner Signatur findest du einige Tutorials falls du Bedarf hast

    Zum eigentlichen Thema:
    Für die _DateDayOfWeek gibt es leider nur die englischen Namen.
    Das macht aber nichts weil man es sehr leicht umschreiben kann ;)
    Habs dir mal gebastelt:

    Spoiler anzeigen
    [autoit]

    #include <Date.au3>
    Sleep(1000)

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

    ; Kein Tape eingelegt
    $sNewDate = _DateAdd('d', 1, _NowCalcDate())
    Send("Es war kein Tape eingelegt (" & $sNewDate & "). ")

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

    ; Überprüfung am...
    Send("Wir überprüfen die Sicherung am " & _DateDayOfWeekDeutsch(@WDAY) & " nochmal.")

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

    Func _DateDayOfWeekDeutsch($iDayNum, $iShort = 0)
    ; The first element (0) is intentionally empty. The valid range is 1 - 7. It is important
    ; this empty element is preserved or the days will be off by one.
    Local Const $aDayOfWeek[8] = ["", "Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"]
    Select
    Case Not StringIsInt($iDayNum) Or Not StringIsInt($iShort)
    Return SetError(1, 0, "")
    Case $iDayNum < 1 Or $iDayNum > 7
    Return SetError(1, 0, "")
    Case Else
    Select
    Case $iShort = 0
    Return $aDayOfWeek[$iDayNum]
    Case $iShort = 1
    Return StringLeft($aDayOfWeek[$iDayNum], 3)
    Case Else
    Return SetError(1, 0, "")
    EndSelect
    EndSelect
    EndFunc ;==>_DateDayOfWeekDeutsch

    [/autoit]

    Übrigens kannst du dir diese Zeile:

    [autoit]

    $iWeekday = _DateToDayOfWeek (@YEAR, @MON, @MDAY)

    [/autoit]


    komplett sparen wenn du einfach @WDAY verwendest ;)


    PS: statt Send() gibt es wahrscheinlich auch bessere Methoden. Je nachdem was du genau machen willst ;)

    Edit: spoiler gesetzt

  • Frage zur Zeit

    • Schnitzel
    • 16. Februar 2011 um 11:12

    Hallo und Herzlich willkommen im Forum.
    In meiner Signatur findest du einige Tutorials falls du Bedarf hast ;)

    Zum eigentlichen Thema:
    Ich versteh nicht ganz genau was du willst...
    Wieso soll ein Programm immer wieder geöffnet werden? Im Normalfall reicht es doch wenn es einmal offen ist oder nicht?
    Wo genau dein Problem liegt lässt sich aus der Beschreibung auch nicht herrausfinden.
    Poste doch mal dein Script dann sieht man sofort was du geschafft hast und wo noch was fehlt ;)

    Gruß
    Schnitzel

  • Anfänger braucht Hilfe bei GUI

    • Schnitzel
    • 16. Februar 2011 um 09:58

    Sieh dir am besten mal das Hilfe zu Guictrlread an ;)
    Ich denke mal nicht dass du immer eine Extra InputBox() willst oder?

  • Offizielles AutoIt Pokerstars Turnier (15.02.2011)

    • Schnitzel
    • 15. Februar 2011 um 20:23

    Good Game.
    Gratuliere dem Gewinner :thumbup:

    Schade, dass ich so abgelenkt war :(

  • Nachname, Vorname, Erster Buchstabe vom Vorname+Nachname

    • Schnitzel
    • 15. Februar 2011 um 13:28

    Hallo und herzlich Willkommen im Forum.
    Viele Dokumente, Links die helfen können findest du in meiner Signatur ;)

    Nun zum Problem:
    Ich denke mal du suchst einfach nur eine InputBox

    [autoit]

    $answer = InputBox('Eingabe erforderlich', 'Wie heißt der Benutzer den Sie anlegen möchten?')
    msgbox(0,"Eingabe war:", $answer)

    [/autoit]

    Oder hast du Probleme bei der Stringverarbeitung?
    Dazu vllt mal die Befehle in der Hilfe ansehn:

    [autoit]

    Stringleft
    Stringright
    StrininStr
    StringReplace

    [/autoit]
  • URL mit Internet Explorer statt Safari aufrufen

    • Schnitzel
    • 15. Februar 2011 um 09:33

    Weils man sich für eine von hunderten von Lösungen entscheiden muss^^
    Ich hätte aber auch Shellexecute verwendet. Finde ich iwie sauberer. Dann muss kein Objekt erzeugt werden

  • Offizielles AutoIt Pokerstars Turnier (15.02.2011)

    • Schnitzel
    • 15. Februar 2011 um 09:27

    Ab wieviel Personen findet es denn statt?
    Gestern abend waren 2 angemeldet. Und nur auf Heads-up hab ich nicht unbedingt Lust...

    i2c:
    Soviele sind aber lange nicht aktiv^^

  • Internetprüfer

    • Schnitzel
    • 14. Februar 2011 um 21:31

    Sry aber das ist hier kein "Mach mir mal"-Forum.
    Es ist aber mit Sicherheit möglich. Einfach eine Datei runterladen und dann mit einem Dreisatz die Geschwindigkeit ausrechnen.

  • Programm durch Tastendruck starten?

    • Schnitzel
    • 14. Februar 2011 um 17:55

    Hm ok. Dann testen wir mal paar Sachen^^
    1. Bekommst du irgendwelche Fehlermeldungen oder sonstige Info's?
    2. Du drückst die Tasten lange genug oder? ( 250 Millisekunden wenn du glück hast auch weniger^^ )
    3. Prüfe doch bitte mal welche Class er dir im Window Info Tool anzeigt wenn du das Fadenkreuz auf den Desktop/Explorer ziehst ( Die Class im Reiter "Window" )
    4. Ohne die WinActive funktioniert es oder? Also so:

    Spoiler anzeigen
    [autoit]


    #include <Misc.au3>

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

    $dll = DllOpen("user32.dll")

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

    While 1
    If _IsPressed("48", $dll) And _IsPressed("49", $dll) Then
    ShellExecute("notepad.exe")
    EndIf
    Sleep(250)
    WEnd

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

    DllClose($dll)

    [/autoit]


    5. Füge mal testweise ein #RequireAdmin am Anfang des Scriptes ein

  • Programm durch Tastendruck starten?

    • Schnitzel
    • 14. Februar 2011 um 17:40

    Teste das mal:

    Spoiler anzeigen
    [autoit]

    #include <Misc.au3>

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

    $dll = DllOpen("user32.dll")

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

    While 1
    If _IsPressed("48", $dll) And _IsPressed("49", $dll) And (WinActive("[CLASS:CabinetWClass]") Or WinActive("[CLASS:Progman]"))Then
    ShellExecute("notepad.exe")
    EndIf
    Sleep(250)
    WEnd

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

    DllClose($dll)

    [/autoit]

    Hab hier leider kein Vista, aber auf XP und Win7 funktionierts.

  • SoftCreator - Problem mit IniWrite und Variable

    • Schnitzel
    • 14. Februar 2011 um 16:50

    na klar musst du.
    Du willst ja auch nicht wirklich "unendlich" IniKey's haben. Sonst wird ja deine Festplatte voll bevor du alle Zahlen gespeichert hast :P

    Also von was hängt es ab wieviele Key's du schreiben willst?

  • Programm durch Tastendruck starten?

    • Schnitzel
    • 14. Februar 2011 um 16:47

    Welches OS hast du?

  • Programm durch Tastendruck starten?

    • Schnitzel
    • 14. Februar 2011 um 16:10

    So könntest du's z.B. lösen:

    Spoiler anzeigen
    [autoit]

    #include <Misc.au3>

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

    $dll = DllOpen("user32.dll")

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

    While 1
    If _IsPressed("48", $dll) And _IsPressed("49", $dll) And WinActive("Program Manager")Then
    ShellExecute("notepad.exe")
    WinWaitActive("Unbenannt - Edi")
    Send("Hallo")
    Sleep(1500)
    WinClose("Unbenannt", "")
    Send("{right}{ENTER}")
    EndIf
    Sleep(250)
    WEnd

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

    DllClose($dll)

    [/autoit]

    Sry Fresapore, aber deine Lösung führt zu Kopfweh :D

  • Programm durch Tastendruck starten?

    • Schnitzel
    • 14. Februar 2011 um 14:54

    Dann gib doch als 3te Bedingung eine WinActive abfrage an.
    Einfach wieder mit And verknüpfen

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™