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

Beiträge von McPoldy

  • No-ip.org DUC nachbauen ?

    • McPoldy
    • 21. Juni 2008 um 18:56

    So ich habe mir gedacht, ich mache es mal für no-ip.org und habe auch fleißig Kommentare in das Script gehämmert.

    Spoiler anzeigen
    [autoit]


    #NoTrayIcon ; <-- Kein Trayicon anzeigen
    #cs ----------------------------------------------------------------------------

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

    AutoIt Version: 3.2.12.0
    Author: McPoldy

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

    Script Function:
    Diese Script soll prüfen ob unsere derzeitige IP (z.B. der Zuhause) mit
    der IP bei http://www.no-ip.org übereinstimmt.
    Folgende Schritte sind dazu nötig:
    1. Prüfen welche IP aktuell bei no-ip.org hinterlegt ist
    2. Prüfen welche IP aktuell bei uns als öffentliche IP da ist
    3. Ggf. die IP auf no-ip.org updaten.

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

    #ce ----------------------------------------------------------------------------

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

    ; Includes
    #include <IE.au3>
    #include <Inet.au3>
    #include <file.au3>
    #Include <Constants.au3>
    #include <GUIConstants.au3>
    #include <WindowsConstants.au3>
    ; <-- ENDE

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

    ; Optionen
    Opt("TrayMenuMode",1)
    Opt("TrayOnEventMode",1)
    ; <-- ENDE

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

    ; Konstanten
    Const $bolRunEndless = True ; <-- Soll das Skript ständig laufen
    Const $intIntervall = 15 ; <-- Alle wieviel Minuten soll geprüft werden
    Const $bolLog = True ; <-- Soll eine Logdatei erstellt werden
    Const $strLogFile = @ScriptDir & '\ipudater.log' ; <-- Pfad zum Logfile
    ; <-- ENDE

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

    ; Zugangsdaten zu no-ip.org
    Local $strUser = 'xxxxxxxxxxxxxxxxxxxxxxxx' ; <-- Anmeldename bei No-IP.org
    Local $strPwd = 'xxxxx' ; <-- Unser Passwort
    Local $strDomain = 'xxxxxxxxxxxxxxxx' ; <-- Unsere Domain bei No-IP.org
    ; <-- ENDE

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

    ; Dekleration allgemeiner Variablen
    Local $strUpdateUrl = '' ; <-- Hier wird nachher die URL gespeichert, die wir benötigen um unsere IP zu aktualisieren
    Local $strLocalIP = '' ; <-- Hier wird unsere derzeitige lokale (vom ISP zugewiesene) IP gespeichert
    Local $strRemoteIP = '' ; <-- Hier wird unsere derzeitige remote (bei No-IP hinterlegte) IP gespeichert
    Local $strLastCheck = '' ; <-- Hier wird gespeichert wann das letzte mal geprüft wurde
    ; <-- ENDE

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

    ; Allgemeiner Teil
    _Log("Programm gestartet") ; <-- Programm gestartet Log Eintrag
    _GetIPs() ; <-- Hole IP`s

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

    If $bolRunEndless Then ; <-- Prüfe ob Endlosbetrieb aktiv ist
    _CreateTray() ; <-- Tray Menü anzeigen
    AdlibEnable("_Main",(1000 * 60 * $intIntervall)) ; <-- Setze Adlib mit angabe der Minuten in der geprüfter werden soll
    While 1
    Sleep(200)
    WEnd
    Else ; <-- Wenn nur einmal ausgeführt werden soll dann mache hier weiter
    _Main()
    _Exit()
    EndIf
    ; <-- ENDE

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

    ; Die Hauptfunktion die in bestimmten Abständen aufgerufen wird
    Func _Main()
    _getIps() ; <-- Hole aktuelle IP`s
    If $strLocalIP <> $strRemoteIP Then _Update($strLocalIP) ; <-- Falls die IP`s unterschiedlich sind führe ein Update aus
    EndFunc
    ; <-- ENDE

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

    ; Tray-Menü Erstellung
    Func _CreateTray()
    $infoitem = TrayCreateItem("Info Anzeige")
    TrayItemSetOnEvent(-1,"_ShowInfo")
    $logitem = TrayCreateItem("Log Anzeige")
    TrayItemSetOnEvent(-1,"_openLog")
    TrayCreateItem("")
    $exititem = TrayCreateItem("Exit")
    TrayItemSetOnEvent(-1,"_Exit")
    TraySetState()
    TraySetClick(3)
    EndFunc
    ; <--Ende

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

    ; Hier werden die beiden IP`s geholt
    Func _getIPs()
    TCPStartup() ; <-- TCP starten, wird für TCPNameToIP benötigt
    $strLocalIP = _GetIP() ; <-- Unsere vom ISP zugewiesene IP
    _Log("Folgende lokale IP wurde ermittelt: " & $strLocalIP)
    $strRemoteIP = TCPNameToIP($strDomain) ; <-- Unsere IP bei No-IP
    _Log("Folgende remote IP wurde ermittelt: " & $strLocalIP)
    TCPShutdown() ; <-- TCP wieder stoppen
    EndFunc
    ; <-- ENDE

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

    ; Hier wird das Update durchgeführt
    Func _Update($Ip,$User = $strUser,$Pwd = $strPwd,$Domain = $strDomain)
    _Log("Update wurde gestartet....")
    $strUpdateUrl = StringFormat('http://dynupdate.no-ip.com/dns?username=%s&password=%s&hostname=%s&ip=%s',$User,$Pwd,$Domain,$Ip) ; <-- Unsere Update URL
    $oIE = _IECreate ($strUpdateUrl)
    If _IEBodyReadText($oIE) = StringFormat("%s:0",$strDomain) Or _IEBodyReadText($oIE) = StringFormat("%s:1",$strDomain) Then
    _Log("Update erfolgreich")
    Else
    _Log("Update NICHT erfolgreich")
    EndIf
    EndFunc
    ; <-- ENDE

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

    ; Hier wird das Logfile geschrieben
    Func _Log($text)
    If $bolLog Then ; <-- Soll geloggt werden, siehe Konstanten
    $strLastCheck = StringFormat("%04d.%02d.%02d - %02d:%02d:%02d",@YEAR,@MON,@MDAY,@HOUR,@MIN,@SEC) ; <-- Aktuelles Datum
    _FileWriteLog($strLogFile,$text,0) ; <-- Schreiben der Log Datei
    EndIf
    EndFunc
    ; <-- ENDE

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

    ; Logdatei im Default Texteditor öffnen
    Func _openLog()
    ShellExecute($strLogFile)
    EndFunc
    ; <-- ENDE

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

    ; Fenster für Infoanzeige
    Func _ShowInfo()
    #Region ### START Koda GUI section ### Form=C:\Dokumente und Einstellungen\Jens\Desktop\ipupdater.kxf
    $frmMain = GUICreate("frmMain", 520, 114, -1, -1, BitOR($WS_POPUP,$WS_CLIPSIBLINGS))
    GUISetBkColor(0x9DB9EB)
    $lblLine01 = GUICtrlCreateLabel("", 0, 24, 520, 2)
    GUICtrlSetBkColor(-1, 0x000000)
    $lblTitel = GUICtrlCreateLabel("STATUS - Übersicht IP Updater", 180, 4, 204, 17)
    GUICtrlSetFont(-1, 8, 800, 4, "Verdana")
    $lblLokalIP = GUICtrlCreateLabel("Lokale IP: " & $strLocalIP, 25, 38, 240, 17)
    GUICtrlSetFont(-1, 12, 800, 0, "MS Sans Serif")
    $lblRemoteIP = GUICtrlCreateLabel("Remote IP: " & $strRemoteIP, 275, 38, 240, 25)
    GUICtrlSetFont(-1, 12, 800, 0, "MS Sans Serif")
    $lblLine02 = GUICtrlCreateLabel("", 0, 70, 520, 2)
    GUICtrlSetBkColor(-1, 0x000000)
    $lblLastCheck = GUICtrlCreateLabel("Letzte Prüfung: " & $strLastCheck, 100, 78, 312, 25)
    GUICtrlSetFont(-1, 12, 800, 0, "MS Sans Serif")
    $lblLine03 = GUICtrlCreateLabel("lblLine03", 0, 111, 520, 2)
    GUICtrlSetBkColor(-1, 0x000000)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    GUIDelete($frmMain)
    ExitLoop
    EndSwitch
    WEnd
    EndFunc
    ; <-- ENDE

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

    ; Diese Funktion wird beim beenden des Scripts ausgeführt
    Func _Exit()
    If $bolRunEndless Then AdlibDisable() ; <-- Falls Entlosbetrieb, wird Adlib deaktiviert
    _Log("Letze eigene IP: " & $strLocalIP) ; <-- Abschliessende Log Einträge
    _Log("Letze remote IP: " & $strRemoteIP) ; <-- Abschliessende Log Einträge
    _Log("Zuletzt geprüft: " & $strLastCheck) ; <-- Abschliessende Log Einträge
    _Log("Programm wird nun beendet.") ; <-- Abschliessende Log Einträge
    Exit 0
    EndFunc

    [/autoit]
  • No-ip.org DUC nachbauen ?

    • McPoldy
    • 21. Juni 2008 um 13:02

    Das sollte keine Problem darstellen, bei no-ip.org bzw. bei dyndns.com kann man über eine URL seinen Account updaten. Ich bastele mal was zusammen, mal schauen was bei rum kommt :)

  • PC Fernwartung

    • McPoldy
    • 20. Juni 2008 um 23:02

    Also bei TeamViewer wird wenn der RemotePc eine geringere Auflösung hat das ganz normal angezeigt, die Seitenverhältnisse passen, wie es aussieht wenn es andersherum ist kann ich leider nicht sagen aber ich meine es wird runter skaliert. Monitor und Grafikkarte nehmen keinen Schaden, das hätte zwar was aber ich glaube dann könnten die Remote Hersteller sich vor Klagen kaum retten :)

  • Aktuelle Sound Position

    • McPoldy
    • 20. Juni 2008 um 21:36

    Mal versuchen zu erklären, wenn Du sleep(1000) in der while Schleife setzen würdest, würde dein Script solange still stehen, währen wenn du Adlib nimmst dein Script weiter läuft (was ja gut ist wenn du man nen Butten anklicken willst) und dein Skript pausiert nicht, sprich die while Schliefe läuft weiter. Wenn ich es richtig in Erinnerung habe pausiert dein Skirpt nur bei der Ausführung der Funktion die Adlib aufruft, was ja nicht lange ist.

    Hoffe das ist so richtig, sonst wird BugFix mich bestimmt gerne berichtigen :)

  • Aktuelle Sound Position

    • McPoldy
    • 20. Juni 2008 um 21:21

    Mein Vorschlag:

    Eine Funktion:

    [autoit]


    Func _pos()
    $pos = _SoundPos($sound, 1)
    EndFunc

    [/autoit]

    Und bei Start-Button:

    [autoit]

    AdlibEnable("_pos",1000)

    [/autoit]

    Und bei Stop-Button:

    [autoit]

    AdlibDisable()

    [/autoit]
  • PC Fernwartung

    • McPoldy
    • 20. Juni 2008 um 21:10

    ja habe auch noch mal geschaut, es war eine alte Version, da hatte man eine Laufzeitbeschränkung, aber ich habe das vergnügen der Vollversion. Also meine Infos waren veraltet.

  • Control ID ändert sich ständig

    • McPoldy
    • 20. Juni 2008 um 15:26

    So geht es auch:

    Spoiler anzeigen
    [autoit]

    ;Code Entfernt

    [/autoit]

    Würde es aber auch kaufen :)

    Edit GtaSpider: Auch hier Code entfernt

  • PC Fernwartung

    • McPoldy
    • 20. Juni 2008 um 07:27

    Da ich zufällig beides benutze, hier meine Meinung:

    TeamViewer:
    Ist 1. teuer will man es kaufen, für kurze Sachen, sagen wir mal schnell mal nen Programm installieren oder sowas ist es ideal. Es gibt auch eine USB Version also auch ganz nett.

    LogMeIn:
    Benutze ich nun schon glaube ich seit ca. 1,5 - 2 Jahren, ich habe es zum Teil bei Kunden installiert und bei vielen Freunden auch. Der Vorteil ist ganz einfach, der User muss nichts machen außer mich anzurufen, ich komme rauf und kann arbeiten, sollte doch mal ein Neustart vom PC nötig sein, egal komme ja wieder rauf. Man muss ganz klar sagen, das gegenüber muss dir entweder vertrauen, das logmein deaktivieren wenn du nichts machen sollst oder es muss so eingerichtet sein das es über einen User läuft, was aber dumm ist wenn du nicht die Daten hast.

    Fazit:
    TeamViewer würde ich für gelegentliche Einsätze nehmen, da es auch eine monatliche Begrenzung gibt, sollte man ständig auf dem Rechner des Bekannten/Verwanten/Kunden zu tun haben ist Logmein als kostenlose Lösung top.

  • Hilfe Videos

    • McPoldy
    • 19. Juni 2008 um 21:03

    Nachtrag zu FileDownload (siehe Post 1):
    Skript noch mal abgetippt und hinzugefügt.

  • Werte an Eingabeaufforderung senden

    • McPoldy
    • 14. Juni 2008 um 18:56

    Meinst du ungefähr sowas?

    [autoit]

    $str_IpHost = "www.google.de"
    ShellExecuteWait("ping.exe", $str_IpHost)
    sleep(2500)
    $str_IpHost = "127.0.0.1"
    ShellExecuteWait("ping.exe", $str_IpHost)

    [/autoit]
  • Hilfe bei Do ... Until bitte

    • McPoldy
    • 14. Juni 2008 um 13:17

    Ich habe auch noch ein Beispiel gebastelt, habe auch etwas Kommentar mit rein geschrieben.

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <array.au3>

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

    #Region ### START Koda GUI section ### Form=
    $frm_Main = GUICreate("Dicke Kartoffeln", 268, 130, 467, 293)
    GUISetBkColor(0x648BCB)
    $inp_Anzahl = GUICtrlCreateInput("", 120, 40, 121, 21)
    $lbl_Anzahl = GUICtrlCreateLabel("Spieleranzahl: ", 40, 43, 79, 17)
    GUICtrlSetBkColor(-1, 0x648BCB)
    $btn_Schliessen = GUICtrlCreateButton("Schließen", 145, 65, 70, 20)
    $btn_Bestaetigen = GUICtrlCreateButton("Bestätigen", 65, 65, 70, 20)
    $btn_Anzeigen = GUICtrlCreateButton("Spieler anzeigen", 100, 90, 90, 20)
    GUICtrlSetState(-1,$GUI_DISABLE)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    Dim $int_anzahl = 0 ;Anzahl der eigebenen Spieler
    Dim $arr_namen[1] ;Array für die Spielernamen

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $btn_Schliessen
    Exit
    Case $btn_Bestaetigen
    $int_anzahl = GUICtrlRead($inp_Anzahl)
    GUISetState(@SW_HIDE) ;Verstecken von dem Hauptfenster
    For $x = 1 To $int_anzahl ;Schleife, wird so oft durchlaufen wie Anzahl eingetragen wurde
    _AbfrageNamen($x) ;Aufruf der Funktion zum Abfragen der Spielernamen
    Next
    GUICtrlSetState($btn_Anzeigen,$GUI_ENABLE) ;Hier wird der Button aktiviert um sich die eingegbenen Spielernamen anzueigen zu lassen
    GUISetState(@SW_SHOW) ;Anzeigen vom Hauptfenster
    Case $btn_Anzeigen
    _SpielerAnzeigen() ;Anzeigen welche Spielernamen eingetragen wurden.
    EndSwitch
    WEnd

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

    Func _SpielerAnzeigen() ;Funktion zum anzeigen der Spielernamen
    #cs
    Es wird hier eine Schleife durchlaufen, sie gibt mit hilfe von
    der StringFormat Funktion die einzelen Spielernamen aus.
    #ce
    For $x = 1 To UBound($arr_namen) -1
    MsgBox(64,'Spieler',StringFormat('Spieler %s: %s',$x,$arr_namen[$x]))
    Next
    EndFunc

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

    Func _AbfrageNamen($Spielernummer) ;Funktion zur eingabe der Spielernamen

    Dim $str_Lable = StringFormat("Name Spieler %s",$Spielernummer) ;Hier wird das Label zusammen gebaut: Name Spieler 1, Name Spieler 2, .....
    ;Die aktuelle Spielernummer wird beim Aufruf mit übergeben.

    #Region ### START Koda GUI section ### Form=
    $Form2 = GUICreate("Dicke Eier", 289, 129, 214, 129)
    GUISetBkColor(0x648BCB)
    $Input2 = GUICtrlCreateInput("", 112, 40, 145, 21)
    $Button2 = GUICtrlCreateButton("Bestätigen", 152, 80, 75, 25, 0)
    $Label2 = GUICtrlCreateLabel($str_Lable, 16, 40, 76, 17)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    GUIDelete($Form2)
    ExitLoop
    Case $Button2
    _ArrayAdd($arr_namen,GUICtrlRead($Input2)) ;Dem Array wird ein Spielername hinzugefügt.
    GUIDelete($Form2)
    ExitLoop
    EndSwitch
    WEnd
    EndFunc

    [/autoit]
  • Datei sortierenen und neu schreiben

    • McPoldy
    • 7. Juni 2008 um 17:01

    Hallo,

    es wäre gut wenn du den Quellcode posten würdest wo es NICHT geht und nicht den wo es geht :)

  • Hilfe Videos

    • McPoldy
    • 4. Juni 2008 um 07:38

    Oder Camtasia Studio: schaust du :)

  • Hilfe Videos

    • McPoldy
    • 1. Juni 2008 um 23:07

    Neues Video siehe oben :)

  • Script mit Tastenenkombination Text Erstellen?

    • McPoldy
    • 18. Mai 2008 um 10:28

    Moin,

    also HotKeySet setzt sich aus einer Tastenkombination und einer Funktion zusammen, sprich bei deinen Skript wäre F10 = Aufruf von Funktion Start.
    HotKeySet ( "STRG 1" ) geht also gar nicht, das müsste sowas sein wie HotKeySet ( "^1","SchreibeText" ) damit bei STRG+1 die Funktion SchreibeText aufgerufen wird.
    Send("{down}") und Send("{up}") bedeuten nicht Taste drücken und loslassen sondern Pfeiltaste runter und hoch.
    Sleep(1) ist eine Pause von einer ms, die Eingabegeschwindigkeit wird über Opt gesteuert (siehe Hilfe).
    send ("99000") Das sendet 99000 an das derzeit aktive Fenster.

    Zu deinem Vorhaben, schau dir erst mal in der Hilfe oder hier im Forum Skripte mit Funktionen und HotKeySet an und die Sachen die ich oben geschrieben habe, damit solltest du schon ein gutes Stückchen weiter kommen. Wenn dann noch Fragen sind, immer posten :)

    EDIT: Warum ist der BugFix IMMER schneller :(, nebenbei Glückwunsch zum 2.000 Posting :)

  • Aufruf an alle, die sich gut mit PHP/MySQL auskennen und am System mitarbeiten wollen

    • McPoldy
    • 18. Mai 2008 um 00:01

    Nabend,

    Erfahrung ist wohl da, und nen Server hab ich wohl auch noch rumfliegen :) wenn du sonst keinen findest, sag bescheid.

  • _IEAction Aktualisieren

    • McPoldy
    • 13. Mai 2008 um 13:39

    Kannste Beispielcode posten bitte?

  • ftp upload problem

    • McPoldy
    • 13. Mai 2008 um 13:32

    Geht bei mir auch nicht, der selbe Fehler habe die ftp.au3 von hier probiert.

  • Dynamische Funktionen ? Heisst das so :)

    • McPoldy
    • 13. Mai 2008 um 12:31

    Falsch

    [autoit]


    Func PRG(EinPlan)
    MsgBox(0,"","Einplan")
    EndFunc

    [/autoit]

    Richtig

    [autoit]


    Func PRG($EinPlan)
    MsgBox(0,"",$EinPlan)
    EndFunc

    [/autoit]

    In die Klammer bei der Funktion gehört eine Variable, die hatteste nicht, dann kannst du in der Funktion natürlich auf auf diese zugreifen.

  • _IEAction Aktualisieren

    • McPoldy
    • 13. Mai 2008 um 12:28

    Du meinst glaub ich GUICtrlSetResizing() hier ein Beispiel:


    Spoiler anzeigen
    [autoit]


    #include <GUIConstants.au3>
    #include <IE.au3>

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

    _IEErrorHandlerRegister ()

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

    $oIE = _IECreateEmbedded ()
    GUICreate("Embedded Web control Test", 640, 580, _
    (@DesktopWidth - 640) / 2, (@DesktopHeight - 580) / 2, _
    $WS_OVERLAPPEDWINDOW + $WS_VISIBLE + $WS_CLIPSIBLINGS)
    $GUIActiveX = GUICtrlCreateObj($oIE, 10, 40, 600, 360)

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

    GUICtrlSetResizing(-1, $GUI_DOCKLEFT+$GUI_DOCKRIGHT+$GUI_DOCKTOP+$GUI_DOCKBOTTOM+$GUI_DOCKHCENTER+$GUI_DOCKVCENTER+$GUI_DOCKWIDTH+$GUI_DOCKHEIGHT) ; Das meinste wohl

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

    GUISetState() ;Show GUI

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

    _IENavigate ($oIE, "http://www.autoit.de")

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

    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    ExitLoop
    EndSelect
    WEnd

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

    GUIDelete()

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

    Exit

    [/autoit]

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™