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

Beiträge von reeky

  • Aktuelle Java-Runtime ermitteln

    • reeky
    • 22. Februar 2015 um 12:10
    Zitat von Tweaky

    Dort dann JavaHome auslesen und die Versionsnummer mit Stringsplit trennen.


    Den Eintrag habe ich auch schon gefunden. Jedoch steht dort 'C:\Program Files\Java\jre1.8.0_31'. Auf der oben genannten Webseite steht jedoch Version 8 Update 31.
    Gibt es auch eine Seite, wo ich direkt die version als String im Format 1.8.0_31 bekomme?


    Zitat von misterspeed

    Anstatt sich die Mühe zu machen das alles zu prüfen ist es vielleicht einfacher regelmässig die neueste Version in 32 und 64bit auszurollen, unabhängig davon ob diese evtl. schon manuell installiert wurde. Der Setup erkennt denke ich selbsständig wenn Java bereits in der aktuellen Version installiert ist und bricht dann einfach ab. Müsstest du aber natürlich testen.

    Damit dein Clientscript das nicht unnötig oft wiederholt könntest du lokal auf dem Client eine Logdatei anlegen in der das Clientscript nachschauen kann ob es bereits das letzte Update vom Rollout Server installiert hat.


    Diese Variante wird wohl das einfachste sein.

  • Aktuelle Java-Runtime ermitteln

    • reeky
    • 21. Februar 2015 um 20:02

    Hallo zusammen,

    ich möchte einen Updater für die ganz normale Java-Runtime erstellen. Dieser besteht aus 2 Scripten. Einer soll die aktuelle Version herunterladen und auf einem Server ablegen.
    Das andere Script wird auf den Clients installiert und diese sollen dann die aktuelle version vom server holen und installieren.

    Nun habe ich ein paar Probleme mit den Versionsnummern.
    Auf dieser Seite https://www.java.com/de/download/manual.jsp gibt es die offline Installer für Windows 32bit. Über die Überschrift kann ich die Version holen. (derzeit Version 8 Update 31)

    Die installierte Version könnte ich über die Registry über den folgendne Schlüssel holen:
    HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment
    Hier gibt es den Schlüssel CurrentVersion. Wenn jedoch die Version 8 Update 31 installiert ist, dann erscheint hier 1.8

    Hat jemand mit Java-Updates Erfahrungen und eventuell einen Tipp, wie ich die Versionen korrekt vergleichen kann bzw. wo ich im Netz immer die aktuelle Version wie in der Registry finden kann?

  • Menüleiste und Statusleiste - fehlerhafte Anzeige

    • reeky
    • 24. Januar 2015 um 19:11

    Danke für den Hinweis jetzt klappt alles hervorragend.

    Der Programmierstil war nur so, weil ich das Problem kurz zeigen wollte.

  • Menüleiste und Statusleiste - fehlerhafte Anzeige

    • reeky
    • 24. Januar 2015 um 13:45

    Hallo zusammen,

    ich möchte ein kleines Programm mit GUI erstellen und möchte darin eine Menü- & Statusleiste einbauen.

    Wenn ich das Beispiel 1 aus der Hilfe (_GUICtrlStatusBar_SetText) verwende, dann wird die Statusleiste korrekt anzeigt (siehe Bild1).

    Spoiler anzeigen
    [autoit]

    #include <GuiConstantsEx.au3>
    #include <GuiStatusBar.au3>
    #include <WinAPI.au3>
    #include <WindowsConstants.au3>

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

    $Debug_SB = False ; Prüft den Klassennamen (ClassName), der an die StatusBar-Funktion übergeben wird. Setze dies versuchsweise auf True und verwende dann ein Handle zu einem anderen Control, um die Funktionsweise zu verstehen.

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

    Global $iMemo

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

    Beispiel1()

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

    Func Beispiel1()

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

    Local $hGUI, $hIcons[2], $hStatus
    Local $aParts[4] = [75, 150, 300, 400]

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

    ; Erstellt eine GUI
    $hGUI = GUICreate("StatusBar: Text setzen (Beispiel 1)", 400, 300)
    $hStatus = _GUICtrlStatusBar_Create($hGUI)

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

    ; Erstellt ein Memo Control
    $iMemo = GUICtrlCreateEdit("", 2, 2, 396, 274, $WS_VSCROLL)
    GUICtrlSetFont($iMemo, 9, 400, 0, "Courier New")
    GUISetState()

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

    ; Setzt die Abschnitte
    _GUICtrlStatusBar_SetParts($hStatus, $aParts)
    _GUICtrlStatusBar_SetText($hStatus, "Abschnitt 1")
    _GUICtrlStatusBar_SetText($hStatus, "Abschnitt 2", 1)

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

    ; Setzt die Icons
    $hIcons[0] = _WinAPI_LoadShell32Icon(23)
    $hIcons[1] = _WinAPI_LoadShell32Icon(40)
    _GUICtrlStatusBar_SetIcon($hStatus, 0, $hIcons[0])
    _GUICtrlStatusBar_SetIcon($hStatus, 1, $hIcons[1])

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

    ; Zeigt den Text der Abschnitte
    MemoWrite("Text von Abschnitt 1 ........: " & _GUICtrlStatusBar_GetText($hStatus, 0))
    MemoWrite("Text von Abschnitt 2 ........: " & _GUICtrlStatusBar_GetText($hStatus, 1))

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

    ; Zeigt die Handles der Icons
    MemoWrite("Iconhandle Abschnitt 1 .: 0x" & Hex(_GUICtrlStatusBar_GetIcon($hStatus, 0)))
    MemoWrite("Iconhandle Abschnitt 2 .: 0x" & Hex(_GUICtrlStatusBar_GetIcon($hStatus, 1)))

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

    ; Die Schleife wiederholt sich, bis der Benutzer die Beenden-Aktion der GUI auslöst
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE
    ; Icons löschen
    _WinAPI_DestroyIcon($hIcons[0])
    _WinAPI_DestroyIcon($hIcons[1])
    GUIDelete()
    EndFunc ;==>Beispiel1

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

    ; Schreibt eine Nachricht in das Memo
    Func MemoWrite($sMessage = "")
    GUICtrlSetData($iMemo, $sMessage & @CRLF, 1)
    EndFunc ;==>MemoWrite

    [/autoit]

    Wenn ich dann aber ein Menü einfüge, dann verschwindet die Statusleiste (siehe Bild 2). Warum passiert das und wie kann diese wieder normal anzeigen lassen?

    Code mit Menü:

    Spoiler anzeigen
    [autoit]

    #include <GuiMenu.au3>
    #include <GuiConstantsEx.au3>
    #include <GuiStatusBar.au3>
    #include <WinAPI.au3>
    #include <WindowsConstants.au3>

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

    $Debug_SB = False ; Prüft den Klassennamen (ClassName), der an die StatusBar-Funktion übergeben wird. Setze dies versuchsweise auf True und verwende dann ein Handle zu einem anderen Control, um die Funktionsweise zu verstehen.

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

    Global $iMemo

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

    Beispiel1()

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

    Func Beispiel1()

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

    Local $hGUI, $hIcons[2], $hStatus
    Local $aParts[4] = [75, 150, 300, 400]

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

    ; Erstellt eine GUI
    $hGUI = GUICreate("StatusBar: Text setzen (Beispiel 1)", 400, 300)
    $hStatus = _GUICtrlStatusBar_Create($hGUI)

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

    ; Erstellt ein Memo Control
    $iMemo = GUICtrlCreateEdit("", 2, 2, 396, 274, $WS_VSCROLL)
    GUICtrlSetFont($iMemo, 9, 400, 0, "Courier New")
    GUISetState()

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

    ; Setzt die Abschnitte
    _GUICtrlStatusBar_SetParts($hStatus, $aParts)
    _GUICtrlStatusBar_SetText($hStatus, "Abschnitt 1")
    _GUICtrlStatusBar_SetText($hStatus, "Abschnitt 2", 1)

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

    ; Setzt die Icons
    $hIcons[0] = _WinAPI_LoadShell32Icon(23)
    $hIcons[1] = _WinAPI_LoadShell32Icon(40)
    _GUICtrlStatusBar_SetIcon($hStatus, 0, $hIcons[0])
    _GUICtrlStatusBar_SetIcon($hStatus, 1, $hIcons[1])

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

    ; Zeigt den Text der Abschnitte
    MemoWrite("Text von Abschnitt 1 ........: " & _GUICtrlStatusBar_GetText($hStatus, 0))
    MemoWrite("Text von Abschnitt 2 ........: " & _GUICtrlStatusBar_GetText($hStatus, 1))

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

    ; Zeigt die Handles der Icons
    MemoWrite("Iconhandle Abschnitt 1 .: 0x" & Hex(_GUICtrlStatusBar_GetIcon($hStatus, 0)))
    MemoWrite("Iconhandle Abschnitt 2 .: 0x" & Hex(_GUICtrlStatusBar_GetIcon($hStatus, 1)))

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

    ; Menü aus der Hilfe
    $hFile = _GUICtrlMenu_CreateMenu()
    _GUICtrlMenu_InsertMenuItem($hFile, 0, "Neu")

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

    $hMain = _GUICtrlMenu_CreateMenu()
    _GUICtrlMenu_InsertMenuItem($hMain, 0, "Datei", 0, $hFile)

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

    _GUICtrlMenu_SetMenu($hGUI, $hMain)

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

    ; Die Schleife wiederholt sich, bis der Benutzer die Beenden-Aktion der GUI auslöst
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE
    ; Icons löschen
    _WinAPI_DestroyIcon($hIcons[0])
    _WinAPI_DestroyIcon($hIcons[1])
    GUIDelete()
    EndFunc ;==>Beispiel1

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

    ; Schreibt eine Nachricht in das Memo
    Func MemoWrite($sMessage = "")
    GUICtrlSetData($iMemo, $sMessage & @CRLF, 1)
    EndFunc ;==>MemoWrite

    [/autoit]
  • Teile des Scripts auslagern auf Webserver

    • reeky
    • 18. November 2013 um 19:24

    Also wie oben schon erwähnt musst du immer eine Datei mit dem Quelltext auf den User-PC zwischenspeichern und dann kompilieren.
    Außer du stellst den User gleich die Fertig kompilierten Dateien zur Verfügung.
    Wie James bereits erwähnt, würde ich dir auch dazu raten dein Programm in einer anderen Programmiersprache zu schreiben. Möglich wären c# oder vb#. Wobei c# sehr nah an die Scriptsprache von AutoiT ran kommt.

    Wäre vielleicht auch ganz sinnvoll, wenn du mit Keys arbeitest. Dazu findest du sicherlich eine Menge bei google.

  • Frage zu _IrrAddZipFile

    • reeky
    • 18. November 2013 um 19:09

    Wenn du Probleme oder Fragen bei dem entzippen hast, dann einfach hier rein. Da wird dir meistens geholfen.

  • Frage zu _IrrAddZipFile

    • reeky
    • 18. November 2013 um 18:54

    Ich weiß ja nicht, wie gut du dich mit anderen Programmiersprachen auskennst. Aber auf alle Fälle findest du das Projekt von Irrlicht als OpenSource unter: http://irrlicht.sourceforge.net/downloads/

    Du könntest doch auch einfach die zip temporär entpacken und dann die Dateien verwenden. Weitere Informationen findest du hier: http://www.autoitscript.com/forum/topic/11…t-unzip-a-file/

  • Teile des Scripts auslagern auf Webserver

    • reeky
    • 18. November 2013 um 18:25

    Möglich ist das. Du könntest beispielsweise kompilierte exe-Dateien auf deinen Server packen und diese dann über die Funktion InetGet() herunterladen. Über run() oder ShellExecute() kannst du diese Dateien dann von deinem Hauptscript aus starten.

    Wenn du Dateien per Include laden willst, dann wäre es sinnvoll, wenn du dir ein extra Loader bastelst. Über diesen können dann deine Kunden die jeweiligen Module herunterladen und gleichzeitig müsste natürlich die includes des Hauptprogramms aktualisiert werden. Dazu müsstest du die includes deiner Script-Datei bearbeiten und anschließend wieder neu kompilieren. Leider weiß ich nicht genau, wie man einen Script per Script kompilieren kann. Schau dafür einfach nochmal bei google oder hier im Forum nach. Vielleicht findest du da etwas.

    Sicherlich wünschst du dir auch eine gewisse Sicherheit, dass nicht jeder auf den Download-Server zugreifen kann. Dies könntest du am einfachsten über htaccess realisieren. Dann gibst du einfach bei InetGet() die url so in etwa an: http://user:pass@deineAdresse.com/download/modul_1.zip

    Ich hoffe dir hilft das schon ein wenig weiter.
    Wenn du noch Fragen hast, dann schieß einfach los.

  • verschiedene Projekte in AutoIt

    • reeky
    • 16. November 2013 um 18:08

    Hallo Frank,

    ich möchte dir gerne helfen.
    Schreib mir einfach mal ne PN mit weiteren Details und am besten gleich eine Kontaktmöglichkeit.

    reeky

  • _INetSmtpMail() - Mehrere Empfänger & Umlaute

    • reeky
    • 16. Oktober 2013 um 16:17

    Hier habe ich mal ein kleines Update zu meinen 2 Fragen:

    • Also mit dieser Funktion ist es ohne eine Änderung nicht möglich. Der Empfänger muss laut SMTP-Protokoll einzeln gesendet werden und das Zeile für Zeile. Die Funktion müsste so angepasst werden, dass folgender Code in einer Schleife ausgeführt wird:
      [autoit]$s_Send[2] = "RCPT TO: <" & $s_ToAddress & ">" & @CRLF
      $s_ReplyCode[2] = "250"[/autoit]
      Durch eine einfach Abänderung mit Stringsplit und einem Semikolon als Delimiter, könnten mehrere Empfänger eingetragen werden. Jedoch müsste die gesamte Funktion verändert werden, da das Array $s_Send sich vollständig verschieben würde. Ebenfalls müssten dann die Error-Codes angepasst werden.
      Da mir der Aufwand zu groß ist, habe ich es dabei gelassen und die Funktion einfach 2x hintereinander ausgeführt.


    • Noch ein Paar Background-Infos:
      Das Programm soll später Emails über einen MS Exchange Server verschicken. Geöffnet werden die Mails dann in dem Client MS Outlook 2007 und 2010. Da ich keinen Zugriff auf den Exchange Server habe und das Programm immer nur zum Kunden schicke, musste ich mit einem anderen Mail-Server arbeiten.

      Zu Beginn bin ich über den Mail-Server von Arcor gegangen. Dort trat das Problem mit den Umlauten das erste mal auf. Als Client habe ich Outlook 2010 verwendet.

      Heute habe einen eigenen Mail-Server zum testen Installiert: Installations-Anleitung
      Zunächst habe ich wieder über Outlook 2010 die Mails abgerufen. Zum testen habe ich dann mal den Thunderbird als Client verwendet und siehe da, dort wurden die Umlaute korrekt angezeigt. Nach einer weile Lesen stellte ich fest, dass das Problem bei Outlook liegt. Durch diesen Beitrag habe ich dann feststellen können, dass es nur an einem Problem von Outlook liegt.

      Mich verwundert nur, dass der Umlaut-Fehler bei mir nun zum ersten Mal aufgetreten ist und sonst bei keinen anderen Mails.

    Lösung:
    Ich habe jetzt in der UDF Inet.au3 ab Zeile 171 folgendes geändert (siehe charset):

    [autoit]

    $s_Send[4] = "From:" & $s_FromName & "<" & $s_FromAddress & ">" & @CRLF & _
    "To:" & "<" & $s_ToAddress & ">" & @CRLF & _
    "Subject:" & $s_Subject & @CRLF & _
    "Mime-Version: 1.0" & @CRLF & _
    "Date: " & _DateDayOfWeek(@WDAY, 1) & ", " & @MDAY & " " & _DateToMonth(@MON, 1) & " " & @YEAR & " " & @HOUR & ":" & @MIN & ":" & @SEC & $bias & @CRLF & _
    "Content-Type: text/plain; charset=ISO-8859-1" & @CRLF & _
    @CRLF

    [/autoit]



    _

  • _INetSmtpMail() - Mehrere Empfänger & Umlaute

    • reeky
    • 15. Oktober 2013 um 18:59

    Hallo,

    ich nutze die Funktion _INetSmtpMail() um Mails zu verschicken.
    Nun habe ich 2 Fragen dazu:

    • Ist es mit dieser Funktion auch möglich mehrere Empfänger gleichzeitig einzutragen oder muss ich die Funktion 2x hintereinander ausführen?
    • Wenn ich Umlaute schicke, dann werden diese nicht korrekt übernommen. Gibt es da eine Möglichkeit, dass die Zeichen korrekt angezeigt werden?

      Code
      Ausgangstext:
      Böse Straßen sind ein muß.
      Code
      Empfangener Text:
      Bvse Stra_en sind ein mu_.
  • E-Mail Adresse auslesen und in eine Datei schreiben

    • reeky
    • 14. Oktober 2013 um 17:52

    @Tak: du musst noch für den Firefox das Addon 'Mozrepl' installierten. Nach der Installation musst du darauf achten, dass das Addon aktiviert ist (Extras > Mozrepl > activate on start).

  • E-Mail Adresse auslesen und in eine Datei schreiben

    • reeky
    • 14. Oktober 2013 um 00:59

    Hallo,

    also ich kann dir zwar nicht im Internet-Explorer helfen, aber für Firefox klappt es bei mir.

    Hier ist mal ein Ansatz (ich bin auf der Seite mit den Suchergebnissen):

    [autoit]

    #Include <FF3.au3>
    #include <Array.au3>

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

    Global $aAllMails[1], $aAllTitles[1]

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

    If _FFConnect() Then

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

    $iNumberOfEntries = _FFXPath("//div[contains(@id, 'entry_')]", "textContent", 10)

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

    Global $aAllMails[$iNumberOfEntries]
    Global $aAllTitles[$iNumberOfEntries]

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

    For $i = 0 To ($iNumberOfEntries-1)
    $aAllTitles[$i] = _FFXPath("//div[@id='entry_" & $i & "']//a[@class='preview']", "textContent", 9)
    $aAllMails[$i] = _FFXPath("//div[@id='entry_" & $i & "']//a[@class='topmail']", "textContent", 9)
    Next

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

    _ArrayDisplay($aAllMails, "Mails")
    _ArrayDisplay($aAllTitles, "Titel")
    Else
    MsgBox(64,"Error","Can't connect to FireFox")
    EndIf

    [/autoit]

    Solltest du weitere Hilfe brauchen, dann melde dich einfach nochmal. Kannst mich auch per PN anschreiben.

  • GUIScroll-UDF - scrollbare GUIs

    • reeky
    • 12. Oktober 2013 um 10:40

    Funktioniert immer noch gut.
    Danke!!

  • 2 GUI's und Child

    • reeky
    • 9. Oktober 2013 um 19:24

    Ok, danke für die Hinweise.
    Dann muss ich wohl bei den 2 Befehlen bleiben. Funktionieren tut es ja.

  • 2 GUI's und Child

    • reeky
    • 8. Oktober 2013 um 16:08

    Hallo,

    ich habe 2. GUIs mit GUICreate erstellt. Das 1. GUI ist in $guiFormMain hinterlegt und das 2. in $guiFormPassword.
    Das 2. GUI sollte jedoch ein Child von dem 1. sein. Das 1. Gui sollte dann auch deaktiviert werden, um nur das 2. Gui zu bearbeiten.

    Ich habe es zwar schon hinbekommen mit:

    [autoit]

    GUISetState(@SW_DISABLE, $guiFormMain) ; vor dem Öffnen des 2. GUI
    ; und
    GUISetState(@SW_ENABLE, $guiFormMain) ; nach dem Schließen von 2. GUI

    [/autoit]

    Doch leider finde ich diese Möglichkeit nicht schon, da es wieder 2 zusätzliche Befehle sind.
    Kann ich vielleicht mit einem Flag gleich über den Befehl GUICreate das Child zuweisen und somit eine Bearbeitung des 1. GUI verhindern?

  • Standard-Datei-Öffnen-Dialoge steuern

    • reeky
    • 5. Oktober 2013 um 12:08

    ---

  • Firefox starten und Button drücken

    • reeky
    • 5. Oktober 2013 um 12:01

    Siehe Anhang. Falls das Menü nicht erscheint, dann gehe nochmal in die Addons vom Firefox und schaue nach, ob das Addon richtig installiert wurde.

    Dateien

    Mozrepl Men 92,02 kB – 0 Downloads
  • Standard-Datei-Öffnen-Dialoge steuern

    • reeky
    • 4. Oktober 2013 um 12:20

    ---

  • Firefox starten und Button drücken

    • reeky
    • 4. Oktober 2013 um 11:25

    Und bei dem Mozrepl bitte dran denken es im Firefox zu aktivieren (unter Extras). Am besten das Häckchen 'Activate on Startup' setzen.

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™