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

  • "OK"-Klick-Bot

    • Prajoss
    • 12. September 2011 um 09:24

    Moin,

    ich würd noch ein Sleep einbauen, sonst frisst dein kleines Script einiges an CPU Ressourcen.


    [autoit]

    While 1
    WinWaitActive("CRAZY MACHINES II","Bitte legen Sie die CRAZY MACHINES II - CD ein!")
    Send("{SPACE}")
    Sleep(50)
    WEnd

    [/autoit]

    Gruß

    Prajoss

  • Starten und Beenden

    • Prajoss
    • 9. September 2011 um 13:43

    nein diese Parameter sind die, die das Programm selbst kennt (z.b. /silence /qn usw).

    du musst aber keine Angeben, das ist nur Optional.

  • Starten und Beenden

    • Prajoss
    • 9. September 2011 um 12:15
    Zitat von tobitron

    danke prajoss

    zu dem rest, ich sehe das problem eher darin das immer wenn ich ne Win funktion aufrufe jedes mal ein fester Parameter eingetragen werden muss. Das heißt ich kann nicht dynamisch arbeiten aber kann natürlich acuh sein das ich was übersehen habe?

    Evtl ist es doch besser die Programme extra zu öffnen und schließen und dann copy&paste


    Ich dachte du wüsstest welche Parameter du an die Anwendung übergeben musst.
    Ansonsten versteh ich dein Problem dann nicht ganz/richtig.

    Gruß

    Prajoss

  • Adminrechte nicht am Scriptstart abfragen

    • Prajoss
    • 9. September 2011 um 12:14

    Ich möchte jetzt keinen Streit vom Zaune brechen

    Bei den getesteten Systemen wurde das Script lokal ausgeführt.

    Wollte den Threadersteller nur vor dem "möglichen" Problem warnen.

    Gruß

    Prajoss

  • Adminrechte nicht am Scriptstart abfragen

    • Prajoss
    • 9. September 2011 um 09:17

    Das Problem tritt auf, wenn man keine Adminrechte hat.

    Edit:

    Gerade nochmal getestet.

    Win 7 32 Bit, Benutzer hat keine Adminrechte, UAC ist aus.

    Programm fängt an in ne Art Schleife zu gehen, man kann das Programm nichtmal effektiv im Taskmanager abschießen,
    weil er andauernd den Fokus des Controls im taskmgr verliert. und im Tray ist noch kein Icon.

    Es ist kein schönes Problem, wurde auch schon öfters im englischen Forum angesprochen.
    Vllt ists ja auch behoben mit einer neuen Version von Autoit, aber das hab ich noch nicht mitbekommen.

    Gruß

    Prajoss

  • Adminrechte nicht am Scriptstart abfragen

    • Prajoss
    • 9. September 2011 um 08:49

    Achtung mit #RequireAdmin

    Wenn du es auf nem Windows Vista/7 ausführt, auf dem die Benutzerkontensteuerung deaktiviert ist, wird dein
    Script ganz böse aufs Gesicht fallen.

    Der versucht nämlich diese dazu aufzufordern im Adminrechte zu geben, da die UAC aber nicht aktiv ist, wartet er.
    Rate mal wie lange *g*

    Gruß

    Prajoss

  • Starten und Beenden

    • Prajoss
    • 9. September 2011 um 08:40

    Moin Tobitron,

    jetzt versteh ich dein Problem nicht genau.

    Du kannst doch bei Shellexute auch die Programmparameter übergeben.

    ShellExecute ( "filename" [, "parameters" [, "workingdir" [, "verb" [, showflag]]]] )
    Wenn du unterschiedliche Parameter zu den Programmen hast, dann lager die doch schon vorher in ein Array aus und mach das etwa so:

    [autoit]

    Dim $array[5][2]

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

    $array[0][0] = "Programmpfad1"
    $array[0][1] = "Parameter für Programm 1"

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

    $array[1][0] = "Programmpfad2"
    $array[1][1] = "Parameter für Programm 2"

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

    $array[2][0] = "Programmpfad3"
    $array[2][1] = "Parameter für Programm 3"

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

    $array[3][0] = "Programmpfad4"
    $array[3][1] = "Parameter für Programm 4"

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

    $array[4][0] = "Programmpfad5"
    $array[4][1] = "Parameter für Programm 5"

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

    $array[5][0] = "Programmpfad6"
    $array[5][1] = "Parameter für Programm 6"

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

    For $i = 0 To UBound($array) - 1

    ShellExecute($array[$i][0], $array[$i][1])

    ;Sonstiges

    Next

    [/autoit]

    Genauso könntest du auch noch ein Drittes Feld hinzufügen, in dem der Prozessname steht, also:

    [autoit]

    Dim $array[5][3]

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

    $array[0][0] = "Programmpfad1"
    $array[0][1] = "Parameter für Programm 1"
    $array[0][2] = "Prozessname1"

    [/autoit]

    Wichtig bei Arrays ist immer, dass der Index bei 0 anfängt (das verwirrt manchmal^^)

    Gruß

    Prajoss

  • Skript zeitgesteuert laufen lassen?

    • Prajoss
    • 9. September 2011 um 08:33

    Moin,

    schau dir einfach die _Date Funktionen an, z.b. _Date_Time_GetSystemTime (Hiermit erhält man die Systemzeit und das Systemdatum).
    Mit den anderen _Date Funktionen kann man das Datum aufbröseln und weiß so, ob es Sa, So oder was auch immer ist.

    Gruß

    Prajoss

  • Starten und Beenden

    • Prajoss
    • 9. September 2011 um 08:20

    Moin,

    also wenn dann so:

    [autoit]


    For $i = UBound($programs) - 1 to 0 Step -1

    [/autoit]

    Ubound($array) gibt als Rückgabewert die Anzahl der insgesamten Elemente.

    Beispiel:

    [autoit]

    Dim $array[5]

    [/autoit]

    erzeugt ein Array mit 5 Elementen. Diese sind:

    [autoit]

    $array[0], $array[1], $array[2], $array[3], $array[4]

    [/autoit]

    (5 an der Zahl).

    Wenn du jetzt nur Ubound($array) nimmst, dann würde man als Index die 5 haben.
    Dieses Element existiert aber nicht und das Programm würde abstürzen.
    Deswegen ist die richtige Anwendung

    [autoit]

    Ubound($array) - 1

    [/autoit]

    Gruß

    Prajoss

  • websiten verändern

    • Prajoss
    • 8. September 2011 um 16:44

    https://autoit.de/www.google.de

  • Starten und Beenden

    • Prajoss
    • 8. September 2011 um 16:38

    Hi,

    statt dem Sleep würde ich das so machen:

    Spoiler anzeigen
    [autoit]


    ShellExecute("C:\Program Files (x86)\Mozilla Firefox\firefox.exe")
    WinWaitActive("Firefox") ; musst sehen wie der Titel ist. Nimm das Tool "AutoIt Windows Info"
    WinClose("Firefox")

    [/autoit]

    oder falls du nach dem Prozess gehen willst:

    Spoiler anzeigen
    [autoit]


    ShellExecute("C:\Program Files (x86)\Mozilla Firefox\firefox.exe")
    While ProcessExists("firefox.exe") = 0
    Sleep(30)
    WEnd
    ProcessClose("firefox.exe")

    [/autoit]

    Gruß

    Prajoss

    Edit: Vorschaufunktion ist ganz praktisch, muss man nicht die Fehler nach dem Post ausbessern ^^

  • Bilder in eine SQLite DB speichern und später daraus laden?

    • Prajoss
    • 7. September 2011 um 08:30

    Moin,

    das Probleme ist bei mir selbst aufgetreten vor ein paar Wochen und nach suchen und Hilfe ausm Forum
    sieht mein Skript so aus:

    Bild einlesen (leicht abgeändert):

    Spoiler anzeigen
    [autoit]

    $pic = FileOpenDialog("Bild auswählen", @ScriptDir & "\Bilder", "Bilder (*.jpg;*.bmp;*.png)", 1 + 2)
    If FileExists($pic) Then
    $h_pic = FileOpen($pic, 16)
    $v_pic = FileRead($h_pic)
    EndIf

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

    _SQLite_Open($h_db)
    _SQLite_Exec(-1, "Insert Into " & $tabelle & " values (" & _SQLite_Encode($v_pic) & ");")
    _SQLite_Close()

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

    Und um das Bild wieder zu laden:

    Spoiler anzeigen
    [autoit]

    _SQLite_Query(-1,"SELECT Bild FROM " & $tabelle & " WHERE name='" & $name & "';", $hQuery)

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

    _SQLite_FetchData($hQuery, $a_row, 1)

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

    $Bild_Daten = $a_row[0]

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

    _SQLite_QueryFinalize ($hQuery)

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

    _SQLite_Close()

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

    $Bild_pfad = _Erzeuge_Bild_Tmp($Bild_Daten)

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

    If FileExists($Bild_pfad) Then

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

    _GDIPlus_Startup()
    Local $hImage = _GDIPlus_ImageLoadFromFile($Bild_pfad)
    Local $iX = _GDIPlus_ImageGetWidth($hImage)
    Local $iY = _GDIPlus_ImageGetHeight($hImage)
    _GDIPlus_ImageDispose($hImage)
    _GDIPlus_Shutdown()
    EndIf

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

    $bild = GUICtrlCreatePic($Bild_pfad, 370, 70, $iX, $iY)

    [/autoit]

    Hier die Funktion um Temporär das Bild auszulagern:

    Spoiler anzeigen
    [autoit]

    Func _Erzeuge_Bild_Tmp($sHex)
    Local $sFile = @TempDir & "\sqldbtmp.jpg"
    Local $hFileOut = FileOpen($sFile, 2)
    FileWrite($hFileOut, $sHex)
    FileClose($hFileOut)
    Return $sFile
    EndFunc

    [/autoit]

    Gruß

    Prajoss

  • Script frisst Speicher bis keiner mehr da ist :-(

    • Prajoss
    • 31. August 2011 um 11:10

    Hi,

    um sowas zu vermeiden nutze ich folgenden Befehl:

    [autoit]

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

    [/autoit]

    Diesen einfach am Ende der Schleife setzten und gut is ;)

    Gruß

    Prajoss

  • Cleanerbot

    • Prajoss
    • 30. August 2011 um 16:46

    Hi,

    du solltest vllt trotzdem den Sleep von 1 auf 50 oder 100 stellen, sonst lastest du dein System aus.

    Gruß

    Prajoss

  • Word 2010 in GUI einbetten

    • Prajoss
    • 30. August 2011 um 16:42

    Diese Änderung gefiehl mir auch nicht beim Umstieg auf Win 7.

    Du kannst hier mal reinsehen:

    Systemsteuerung\Alle Systemsteuerungselemente\Standardprogramme

    (Kannst den Link genau wie er da steht in der Windows Explorer Adressleiste eingeben).

    Vllt wirst du fündig.

    Gruß

    Prajoss

  • ComboBox und GuiOnEvent

    • Prajoss
    • 12. August 2011 um 08:57

    Manchmal hab ich irgendwie nen Brain-Lag :D

    Hab wohl versucht zu kompliziert zu denken ^^

    Danke

  • ComboBox und GuiOnEvent

    • Prajoss
    • 12. August 2011 um 08:21

    Servus Leute,

    wieder ein kleines Problem welches mir Kopfschmerzen bereitet.

    Ich habe mehrere Comboboxen in meinem Script, welche ein Event auslösen wenn man etwas daraus auswählt.
    Manuell funktionert es auch sehr gut, nur benötige ich zusätzlich noch eine Funktion welche das Event auslöst.

    Anbei ein angepasstes Beispielskript. Über die Taste ESC wird mit dem Befehl GUICtrlComboBox_SetCurSel ein
    Eintrag ausgewählt, dummerweise triggert dieser nicht das Event! Gibt es da ne andere möglichkeit, evtl. über
    GuiSendMsg?

    Script:

    Spoiler anzeigen
    [autoit]

    #include <GUIComboBox.au3>
    #include <GuiConstantsEx.au3>

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

    Opt('MustDeclareVars', 1)
    Opt('GUIOnEventMode', 1)

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

    $Debug_CB = False ; Check ClassName being passed to ComboBox/ComboBoxEx functions, set to True and use a handle to another control to see it work

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

    Global $hCombo

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

    HotKeySet("{ESC}", "event")

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

    _Main()

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

    Func _Main()

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

    ; Create GUI
    GUICreate("ComboBox Set Cur Sel", 400, 296)
    GUISetOnEvent($GUI_EVENT_CLOSE, "_exit")
    $hCombo = GUICtrlCreateCombo("", 2, 2, 396, 296)
    GUICtrlSetOnEvent(-1, "test")
    GUISetState()

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

    ; Add files
    _GUICtrlComboBox_BeginUpdate($hCombo)
    _GUICtrlComboBox_AddDir($hCombo, @WindowsDir & "\*.exe")
    _GUICtrlComboBox_EndUpdate($hCombo)

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

    ; Select Item
    _GUICtrlComboBox_SetCurSel($hCombo, 2)

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

    ; Loop until user exits

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

    While True

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

    Sleep(50)

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

    WEnd

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

    EndFunc ;==>_Main

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

    Func test()
    MsgBox(0, "...", GUICtrlRead($hCombo))
    EndFunc

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

    Func event()
    _GUICtrlComboBox_SetCurSel($hCombo, 1)
    EndFunc

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

    Func _exit()
    Exit
    EndFunc

    [/autoit]

    Gruß

    Prajoss

  • Resizing einer GUI über Buttons

    • Prajoss
    • 11. August 2011 um 16:43

    Passt,

    danke dir :)

  • Wettbewerb: Textverarbeitungsprogramm coden

    • Prajoss
    • 11. August 2011 um 16:20

    Servus,

    bin mir grad nicht sicher ob ich Zeit finde, aber ist eine Woche nicht zu wenig?

    Gruß

    Prajoss

  • Resizing einer GUI über Buttons

    • Prajoss
    • 11. August 2011 um 16:18

    Servus Leute,

    Ich Habe hier ein kleines "Schönheitsproblem" mit einer GUI. Diese möchte ich dynamisch vergrößern/verkleinern.
    Das klappt zwar auch, allerdings sieht das eher merkwürdig aus (einfach mal Skript starten und die Buttons nutzen)

    Spoiler anzeigen
    [autoit]

    #include <Array.au3>
    #include <ArrayMore.au3>
    #include <GuiConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <ComboConstants.au3>
    #include <EditConstants.au3>
    #include <StaticConstants.au3>
    #include <ButtonConstants.au3>

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

    Opt("GUIResizeMode",$GUI_DOCKALL)
    Opt("GUIOnEventMode", 0)

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

    main()

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

    Func main()

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

    Local $column[1], $attrib[1], $result[1][2], $gui
    Local $height = 50, $gheight = 140

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

    GUISetState(@SW_HIDE, $gui)

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

    $child = GUICreate("Neue Tabelle", 380, 140, -1, -1, BitOr($GUI_SS_DEFAULT_GUI, $WS_CHILD), -1, $gui)

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

    GUICtrlCreateLabel("Tabellenname:", 15, 15, 80, 20)

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

    $tabellenname = GUICtrlCreateInput("", 110, 15, 120, 20)

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

    GUICtrlCreateLabel("Spaltennamen:", 15, 50, 80, 20)

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

    $column[0] = GUICtrlCreateInput("", 110, 50, 120, 20)

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

    $attrib[0] = GUICtrlCreateCombo("", 245, 50, 120, 20)
    GUICtrlSetData(-1, "Text|Int|Real|Blub")

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

    $plus = GUICtrlCreateButton("", 260, 10, 30, 30, $BS_ICON)
    GUICtrlSetImage(-1, "shell32.dll", 5)

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

    $minus = GUICtrlCreateButton("", 310, 10, 30, 30, $BS_ICON)
    GUICtrlSetImage(-1, "shell32.dll", 32)

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

    $anlegen = GUICtrlCreateButton("Anlegen", 15, 80, 80, 20)

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

    $abbrechen = GUICtrlCreateButton("Abbrechen", 15, 110, 80, 20)

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

    GUISetState(@SW_SHOW, $child)

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

    While 1

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

    $msg = GUIGetMsg()

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

    Select
    Case $msg = $GUI_EVENT_CLOSE Or $msg = $abbrechen
    GUIDelete($child)
    GUISetState(@SW_SHOW, $gui)
    Return 0

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

    Case $msg = $plus
    _ArrayAdd($column, "")
    _ArrayAdd($attrib, "")
    $column[UBound($column)-1] = GUICtrlCreateInput("", 110, $height + (UBound($column) - 1)*30, 120, 20)
    $attrib[UBound($attrib)-1] = GUICtrlCreateCombo("", 245, $height + (UBound($attrib) - 1)*30, 120, 20)
    GUICtrlSetData(-1, "Text|Int|Real|Blub")
    WinMove("Neue Tabelle", "", Default, Default, 386, $gheight + (UBound($column) - 1)*30)

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

    Case $msg = $minus
    If UBound($column) > 1 Then
    GUICtrlDelete($column[UBound($column) - 1])
    GUICtrlDelete($attrib[UBound($attrib) - 1])
    _ArrayDelete($column, UBound($column))
    _ArrayDelete($attrib, UBound($attrib))
    WinMove("Neue Tabelle", "", Default, Default, 386, $gheight + (UBound($column)*30))
    EndIf

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

    Case $msg = $anlegen
    For $i = 0 To Ubound($column) -1
    If GUICtrlRead($column[$i]) = "" Then ExitLoop
    $result[$i][0] = StringReplace(GUICtrlRead($column[$i]), " ", "")
    $result[$i][1] = GUICtrlRead($attrib[$i])
    _Array2DAdd($result,"")
    Next
    $result[UBound($result,1)-1][0] = GUICtrlRead($tabellenname)
    GUIDelete($child)
    GUISetState(@SW_SHOW, $gui)
    Return $result

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

    EndSelect

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

    Sleep(30)

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

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

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

    WEnd

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

    EndFunc

    [/autoit]

    Ich danke für die Hilfe.

    Gruß

    Prajoss

    ps: weiß grad jemand aus dem Kopf wie man Ressourcen(Bild-Dateien) in Bit Code umwandelt um diese direkt im Script einzubinden?

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™