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

Beiträge von Andy

  • Strings vergleichen

    • Andy
    • 22. September 2009 um 16:20
    Zitat

    nur ist der Rückgabewert überraschend.
    Bei: $Str1 = '0123456789' & $Str2 = '012345678X' sind es 0,9, also 10%

    Nein, genau so muss es sein, ich war auch erst auf dem falschen Dampfer...
    Wenn 10% des Strings ausgetauscht werden, dann ist der String gleich, so in etwa....

    Für das Beispiel

    [autoit]

    $Str1 = '"Sweet About Me":Gabriella Cilmi'
    $Str2 = 'Gabriella Cilmi: "Sweet About Me"'

    [/autoit]

    ist dieser Vergleich denkbar ungeeignet, da bei Levenshtein ja die einzelnen Buchstaben der Strings miteinander verglichen werden.

    Man müsste also die einzelnen Wörter extrahieren und miteinander vergleichen...

  • Strings vergleichen

    • Andy
    • 22. September 2009 um 16:15

    ...wenn man nicht richtig guckt...^^
    Bernds DLL rechnet völlig richtig, das Ergebnis ist korrekt, wird allerdings in der Funktion durch das

    [autoit]

    ($n - $arDLL[0]) / $n

    [/autoit]

    nochmal "umgedreht". Der Grund erschliesst sich mir nicht....

  • Strings vergleichen

    • Andy
    • 22. September 2009 um 16:02

    Hi,
    je kleiner der "Abstand" der Levenshtein-Distanz ist (schaut mal bei dem Wikipedia-Link um was es überhaupt geht!), desto ähnlicher sind die Strings. Bei völliger Gleichheit gibt es keinen Abstand, daher ist der Abstand Null!
    Also, "je näher Null, desto besser"^^
    ciao
    Andy
    *edit* habe gerade mal Bernds DLL getestet, da bekommt man als Ergebnis für die vollständige Übereinstimmung 1 und bei völliger Ungleichheit die 0 ;(

  • Strings vergleichen

    • Andy
    • 22. September 2009 um 15:50

    Hi,
    es gibt einen Levenshtein-Algorithmusfür den Vergleich zweier Zeichenketten.
    Aber bei dir sieht es eher nach der Häufigkeit der vorkommenden einzelnen Wörter aus.
    Irgendwo hatte ich mal etwas ähnliches...
    *alteDiskettendurchstöbernd*
    Andy

  • 2D-Spiel-Hilfe

    • Andy
    • 22. September 2009 um 08:58

    Hallo,
    2D Sidescrolling ist auch "smooth" kein Thema. Die Technik ist ziemlich simpel. Du hast den Hintergrund und die Spielfiguren als Sprites. Die Technik benötigt keine besondere Hardware. Schau doch mal hier im Forum, in der letzten Woche wurden einige Scripte zu diesem Thema gepostet! Das "3D" Jump´n´Run mit dem Legomännchen fand ich cool^^http://www.autoit.de/index.php?page=Thread&postID=113104#post113104
    Dort wird die Irrlicht-Engine verwendet, eine weitere Möglichkeit wäre die Verwendung der Prospeed.dll von Frank Abbing, welcher auf seiner HP auch einige Techniken zur Spieleprogrammierung/Sprites/Scrolling erklärt.
    ciao
    Andy

  • GUI-Fenster aktualisieren

    • Andy
    • 21. September 2009 um 14:12

    so gehts, die Kommentare sollten zeigen woran es lag^^

    Spoiler anzeigen
    [autoit]

    HotKeySet ("{F5}", "_button")
    HotKeySet ("{ESC}", "_exit")

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

    #include <GUIConstantsEx.au3>
    #Include <Timers.au3>
    #include <Date.au3>
    #Include <GuiStatusBar.au3>
    #include <StaticConstants.au3>
    #include <DateTimeConstants.au3>
    #include <WindowsConstants.au3>

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

    Opt ("CaretCoordMode", 1)
    Opt ("ExpandEnvStrings", 0)
    Opt ("ExpandVarStrings", 0)
    Opt ("FtpBinaryMode", 1)
    Opt ("GUICloseOnESC", 1)
    Opt ("GUICoordMode", 1)
    Opt ("GUIDataSeparatorChar","|")
    Opt ("GUIOnEventMode", 0)
    Opt ("GUIResizeMode", 0)
    Opt ("GUIEventOptions",0)
    Opt ("MouseClickDelay", 10)
    Opt ("MouseClickDownDelay", 10)
    Opt ("MouseClickDragDelay", 250)
    Opt ("MouseCoordMode", 1)
    Opt ("MustDeclareVars", 0)
    Opt ("OnExitFunc","OnAutoItExit")
    Opt ("PixelCoordMode", 1)
    Opt ("SendAttachMode", 0)
    Opt ("SendCapslockMode", 1)
    Opt ("SendKeyDelay", 5)
    Opt ("SendKeyDownDelay", 5)
    Opt ("TCPTimeout",100)
    Opt ("TrayAutoPause",0)
    Opt ("TrayIconDebug", 0)
    Opt ("TrayIconHide", 0)
    Opt ("TrayMenuMode",1)
    Opt ("TrayOnEventMode",0)
    Opt ("WinDetectHiddenText", 0)
    Opt ("WinSearchChildren", 1)
    Opt ("WinTextMatchMode", 1)
    Opt ("WinTitleMatchMode", 1)
    Opt ("WinWaitDelay", 250)

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

    ; FileInstall

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

    $gui00001 = GUICreate ("GUI", -1, -1, -1, -1, $WS_MAXIMIZEBOX + $WS_MINIMIZEBOX + $WS_SIZEBOX + $WS_SYSMENU + $WS_CAPTION)
    GUISetCursor (3)
    GUISetBkColor (0x000000)
    GUISetState (@SW_SHOW, $gui00001)

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

    $hstatus=_GUICtrlStatusBar_Create($gui00001)
    _GUICtrlStatusBar_GetHeight($gui00001)

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

    GUICtrlCreateLabel ("Uhrzeit:", 4, 4, 40, 13)
    GUICtrlSetBkColor (-1, 0x000000)
    GUICtrlSetColor (-1, 0xFFFF00)
    $time=GUICtrlCreateLabel ("", 44, 4, 50, 13)
    GUICtrlSetBkColor (-1, 0x000000)
    GUICtrlSetColor (-1, 0xFFFFFF)
    GUICtrlCreateLabel ("Datum:", 104, 4, 40, 13)
    GUICtrlSetBkColor (-1, 0x000000)
    GUICtrlSetColor (-1, 0xFFFF00)
    GUICtrlCreateLabel (@MDAY & "." & @MON & "." & @YEAR, 144, 4, 60, 13)
    GUICtrlSetBkColor (-1, 0x000000)
    GUICtrlSetColor (-1, 0xFFFFFF)
    GUICtrlCreateLabel ("Jahrestag:", 214, 4, 60, 13)
    GUICtrlSetBkColor(-1, 0x000000)
    GUICtrlSetColor (-1, 0xFFFF00)
    GUICtrlCreateLabel (@YDAY, 274, 4, 20, 13)
    GUICtrlSetBkColor (-1, 0x000000)
    GUICtrlSetColor (-1, 0xFFFFFF)
    GUICtrlCreateLabel ("Laufzeit:", 304, 4 , 40, 13)
    GUICtrlSetBkColor (-1, 0x000000)
    GUICtrlSetColor (-1, 0xFFFF00)

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

    $laufzeit=GUICtrlCreateLabel ("", 350, 4 , 150, 13)
    GUICtrlSetBkColor (-1, 0x000000)
    GUICtrlSetColor (-1, 0xFFFFFF)

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

    GUIRegisterMsg($WM_SIZE, "WM_SIZE") ;wenn fenster vergrössert wird, statusbar anpassen

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

    Global $Secs, $Mins, $Hour, $Time

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

    ; GUICtrlCreateButton

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

    $iconmenu0001 = TrayCreateItem ("GUI-Fenster schließen")
    $iconmenu0002 = TrayCreateItem ("GUI-Fenster öffnen")
    TrayCreateItem ("")
    $iconmenu0003 = TrayCreateItem ("Information")
    $iconmenu0004 = TrayCreateItem ("Information")
    $iconmenu0005 = TrayCreateItem ("Information")
    $iconmenu0006 = TrayCreateItem ("Information")
    TrayCreateItem ("")
    $iconmenu0007 = TrayCreateItem ("Info")
    TrayCreateItem ("")
    $iconmenu0008 = TrayCreateItem ("Pause")
    $iconmenu0009 = TrayCreateItem ("Exit")

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

    $0001_0001 = _Timer_SetTimer($gui00001, 1000, "_information0001", -1)
    $0002_0001 = _NowCalc ()

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

    Send ("{F5}")

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

    Func _button ()
    While True
    $tmsg = TrayGetMsg()
    Switch $tmsg
    Case $iconmenu0001
    MsgBox (64, "Fehler", "Befehl nicht verfügbar")
    Case $iconmenu0002
    MsgBox (64, "Fehler", "Befehl nicht verfügbar")
    Case $iconmenu0003
    MsgBox (64, "Fehler", "Befehl nicht verfügbar")
    Case $iconmenu0004
    MsgBox (64, "Fehler", "Befehl nicht verfügbar")
    Case $iconmenu0005
    MsgBox (64, "Fehler", "Befehl nicht verfügbar")
    Case $iconmenu0006
    MsgBox (64, "Fehler", "Befehl nicht verfügbar")
    Case $iconmenu0007
    MsgBox (64, "Fehler", "Befehl nicht verfügbar")
    Case $iconmenu0008
    MsgBox (64, "Fehler", "Befehl nicht verfügbar")
    Case $iconmenu0009
    MsgBox (64, "Fehler", _exit ())
    EndSwitch
    WEnd
    EndFunc

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

    Func _information0001 ($hWnd, $Msg, $0001_0001, $dwTime)

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

    $0002_0002 = _DateDiff('s', $0002_0001 , _NowCalc ())
    $0002_0003 = StringFormat("%.02d" & ":" & "%.02d" & ":" & "%.02d", Floor($0002_0002 / 3600), Mod(($0002_0002 / 60),60), $0002_0002 - Floor($0002_0002 / 60) * 60)
    GUICtrlsetdata ($laufzeit,$0002_0003)
    GUICtrlsetdata ($time,@HOUR & ":" & @MIN & ":" & @SEC)
    ;Datum und Jahrestag noch aktualisieren!

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

    EndFunc

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

    Func _exit ()
    Exit
    EndFunc

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

    Func WM_SIZE($hWnd, $iMsg, $iwParam, $ilParam)
    _GUICtrlStatusBar_Resize($hStatus) ;bewirkt, daß sich die statusbar der grössenänderung des Fensters anpasst
    Return $GUI_RUNDEFMSG
    EndFunc ;==>WM_SIZE

    [/autoit]
  • log-file auswerten

    • Andy
    • 21. September 2009 um 13:03

    ....und es geht natürlich immer noch was, doppelt so schnell wie BugFix^^

    Spoiler anzeigen
    [autoit]


    $string=""
    $log=""
    ;file ca. 6MB schreiben
    for $i=1 to 15
    for $s=1 to 100
    $string&=chr(random(35,127,1))
    next
    $string&=$string&@crlf
    if $i>14 then msgbox(0,$i,stringlen($string))
    next

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

    $log="----------------------------------------"&@crlf
    $log&=""&@crlf
    $log&="[08-24-2009 - 11:02:03]:"&@crlf
    $log&="Version: Ver. 2.04"&@crlf
    $log&="EAN-Code: 4022709224101"&@crlf
    $log&="Variante: 19"&@crlf
    $log&="EEPROM Format: Ver. 09.00"&@crlf
    $log&="Quarzabweichung: 7.65[s/d] abgeglichen auf +0.00[s/d]"&@crlf
    $log&="Temperatur: 24.09[°C]"&@crlf
    $log&=""&@crlf
    $log&=$log&$log
    $string&=$log

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

    Filedelete("test.log") ;datei löschen
    sleep (1000)
    filewrite("Test.log",$string) ;datei schreiben
    sleep(1000)

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

    ;File lesen und EAN suchen
    $t=timerinit()
    $string1=fileread("test.log")
    $EAN=stringmid($string1,stringinstr($string1,"EAN-Code: ",0,-1)+10,13)
    $m=timerdiff($t)
    msgbox(0,int($m)&" ms","EAN: "&$ean)

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

    $t=timerinit()
    $ean = StringRegExp(FileRead("test.log"), '(?:EAN-Code: )(\d+)', 3)
    $m=timerdiff($t)
    msgbox(0,int($m)&" ms","EAN: "&$ean)

    [/autoit]

    aber 50 ms mehr oder weniger machen den Kohl wohl auch nicht fett :rofl:

  • Hexadezimal-Werte in die richtige Form bringen.

    • Andy
    • 20. September 2009 um 20:29

    Hallo,
    so sollte es gehen

    [autoit]

    $hexzahl=0x0329D560

    [/autoit]

    ciao
    Andy

  • GeForce GTX260 Problem

    • Andy
    • 20. September 2009 um 19:05

    Hallo Greenhorn,

    Zitat

    Jetzt bin ich ein wenig ratlos, an wen sollte ich mich wenden, an den Händler oder gleich direkt den Hersteller ...

    da du keinen Vertrag mit dem Hersteller getroffen hast, ist dein erster Ansprechpartner zunächst der Händler.
    Diesem schilderst du das Problem und bittest ihn, die Graka in ein nicht fiependes Modell umzutauschen. Wenn er dazu nicht in der Lage ist, weil angeblich

    Zitat

    nVidia und ATI nur noch Billigst-Spannungswandler verarbeiten

    , dann bestehe auf Wandlung (Geld zurück!). Denn deine Grafikkarte ist NICHT von nVidia oder ATI, sondern von Gainward, oder habe ich da etwas falsch verstanden?
    ciao
    Andy

  • GUI im Vordergrund

    • Andy
    • 20. September 2009 um 13:39
    Zitat

    öh... was? Welche Hilfe

    Öhhh.....bei mir steht auf der Startseite von https://autoit.de/www.AutoIt.de irgendwas mit Hilfe, sogar daß diese Hilfe nun komplett auf Deutsch übersetzt wurde, komisch....
    Und jetzt fällt es mir auch gerade auf, links bei den INFO-Links steht auch was bzgl. Hilfe....echt seltsam, wahrscheinlich hat der "Cheffe" die Links auf der Startseite nicht fett genug gemacht :rofl::rofl::rofl:

  • Inhalt eines Ordner (Dateien und Ordner) löschen.

    • Andy
    • 20. September 2009 um 13:30
    Zitat

    sorry, wenn ich hier im forum nerve.

    Nicht falsch verstehen, aber genau dafür ist ein Forum da, um Fragen beantwortet zu bekommen. Dazu gehört aber auch, daß die Frage in einem Stil gestellt wird, daß der Leser (potenzieller Helfer!!! ) auf Anhieb versteht um was es eigentlich geht. Viele haben absolut keine Lust, dem Fragenden erst "stundenlang" Würmer aus der Nase zu ziehen um dann letztendlich herauszufinden, daß es "eigentlich" um etwas ganz anderes ging.
    Das verleidet einem die Lust am Helfen, verständlicherweise, denn dafür ist (mir zumindest) die Zeit zu schade!
    :thumbup:
    Also immer fleißig Fragen, aber RICHTIG! ;)
    ciao
    Andy

  • Inhalt eines Ordner (Dateien und Ordner) löschen.

    • Andy
    • 20. September 2009 um 13:11

    Du solltest beschreiben, was du GENAU machen möchtest, das verkürzt das Procedere gewaltig ;(
    Hilfe hilft, hast du dort die Infos zu

    [autoit]

    DirRemove()

    [/autoit]

    schon gelesen? (klick mal auf den DirRemove-Befehl hier im Posting, um die Hilfe anzuzeigen!)

    DirRemove löschscht ggf rekursiv den Inhalt eines Verzeichniusses und alle darin enthaltenen Dateien. Natürlich auch alle darin enthaltenen Verzeichnisse.

    Um den "Inhalt" zu löschen, mach folgendes:
    Verzeichnis mit Dirremove löschen (alles darin enthaltene wird gelöscht) und anschließend mit

    [autoit]

    DirCreate()

    [/autoit]

    den Ordner wieder erstellen, so gehts m.E. am schnellsten.

  • The destroyed City

    • Andy
    • 20. September 2009 um 12:55

    Hallo,
    ich fände es gut, wenn man nicht immer zwischen der Anzeige für die Speicher, Baumenü usw umschalten müsste.
    Mach das Fenster doch bissl größer und dafür alle Infos auf den Screen.
    Vorschlag: Einen "grünen" Rahmen um die Bauwerke, welche man mit den vorhandenen Materialien bauen kann, und einen roten Rahmen um die Bauwerke, welche man noch nicht bauen kann.
    Die Info "Gebäude XY braucht noch einen Rohstoff" geht im Spiel unter, mach doch ein gelbes Anführungszeichen/Fragezeichen über das Bauwerk, welches den Notstand hat.
    Ansonsten fehlen nur noch die rumwuselnden "Siedler" für den Suchtfaktor^^
    ciao
    Andy

  • Inhalt eines Ordner (Dateien und Ordner) löschen.

    • Andy
    • 20. September 2009 um 12:18
    [autoit]

    DirRemove("D:/testautoit", 1)

    [/autoit]

    funktioniert nicht?

  • Inhalt eines Ordner (Dateien und Ordner) löschen.

    • Andy
    • 20. September 2009 um 12:14

    Hallo,

    Zitat

    den Name des zu löschenden Ordners wissen und dieser ist mir nicht bekannt.

    üble Sache, erinnert mich an Heinz Becker, wie er in der "Telefonszell" Steht und bei der Auskunft anruft um den NAMEN seines Freundes rauszufinden, an den er sich nicht mehr erinnert (an den Namen, nicht an den Freund)^^
    Ggf. könntest du mit

    [autoit]

    fileopendialog()

    [/autoit]

    nachschauen, ob dir irgendein Verzeichnis bekannt vorkommt...
    ciao
    Andy

  • Tcp Server Fehler

    • Andy
    • 20. September 2009 um 11:53

    Was ich immer noch nicht verstanden habe...
    WO TRITT DER FEHLER AUF?
    Wir können hier stundenlang rumraten, nur weil du nicht in der Lage bist anzugeben, in welcher Zeile dein Script nicht tut was es soll...
    Das ist ein gut gemeinter Rat, denn mit "funktioniert nicht, woran liegts?" disqualifizierst du dich schon in der Zukunft von der Möglichkeit, überhaupt Antworten zu bekommen!

    Zitat

    und es wird auch kein fehler ausgegeben

    Na dann ist doch alles in Ordnung! :rofl:
    Der "Fehler" wird natürlich nicht ausgegeben, weil du den "Fehler" garnicht abfragst, das ist das eigentliche Problem in deinem Script!

    Zitat

    wie kann ich prüfen ob der port freigegeben ist ?

    Was heisst "freigegeben"? In dem Moment, wo du das Serverprogramm startest, "lauscht" der Server auf diesem Port. Wenn das Serverprogramm NICHT läuft, dann hat das einen anderen Grund. Z.B. könnte die Firewall das Script daran hindern, als Serverprozess zu starten. Schalte die FW einfach mal testweise ab.

  • Geeeeeeeeeeeeeeeeeeeeeeeeburtstag

    • Andy
    • 19. September 2009 um 23:19

    Na da schließe ich mich doch an mit einem
    Glücklichen Herzwunsch zum Geburtstag!

  • Tcp Server Fehler

    • Andy
    • 19. September 2009 um 19:17

    Hallo,

    Zitat

    nur woran liegt das

    Diese Frage könntest du (und viele andere deiner Kollegen mit derselben Frage) dir sparen, wenn du dein Script mit Debug-Ausgaben und/oder Error-Abfragen spicken würdest.
    Wie so etwas aussehen könnte...

    Spoiler anzeigen
    [autoit]


    TCPStartup()
    ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : TCPStartup() = ' & TCPStartup() & @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console
    $MainSocket = TCPListen(@IPAddress1, 33891, 100 )

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

    While 1
    while 1
    $ConnectedSocket = TCPAccept($MainSocket)
    msgbox(0,"Server empfängt",$ConnectedSocket,1)
    If $ConnectedSocket <> -1 Then ExitLoop
    Sleep(100)
    WEnd
    msgbox(0,"Server verbindung aufgebaut",0,1)
    TCPSend($ConnectedSocket,"1")
    ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : TCPSend($ConnectedSocket,"1") = ' & TCPSend($ConnectedSocket,"1") & @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console
    ;msgbox(0,"Server sendet",0)
    Do
    $recv = TCPRecv($ConnectedSocket, 2048)
    ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : TCPRecv($ConnectedSocket, 2048) = ' & TCPRecv($ConnectedSocket, 2048) & @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console
    Sleep(100)
    Until $recv <> ""

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

    $empfang = StringSplit($recv,"#")
    msgbox(0,"server hat empfangen:",$recv)

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

    WEnd
    TCPShutdown()

    [/autoit]


    Client dazu

    Spoiler anzeigen
    [autoit]

    Func _GetMACFromIP($sIP=@IPAddress1, $mode = 1)
    Local $MAC, $MACSize
    Local $i, $s, $r, $iIP
    $MAC = DllStructCreate("byte[6]")
    $MACSize = DllStructCreate("int")
    DllStructSetData($MACSize, 1, 6)
    $r = DllCall("Ws2_32.dll", "int", "inet_addr", _
    "str", $sIP)
    $iIP = $r[0]
    $r = DllCall("iphlpapi.dll", "int", "SendARP", "int", $iIP, "int", 0, "ptr", DllStructGetPtr($MAC), "ptr", DllStructGetPtr($MACSize))
    $s = ""
    If $mode = 0 Then
    For $i = 0 To 5
    $s &= Hex(DllStructGetData($MAC, 1, $i + 1), 2)
    Next

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

    ElseIf $mode = 1 Then
    For $i = 0 To 5
    If $i Then $s = $s & ":"
    $s = $s & Hex(DllStructGetData($MAC, 1, $i + 1), 2)
    Next
    ElseIf $mode = 2 Then
    For $i = 0 To 5
    If $i Then $s = $s & "-"
    $s = $s & Hex(DllStructGetData($MAC, 1, $i + 1), 2)
    Next
    EndIf
    Return $s
    EndFunc

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

    Do
    Local $macadresse = ""
    $macadresse = _GetMACFromIP()
    Until $macadresse <> ""

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

    $text = @IPAddress1 & "#" & $macadresse & "#" & @ComputerName

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

    $Empfaenger_IP = @ipaddress1
    $Port = 33891

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

    TCPStartUp()
    $ConnectedSocket = TCPConnect($Empfaenger_IP, $Port)
    msgbox(0,@error,$text)
    Do
    $recv = TCPRecv($ConnectedSocket, 2048)
    Sleep(100)
    Until $recv <> ""
    TCPSend($ConnectedSocket, $text)
    Sleep(2000)

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

    TCPShutdown ()

    [/autoit]


    mit Alt-D (consolewrite) oder Ctrl-Shift-D (Messagebox) bringt man die debugzeilen ins script, nach dem Testen einfach mit Ctrl-Alt-Z alle Debuglines entfernen

    ciao
    Andy

  • PushTheButton, ermöglicht Mausklick auf sonst nicht erreichbare Grafiken UPDATE 1.36

    • Andy
    • 17. September 2009 um 20:25

    Sehr fein, wird sofort in die nächste Version übernommen, die sollte am Wochenende fertig sein ^^

  • PushTheButton, ermöglicht Mausklick auf sonst nicht erreichbare Grafiken UPDATE 1.36

    • Andy
    • 16. September 2009 um 16:33

    Hallo RogerS und Funkey,

    Zitat

    Leider bleibt die Lupe stehen, wenn man mit der Maus auf einen zweiten Monitor wechselt.

    Ihr habt ja beide dieses "Problem". Ich vermute es liegt daran, daß das BitBlt d.h. die Kopie des Bildschirminhalts von Monitor 2 nicht funktioniert, ich arbeite daran. Hat wohl damit zu tun, daß bei mehreren Monitoren die Macros

    [autoit]

    @DesktopWidth und @DesktopHeight

    [/autoit]

    die richtigen Werte nicht zurückgeben. Könntet ihr das mal prüfen bitte? Ggf gibt es sogar schon einen "roundabout" von dem ihr wisst, vielen Dank vorab.

    Da offensichtlich Interesse besteht, habe ich das Script (wieder) bedienerfreundlicher gemacht und auch die Geschwindigkeit massiv erhöht (Update erfolgt bald). Auf einem normalschnellen Rechner werden zzt 8-10 "Screenshots" pro Sekunde nach einer enthaltenen Bitmap gescannt, also fast Echtzeit :D:D hehe...

    Das einzige Problem ist eine von MS unwahrscheinllich "lahmar***ig" programmierte API-Funktion, vielleicht ist das auch absichtlich so gemacht, wobei generell seitens der Anwender von GDI+ über mangelnde Performance der Funktionen gelästert wird (obwohl "langsam" auch damit zu tun hat, welchen Algorithmus man verwendet. C++ ist auch nur dann schnell, wenn man keine langsamen API-Funktionen aufruft^^ )
    AutoIt ist jedenfalls bei weitem schnell genug, es liegt einzig an der Geschwindigkeit von GdipCreateBitmapFromHBITMAP innerhalb der GDI+.dll. Die braucht selbst auf einem 2,5Ghz-Rechner 100ms für ein Fullscreen-Bitmap, ein bitblt (Verschieben von Grafikspeicherblöcken innerhalb des Graka- oder Hauptspeichers) ist 50fach schneller!
    So wie ich das verstanden habe, werden mit GdipCreateBitmapFromHBITMAP die Daten ja aus dem Speicher der Grafikkarte in den Hauptspeicher kopiert. DAS ist der eigentliche Flaschenhals, daher verwenden Programme wie VNC dazu eigene Treiber :wacko:

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™