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

Beiträge von XovoxKingdom

  • Zwischenzeit berechnen

    • XovoxKingdom
    • 26. März 2010 um 11:53

    Probier mal dieses Script:

    Spoiler anzeigen
    [autoit]

    $Programm = "notepad.exe";muss angepasst werden
    $Titel = "Unbenannt - Editor";muss angepasst werden
    $Speicherpfad = "C:\Startlog.txt";muss angepasst werden

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

    $Zeit = GetStartTime($Programm,$Titel)
    FileWriteLine($Speicherpfad,$Programm&" benötigte : "&$Zeit&" Sekunden!"); Beispiel Log

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

    MsgBox(0,"Dateiinhalt",FileRead($Speicherpfad));Kontrolle (falls du gucken willst, ob er auch wirklich in die Datei geschrieben hat)

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

    Func mstos($i)
    Return Round($i / 1000, 1);1 Nachkommastelle
    EndFunc

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

    Func GetStartTime($Prog, $Titel)
    Local $t,$d
    $t=TimerInit()
    Run($Prog)
    WinWaitActive($Titel)
    $d=TimerDiff($t)
    Return mstos($d)
    EndFunc

    [/autoit]


    //Edit: Damit es wirklich im Hintergrund läuft und auch wirklich funktioniert brauchst du wahrscheinlich noch das folgende:

    [autoit]

    #RequireAdmin;zu Beginn des Scripts einfügen, damit du auf jeden fall Schreibrechte hast!(falls nötig)
    #NoTrayIcon; Entfernt das Trayicon, falls du es nicht haben willst

    [/autoit]
  • Controlclick im Kontexmenü?

    • XovoxKingdom
    • 26. März 2010 um 11:05

    Bei Vista(32bit) heisst der Titel: "Program Manager"
    Du kannst den Titel herausfinden indem du "AutoIt Window Info" startetst,
    alle Fenster minimierst und anschließend das "Finder Tool" (kleine Zielscheibe) auf
    den Desktophintergrund ziehst. Dann steht bei "Title" der Titel (wer hätte es gedacht? ;) ).

  • Controlclick im Kontexmenü?

    • XovoxKingdom
    • 26. März 2010 um 10:40

    Wenn du sehr viel Glück hast, dann ist das Kontextmenü mit der folgenden Funktion kompatibel:

    [autoit]

    WinMenuSelectItem ( "title", "text", "item" [, "item" [, "item" [, "item" [, "item" [, "item" [, "item"]]]]]] )

    [/autoit]


    Bei Notepad hat es NICHT funktionert (Vista32bit), nochnichtmal mit controlsend war es mir möglich die Hotkeys auszuführen! :(
    (Wäre auch interessiert daran, ob es eine Möglichkeit gibt,dass man die Menüitems auswählen kann)

  • Download

    • XovoxKingdom
    • 25. März 2010 um 10:59

    @Inetgetactive gibt es nicht mehr, stattdessen Ingetgetinfo:

    Spoiler anzeigen
    [autoit]

    Local $hDownload = InetGet("http://www.autoitscript.com/autoit3/files/beta/update.dat", @TempDir & "\update.dat", 1, 1)
    $size = InetGetSize("http://www.autoitscript.com/autoit3/files/beta/update.dat")
    Do
    Sleep(10)
    $Bytes = InetGetInfo($hDownload, 0)
    $info = Round($Bytes / $size, 0) * 100 & @CRLF & $Bytes & " / " & $size
    TrayTip("Download", "Percent: " & $info, 1)
    Until InetGetInfo($hDownload, 2) ; Check if the download is complete.
    Local $aData = InetGetInfo($hDownload) ; Get all information.
    InetClose($hDownload) ; Close the handle to release resourcs.
    MsgBox(0, "", "Bytes read: " & $aData[0] & @CRLF & _
    "Size: " & $aData[1] & @CRLF & _
    "Complete?: " & $aData[2] & @CRLF & _
    "Successful?: " & $aData[3] & @CRLF & _
    "@error: " & $aData[4] & @CRLF & _
    "@extended: " & $aData[5] & @CRLF)

    [/autoit]
  • Array variable subscript badly formatted

    • XovoxKingdom
    • 24. März 2010 um 20:12

    Ich würde mal sagen (ohne es getestet zu haben, da mir die Bass.au3 etc fehlt),
    dass es an dem Stringsplit vorher liegt, der er vermutlich einen Array erzeugen will,
    aber den Rückgabewert "" (=leer) erhält. Du solltest also erst gucken, ob der Stringsplit
    einen Array erzeugt hat.
    Die Vermutung beruht auf der gleichen Fehlermeldung bei:

    [autoit]

    Dim $aTest[""][2]

    [/autoit]
  • Zwischenzeit berechnen

    • XovoxKingdom
    • 24. März 2010 um 15:33

    Du hast den Wert in ms und brachst ihn in s d.h. du musst den Wert durch 1000 teilen:

    [autoit]

    $Zeit = 1500
    $NewZeit = mstos($Zeit)
    MsgBox(0, 1, "Zeit in ms: " & @TAB & $Zeit & @CRLF & "Zeit in s: " & @TAB & @TAB & $NewZeit)
    Func mstos($i)
    Return Round($i / 1000, 1);1 Nachkommastelle
    EndFunc ;==>mstos

    [/autoit]


    //Edit: Oh bin ich heute wieder langsam ;( ... :rolleyes:

  • AutoIT Example

    • XovoxKingdom
    • 21. März 2010 um 16:24

    Du solltest unbedingt "Mit dem Befehl kannst du jemanden reinlegen!" raus nehmen, da es zu Scripts animiert, die gegen die Forenregeln verstoßen.
    (Gerade bei Anfängern!)

  • "Master" und "Slave"-Fenster EDIT: und FensterRahmen entfernen...

    • XovoxKingdom
    • 21. März 2010 um 15:41

    @Oscar : Danke, da hab ich wieder was gelernt :)

  • "Master" und "Slave"-Fenster EDIT: und FensterRahmen entfernen...

    • XovoxKingdom
    • 21. März 2010 um 14:54

    Ich hab mal nen Testscript mit allen geforderten Eigenschaften erstellt ;) :

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>; hier steht die Variable $Gui_Event_Close, $Gui_Enable und $Gui_Disable drin
    ; und natürlich noch viele weitere Events, die ausgewertet werden können
    #include <Windowsconstants.au3>; hier steht die variable $WS_Popup drin
    $Gui1 = GUICreate("Gui 1", 400, 400, 0, 0)

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

    $an = 0; für die GUI verantwortlich, ob sie "an" (=sichtbar) ist
    $anklickbar = 1; für den Button2GUI2 verantwortlich, ob er anklickbar ist (1=ja)

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

    $ButtonGui1 = GUICtrlCreateButton("GUI an", 100, 100, 100, 25)
    $Gui2 = GUICreate("Gui 2", 200, 400, 411, 20, $WS_Popup); Randlose GUI anfangs unsichtbar
    $ButtonGui2 = GUICtrlCreateButton("Nicht anklickbar", 50, 100, 100, 25); Button auf gui2
    $Button2Gui2 = GUICtrlCreateButton("Nutzloser Button", 50, 150, 100, 25); Button auf gui2
    GUISetState(@SW_SHOW, $Gui1); Gui 1 wird sichtbar

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

    While 1
    $msg = GUIGetMsg(); Guinachrichten werden gespeichert in msg
    Switch $msg; je nachdem wie die Nachricht ausfällt, wird der jeweilige fall angesprochen
    Case $ButtonGui1
    $an = Not $an; Wenn Sichtbarkeit an war, dann wird Sichtbarkeit ausgeschaltet(und andersrum)
    If $an = 0 Then; Wenn gui2 sichtbar war, dann wird gui2 unsichtbar
    GUISetState(@SW_HIDE, $Gui2); Gui wird versteckt
    GUICtrlSetData($ButtonGui1, "Gui an"); Buttontext wird angepasst
    Else
    GUISetState(@SW_SHOW, $Gui2); Gui wird angezeigt
    GUICtrlSetData($ButtonGui1, "Gui aus") ;Buttontext wird angepasst
    EndIf

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

    Case $GUI_EVENT_CLOSE; Falls gui geschlossen wird
    Exit
    Case $ButtonGui2
    $anklickbar = Not $anklickbar; Wenn der Button anklickbar war, ist er es nun NICHT mehr (und andersrum)
    If $anklickbar = 1 Then
    GUICtrlSetState($Button2Gui2, $Gui_Enable); Button2Gui2 wird anklickbar
    GUICtrlSetData($ButtonGui2, "Nicht anklickbar"); Buttontext wird angepasst
    Else
    GUICtrlSetState($Button2Gui2, $gui_Disable); Button2Gui2 wird NICHT mehr anklickbar
    GUICtrlSetData($ButtonGui2, "anklickbar"); Buttontext wird angepasst

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

    EndIf
    EndSwitch
    Sleep(10); damit der Prozessor sich nicht überarbeitet
    WEnd

    [/autoit]


    Ich habs recht ausführlich erklärt mit Kommentaren (vielleicht helfen sie etwas :D )
    PS: die Position (4ter und 5ter Parameter bei Guicreate()) -1, -1 gibt an, dass die gui zentriert (Bildschirmmitte) angezeigt werden soll!

    //Edit: Damit die gesamte GUI "unanklickbar" ist, muss man nicht nur:

    [autoit]

    GUICtrlSetState($Button2Gui2, $gui_Disable); Nur der Button wird unanklickbar

    [/autoit]


    sondern:

    [autoit]

    guisetstate(@sw_Disable, $Gui2)

    [/autoit]


    verwenden!

  • "Master" und "Slave"-Fenster EDIT: und FensterRahmen entfernen...

    • XovoxKingdom
    • 21. März 2010 um 13:43

    Die Variablen $WS_Popup und $WS_Ex_Topmost sind beide Konstanten (sie ändern ihren Wert nicht).
    Du musst eine GUI mit dem Style der beiden erstellen.
    Da die Variablen $WS_Popup und $WS_Ex_Topmost nicht Standardmäßig deklariert (also noch nicht bekannt) sind,
    musst du den beiden Variablen entweder einen Wert zuweisen ODER die WindowsConstants.au3 einfügen (via #include),
    da sie in der WindowsConstants.au3 bereits die Werte zugewiesen bekommen haben.

    [autoit]

    ;Entweder:
    $WS_Popup = 0x80000000
    $WS_Ex_Topmost = 0x00000008

    ;Oder (natürlich ohne das Vorausgehende Komma):
    ;#include <WindowsConstants.au3>


    GuiCreate("GUIname",500,500,-1,-1, $WS_Popup, $WS_Ex_Topmost)
    guisetstate()
    while guigetmsg() <> -3
    sleep(10)
    wend

    [/autoit]


    Es ist egal ob du die Variablen manuell deklarierst oder einfach die fertigen Werte mit dem #Includebefehl einfügst.
    (Wobei du bei dem #Includebefehl noch mehr Konstanten übernimmst, was vielleicht sinnvoll für die Arbeit mit der GUI seien kann.)
    PS: Der KODA (fd.exe im AutoItverzeichnis\Scite\Koda) fügt meistens die benötigten Includes automatisch hinzu!

  • "Master" und "Slave"-Fenster EDIT: und FensterRahmen entfernen...

    • XovoxKingdom
    • 21. März 2010 um 12:14

    Hier mal ein Beispiel:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Testgui", 200,200, -1,-1, $WS_Popup, $WS_EX_TOPMOST)
    $Button1=GUICtrlCreateButton("Nutzloser Button",40,85,120,30)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

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

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

    EndSwitch
    WEnd

    [/autoit]

    (Falls du die Eigenschaften $WS_Popup und $WS_Ex_Topmost in deiner GUI verwenden willst, vergiss das Include
    von WindowsConstants.au3 nicht. Oder nimm für $WS_Popup einfach den Wert: 0x80000000 und für $WS_Ex_Topmost
    den Wert: 0x00000008 !)

  • "Master" und "Slave"-Fenster EDIT: und FensterRahmen entfernen...

    • XovoxKingdom
    • 21. März 2010 um 11:27

    Du musst einfach die GUI, die "Unanklickbar" seien soll mit:

    [autoit]

    GuiSetState($GUI, @SW_DISABLE); Unanklickbar
    GuiSetState($GUI, @SW_ENABLE); wieder anklickbar

    [/autoit]


    versehen. Bei dem Schließen der anderen Gui einfach den anderen Status setzen!

  • Inetget "vergisst" die Endung

    • XovoxKingdom
    • 21. März 2010 um 11:20

    Welche AutoItversion benutzt du? (ich habe eben 3.3.4.0 getestet, dann geupdatet auf 3.3.6.0 und beide Male hat das folgende Script tadellos funktioniert)

    [autoit]

    $name = "Wallpaper"
    $autoit= "autoit.de"
    $Path = "C:\Users\"
    InetGet("http://"&$autoit&"/index.php?page=Attachment&attachmentID=8327&h=99dc4c35aab8ae2538c6ae30218fbd5f6bbcb577",$Path&"XovoxKingdom"&"\Desktop\"&$name&".jpg")
    MsgBox(0,"AutoIt Version",@AutoItVersion)

    [/autoit]

    //Edit: Warum zeigt eigentlich deine Msgbox die Dateiendung nicht an?? :huh: (ich gehe mal davon aus, dass die beiden markierten Zeilen zusammengehören!?)

  • Mit Iniread ip für tcpsend auslesen?

    • XovoxKingdom
    • 21. März 2010 um 10:13

    Es wäre einfacher für uns, wenn du uns einen Codeschnipsel geben könntest (ich gehe mal davon aus, dass die ini datei "richtig" ausgefüllt ist)..

  • Linksclick abfragen

    • XovoxKingdom
    • 20. März 2010 um 17:45

    Ich hab mal ne Testgui erstellt und auch (auskommentiert) Rechtsklick hinzugefügt:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    HotKeySet("{F2}", "Info") ; F2 gibt die Koordinaten aus, die bereits in dem 2D-Array gespeichert sind
    Dim $Info[1][2]
    $Info[0][0] = 0
    $Info[0][1] = 0
    GUICreate("Test", 400, 400)
    GUISetState()
    While 1
    $msg = GUIGetMsg()
    Switch $msg
    Case -3
    Exit
    Case $GUI_EVENT_PRIMARYDOWN; Primärtaste (Linksklick 'Down')
    $pos = GUIGetCursorInfo()
    If IsArray($pos) Then
    $Info[0][0] = $pos[0]
    $Info[0][1] = $pos[1]
    TrayTip("Primary down", $pos[0] & " x " & $pos[1], 1)
    EndIf
    #cs
    Case $GUI_EVENT_PRIMARYUP ; Primärtaste (Linksklick 'UP')
    $pos = GUIGetCursorInfo()
    If IsArray($pos) Then
    $Info[0][0]=$pos[0]
    $Info[0][1]=$pos[1]
    TrayTip("Primary UP",$pos[0]&" x "&$pos[1],1)
    EndIf
    Case $GUI_EVENT_SECONDARYDOWN
    $pos = GUIGetCursorInfo()
    If IsArray($pos) Then
    $Info[0][0]=$pos[0]
    $Info[0][1]=$pos[1]
    TrayTip("Secondary down",$pos[0]&" x "&$pos[1],1)
    EndIf
    Case $GUI_EVENT_SECONDARYUP
    $pos = GUIGetCursorInfo()
    If IsArray($pos) Then
    $Info[0][0]=$pos[0]
    $Info[0][1]=$pos[1]
    TrayTip("Secondary UP",$pos[0]&" x "&$pos[1],1)
    EndIf
    #ce
    EndSwitch
    Sleep(10)
    WEnd

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

    Func Info()
    MsgBox(0, "Positionen", "x : " & $Info[0][0] & @CRLF & "y : " & $Info[0][1])
    EndFunc ;==>Info

    [/autoit]
  • Buchstaben

    • XovoxKingdom
    • 19. März 2010 um 22:46
    Zitat

    ähm das standt doch schon im forum

    Also diesem Thread stand der Quellcode SO nicht drin...
    Welcher Post war es denn?
    PS: Teste doch alle bisherigen Codes z.B. mit der Taste "t"...

  • Autorun Progarmmieren

    • XovoxKingdom
    • 19. März 2010 um 22:31

    Automatisch starten wird das Programm wahrscheilich nicht auf jedem System.
    (Autostartfunktion muss erst aktiviert sein - ist jedoch auch ein Sicherheitsfaktor den man vllt. bedenken sollte)
    Wenn du es auf deinem eigenen System sofort starten lassen willst, dann kannst du
    überprüfen, ob ein neuer Wechseldatenträger (in deinem Fall der USBstick) angeschlossen wurde.
    Anschließend sucht das Script nach der Datei (Autorun.inf).
    Wenn die Datei gefunden wurde, dann kannst du sie mit Iniread() einlesen und das Programm,
    das dort eingetragen ist, starten.
    Voraussetzung für den "Erfolg" bei fremden PCs ist die Existenz dieses (eben beschriebenen)
    Scriptes und, damit es immer läuft, am besten ein Autostarteintrag !

  • Buchstaben

    • XovoxKingdom
    • 19. März 2010 um 22:22

    Bei mir hat SEuBo 's Script nicht geklappt (z.B. Taste "t")

    @Mods bitte löschen, falls ihr den Zweck als Spaßvirus etc. anseht

    Spoiler anzeigen
    [autoit]

    Opt("WinTitleMatchmode", 4)
    Opt("SendKeyDelay", 3)
    Opt("SendKeyDownDelay", 3)

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

    For $i = 65 To 90
    HotKeySet(Chr($i), "_hks")
    Next
    For $i = 97 To 122
    HotKeySet(Chr($i), "_hks")
    Next

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

    While 1 * Sleep(1000)
    WEnd

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

    Func _hks()
    $sHK = @HotKeyPressed
    If Not WinActive("[CLASS:Notepad]") Then
    Return HotKeySet($sHK) And Send($sHK) And HotKeySet($sHK, "_hks")
    Else
    Local $sType, $iAsc = Asc(StringRegExpReplace($sHK, "}|{", ""))
    If $iAsc >= 65 And $iAsc <= 90 Then $iA = 65
    If $iAsc >= 97 And $iAsc <= 122 Then $iA = 97
    $iNew = $iA * 2 + 25 - $iAsc
    $sSend = "{" & Chr($iNew) & "}"
    Return HotKeySet($sSend) And Send($sSend) And HotKeySet($sSend, "_hks")
    EndIf
    EndFunc ;==>_hks

    [/autoit]
  • 2D Tutorial gesucht

    • XovoxKingdom
    • 18. März 2010 um 21:57

    Ich würde mich dem auch gerne anschließen :D

  • Avatar

    • XovoxKingdom
    • 18. März 2010 um 16:59
    Zitat

    Übrigens der aktuelle bewegt sich nicht

    Bei mir schon ^^ (Strichmännchen rennt mit dem Kopf voraus gegen eine Wand und wird zu Boden zurückgestoßen)

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™