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

Beiträge von Shadowigor

  • Problem mit Background

    • Shadowigor
    • 23. September 2011 um 22:51

    Du musst das direkt nach der erstellung des Bildes einfügen: GuiCtrlSetState(-1,$GUI_DISABLE)

    Gruss Shadowigor

  • AutoC++

    • Shadowigor
    • 23. September 2011 um 19:23

    Ok, wusst ich nicht. Hab einfach das genommen was bei mir stand. Aber " - SciTE" reicht ja eigentlich auch.
    Ich habs jetzt noch mal kompiliert.

    Gruss Shadowigor

    Dateien

    AutoC++ for SciTE.zip 287,84 kB – 254 Downloads
  • AutoC++

    • Shadowigor
    • 23. September 2011 um 18:26

    So ich habs noch mal überarbeitet und jetzt sollte es auch bei dir funktionieren. Freut mich, dass es dir gefällt.
    Und ja, natürlich darfst dus auf die Website stellen.

    Gruss Shadowigor

    Dateien

    AutoC++ for SciTE.zip 287,85 kB – 287 Downloads
  • AutoC++

    • Shadowigor
    • 22. September 2011 um 20:03

    Erstmal möchte ich ein Lob aussprechen. Tolles Ding!
    Find ich super hat mal wer sowas gemacht. Gut möglich, dass ich es weiterhin nutze.

    Aber zum Hauptgrund meines Posts:

    Falls jemand mit der IDE++ nicht so wirklich zurechtkommt habe ich mal ein kleines Script geschrieben um AutoC++ auch in SciTE nutzen zu können.
    Mann muss einfach das Script während dem Gebrauch von SciTE am laufen haben und dann kann man mit F5 das Script starten.
    WICHTIG: Das Script muss im IDE-Ordner von AutoC++ sein.

    Andere Anwendungen sollten F5 dann immer noch empfangen (keine Garantie).

    Gruss Shadowigor

    Dateien

    AutoC++ for SciTE.zip 287,52 kB – 308 Downloads
  • Einfache logische Steuerung selber schreiben

    • Shadowigor
    • 21. September 2011 um 18:42

    Dann musst du einfach einen Interpreter für dein Programm schreiben. Der Schwierigkeitsgrad kommt aber wohl auf den Sprachumfang an.
    Aber ich denke der ist nicht riesig und deshalb könnte das durchaus funktionieren. Unter Umständen wartest du dann aber ein wenig bis sich am Ausgang was tut.
    Aber am besten fängst du einfach mal an. Bei Problemen kannst du ja immer noch mal fragen.

    Gruss Shadowigor

  • Einfache logische Steuerung selber schreiben

    • Shadowigor
    • 20. September 2011 um 19:59

    Ich denke das wird recht komplex. Da ich auch schon mit so was ähnlichem gearbeitet habe (FPGA (oder auch asm) - Wenn ich Wikipedia richtig verstehe ist das ja was ähnliches),
    kann ich mir vorstellen, dass so ein Programm nicht einfach wird. Wenn du einen grafischen Editor willst, wirds wohl noch schwieriger.
    Doch auch mit solchen Befehlen wie beschrieben musst du wohl sehr viel beachten, dass alles fehlerfrei läuft. Dafür kenn ich die Sprache aber zuwenig.

    Würde mich aber noch interessieren was daraus wird, solltest du es trotzdem in Angriff nehmen.

    Gruss Shadowigor

  • select..case..endselect in zusammenhang mit array problem

    • Shadowigor
    • 11. September 2011 um 17:47

    Jederzeit wider.

  • select..case..endselect in zusammenhang mit array problem

    • Shadowigor
    • 11. September 2011 um 17:39

    Nein nicht ganz. Beim 2ten ist $ColorIndex = 3 vor dem For. Dadurch setzt er die Farbe nicht bei jedem Schleifendurchgang zurück. Geht denn das auch nicht?

  • select..case..endselect in zusammenhang mit array problem

    • Shadowigor
    • 11. September 2011 um 17:28

    Dann funktioniert das was ich gepostet habe also nicht?

  • select..case..endselect in zusammenhang mit array problem

    • Shadowigor
    • 11. September 2011 um 17:01

    Ja das denke ich schon aber so wie das jetzt ist wird er dir das Feld im ersten durchgang Blau färben und im zweiten dann wider Rot, da die Farbe immer zurückgesetzt wir. Dann müsste es wohl so sein:

    Spoiler anzeigen
    [autoit]

    Func _versandchecken($excel_fenster, $ie_fenster)
    _IELinkClickByText($inet, "Alle Details zum Versandanzeigen")

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

    Sleep(1200)
    WinSetState($ie_fenster, "", @SW_MINIMIZE)

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

    $ColorIndex = 3 ; Standardmässig ist die Farbe 3

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

    For $s = 0 To UBound($standard) - 1 ; Ubound ist die grösse des Arrays. Deshalb noch -1 um den letzten Index zu erhalten.

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

    Select

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

    Case $versandtext[0] = " - Paketversand"
    $ColorIndex = 16

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

    Case $standard[$s] = $versender[0]
    $ColorIndex = 45 ; Sollte jedoch einer dieser Fälle eintreffen, ändert sich die Farbe zu 16, 45 oder 5

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

    Case $versender[2] = $standard[$s]
    $ColorIndex = 5

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

    EndSelect
    $excel.Cells($i, 10).Font.ColorIndex = $ColorIndex ; Und hier wird dann die Farbe in Ecxel benutzt
    Next

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

    _IEQuit($inet)

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

    EndFunc ;==>_versandchecken

    [/autoit]


    Ist es das was du meinst? Wenn nein habe ich dich vielleicht falsch verstanden.

    Gruss Shadowigor

  • select..case..endselect in zusammenhang mit array problem

    • Shadowigor
    • 11. September 2011 um 16:46

    Ok, jetzt verstehe ich. Dabei fällt mir aber noch auf, dass bei $excel.Cells($i, 10).Font.ColorIndex = $ColorIndex die Zeile $i gewählt wird. Ich denke mal es wäre aber $s oder nicht? denn sonst schreibst du die verschiedenen Farben ja in die gleiche Zelle wenn $i die ganze Zeit gleich bleibt. Wäre es dann nicht so richtig: $excel.Cells($s, 10).Font.ColorIndex = $ColorIndex. Das könnte auch dein Problem beheben.

    Gruss Shadowigor

  • select..case..endselect in zusammenhang mit array problem

    • Shadowigor
    • 11. September 2011 um 16:24

    Also bei deiner Frage kann ich dir nicht ganz folgen. Welche Farbe? Welcher Versender? Welches Array? Und welche Ware??.... Das verstehe ich noch nicht ganz. Die Bitte ist jedoch kein Problem:

    Spoiler anzeigen
    [autoit]

    Func _versandchecken($excel_fenster, $ie_fenster)
    _IELinkClickByText($inet, "Alle Details zum Versandanzeigen")

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

    Sleep(1200)
    WinSetState($ie_fenster, "", @SW_MINIMIZE)

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

    For $s = 0 To UBound($standard) - 1 ; Ubound ist die grösse des Arrays. Deshalb noch -1 um den letzten Index zu erhalten.

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

    $ColorIndex = 3 ; Standardmässig ist die Farbe 3

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

    Select

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

    Case $versandtext[0] = " - Paketversand"
    $ColorIndex = 16

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

    Case $standard[$s] = $versender[0]
    $ColorIndex = 45 ; Sollte jedoch einer dieser Fälle eintreffen, ändert sich die Farbe zu 16, 45 oder 5

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

    Case $versender[2] = $standard[$s]
    $ColorIndex = 5

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

    EndSelect
    $excel.Cells($i, 10).Font.ColorIndex = $ColorIndex ; Und hier wird dann die Farbe in Ecxel benutzt
    Next

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

    _IEQuit($inet)

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

    EndFunc ;==>_versandchecken

    [/autoit]


    Ich hoffe das reicht dir. Viel mehr gibts da nicht zu kommentieren.

    Gruss Shadowigor

  • select..case..endselect in zusammenhang mit array problem

    • Shadowigor
    • 11. September 2011 um 15:52

    Also so wie ich das sehe soll doch je nach dem was in $standard steht, eine andere Zahl bei $excel.Cells($i, 10).Font.ColorIndex haben. Da du immer die selbe Zelle färben willst machst dus vielleicht so.
    Meiner Meinung nach reicht das schon:

    Spoiler anzeigen
    [autoit]

    Func _versandchecken($excel_fenster, $ie_fenster)
    _IELinkClickByText($inet, "Alle Details zum Versandanzeigen")

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

    Sleep(1200)
    WinSetState($ie_fenster, "", @SW_MINIMIZE)

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

    For $s = 0 To UBound($standard) - 1

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

    $ColorIndex = 3

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

    Select

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

    Case $versandtext[0] = " - Paketversand"
    $ColorIndex = 16

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

    Case $standard[$s] = $versender[0]
    $ColorIndex = 45

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

    Case $versender[2] = $standard[$s]
    $ColorIndex = 5

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

    EndSelect
    $excel.Cells($i, 10).Font.ColorIndex = $ColorIndex
    Next

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

    _IEQuit($inet)

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

    EndFunc ;==>_versandchecken

    [/autoit]


    Einige Case kann man dann eh löschen, da diese die Farbe sowieso nicht beeinflussen würden. Und das maximieren des Fensters un die Sleeps kannst du dir denke ich auch sparen.

  • select..case..endselect in zusammenhang mit array problem

    • Shadowigor
    • 11. September 2011 um 15:34

    Ausserdem, so wie ich das sehe, gehst du immer davon aus dass $standard die Indexe 0-3 hat. Ich bin mir jetzt nicht ganz sicher aber so wie du das beschreibst hat der doch nicht immer 4 Werte.
    Wenn du nur 2 Versandarten hast hat der doch auch nur 2 Werte oder habe ich das falsch verstanden? Wenn das so ist, würde ich es mit 'For $s = 0 To Ubound($standard) - 1' machen.

    Aber das mit dem Logik-Fehler stimmt auch.

    Edit: Einen Vorschlag kann ich dir nicht machen, aber das sinnvollste wäre wohl wenn du die am Schluss noch mit einem If abfängst.

    Gruss Shadowigor

  • Send("{Enter}") auf einem VPS

    • Shadowigor
    • 5. September 2011 um 18:57

    Da solltest du dir am besten mal ControlSend() in der Hilfe ansehen. Das müsste das sein, was du suchst.

  • Rekursive Dateiauflistung

    • Shadowigor
    • 3. September 2011 um 16:03

    Hallo Leute

    Ich habe mal ein Script geschrieben um Datein rekursiv (inklusive Unterordner, UnterUnterordner... etc.) aufzulisten. Ich weis es gibt schon viele und jetzt halt noch eines mehr.
    Ich habe auch unteranderem eines von BugFix gefunden und gedacht da braucht es ja wirklich keines mehr von mir. Ich musste aber mit verwunderung feststellen, dass meines erheblich schnellen ist als seines.
    (Darauf geb ich keine Garantie. Vielleicht ists auch nur bei mir so) Deshalb poste ich es jetzt trozdem mal. Schaden kanns ja nicht.

    Zu sagen ist noch das man mit diesem Script (im Moment) noch nicht gezielt nach Dateinamen suchen, sonder nur die Endungen rausfiltern kann.

    Das Resultat wird Standardmässig in die Files.txt im Scriptverzeichniss geschrieben. Es kann aber auch als Array oder String mit @CRLF-Trennzeichen erhalten werden. (Siehe Beschreibung von $fFlag)

    Und natürlich noch das Script:

    Spoiler anzeigen
    [autoit]

    #include <Array.au3>
    #include <File.au3>

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

    #cs
    ===========================================================================================================================================

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

    _GetFiles
    ---------

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

    Version: 1.0

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

    Autor: Shadowigor

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

    Funktion: Gibt die Dateistruktur eines Pfades an (mit Filter)

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

    Parameter: $sPathFull Der zu durchsuchende Pfad (z.B C:\Users\Benutzer\*.* oder C:\Users\Benutzer\*.jpg)
    $fFlag 0 > Wird in Files.txt geschrieben
    1 > Gibt es als Array zurück
    2 > Gibt es als String zurück

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

    Bemerkung: Setzt @error und gibt "Nothing Found!" zurück (bzw. schreibt es in die Datei) wenn nichts gefunden wurde
    Gezielte Dateisuche wird noch nicht unterstützt.

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

    ===========================================================================================================================================
    #ce

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

    Func _GetFiles($sPathFull, $fFlag = 0)

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

    Local $aSubdirTmp[1], $aSubdir[1], $iLengh, $sPath, $sFile, $aFileList[1], $i, $sFileList, $sSubPath, $aFiles[1]

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

    $iLengh = StringInStr($sPathFull, "\", 0, -1)
    $sPath = StringLeft($sPathFull, $iLengh)
    $sFile = StringTrimLeft($sPathFull, $iLengh + 1)
    $iLengh = StringLen($sFile)

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

    If Not FileExists($sPath) Then
    If $fFlag = 0 Then
    $hFileWrite = FileOpen(@ScriptDir & "\Files.txt", 2)
    FileWrite($hFileWrite, "Nothing Found!")
    FileClose($hFileWrite)
    Return SetError(1)
    EndIf
    SetError(1)
    Return "Nothing Found!"
    EndIf

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

    $aFileList = _FileListToArray($sPath)

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

    For $i = 1 To $aFileList[0]
    If StringInStr(FileGetAttrib($sPath & $aFileList[$i]), "D") <> 0 Then
    _ArrayAdd($aSubdirTmp, $sPath & $aFileList[$i])
    _ArrayAdd($aFiles, $sPath & $aFileList[$i])
    ElseIf ($sFile = ".*") Or (StringRight($aFileList[$i], $iLengh) = $sFile) Then
    _ArrayAdd($aFiles, $sPath & $aFileList[$i])
    EndIf
    Next

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

    While UBound($aSubdirTmp) > 1
    $sSubPath = $aSubdirTmp[UBound($aSubdirTmp) - 1]
    $aFileList = _FileListToArray(_ArrayPop($aSubdirTmp))
    If IsArray($aFileList) Then
    For $i = 1 To $aFileList[0]
    If StringInStr(FileGetAttrib($sSubPath & "\" & $aFileList[$i]), "D") <> 0 Then
    _ArrayInsert($aSubdirTmp, 1, $sSubPath & "\" & $aFileList[$i])
    If $sFile = ".*" Then _ArrayInsert($aFiles, 1, $sSubPath & "\" & $aFileList[$i])
    ElseIf ($sFile = ".*") Or (StringRight($aFileList[$i], $iLengh) = $sFile) Then
    _ArrayInsert($aFiles, 1, $sSubPath & "\" & $aFileList[$i])
    EndIf
    Next
    EndIf
    WEnd

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

    If $fFlag = 1 Then Return $aFiles
    $sFileList = _ArrayToString($aFiles, @CRLF)
    If $fFlag = 2 Then Return $sFileList
    $hFileWrite = FileOpen(@ScriptDir & "\Files.txt", 2)
    FileWrite($hFileWrite, $sFileList)
    FileClose($hFileWrite)

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

    EndFunc ;==>_GetFiles

    [/autoit]


    Gruss Shadowigor

    Dateien

    _GetFile.au3 2,85 kB – 503 Downloads
  • TCPRecv - Länge der empfangenen Daten

    • Shadowigor
    • 30. August 2011 um 21:14

    TCPRecv hat einen Parameter bei dem du die maximale länge einstellen kannst. Auf unendlich setzen kannst du den nicht und das macht auch keinen Sinn.
    Wenn du sehr viele Daten empfängst, füllst du dir damit unter Umständen deinen ganzen Arbeitsspeicher. Und das willst du doch nicht.
    Wenn du TCPRecv mehrmals aufrufst, wirst du aber auch alle Daten erhallten. Die werden zuerst in einem Buffer zwischengespeichert.
    Und die anzahl der erhaltenen Zeichen steht in @extended. Steht alles in der Hilfe.

    Gruss Shadowigor

  • TCP-Send sendet immer nur 72 Bytes

    • Shadowigor
    • 30. August 2011 um 19:37

    :thumbdown: Ok ich gebs zu der war schlecht von mir. Manchmal denkt man einfach viel zu weit... Danke.

  • TCP-Send sendet immer nur 72 Bytes

    • Shadowigor
    • 30. August 2011 um 19:18

    Hallo zusammen

    Ich habe folgendes Problem:
    Ich habe ein Script geschrieben, welches in gewissem Abstand ein Screenshot per TCP sendet. Hier das Script (also ein Teil davon):

    Spoiler anzeigen
    [autoit]

    $idSendSocket = TCPConnect(@IPAddress1, 50002) ; Die IP ist natürlich nur zum testen
    While 1
    _ScreenCapture_Capture(StringTrimRight(@ScriptDir, 7) & "\Tmp\TmpScreenPic.bmp")
    $hFile = FileOpen(StringTrimRight(@ScriptDir, 7) & "\Tmp\TmpScreenPic.bmp", 16)
    $bData = FileRead($hFile, 2048)
    Do
    $ret = TCPSend($idSendSocket, StringTrimRight(@ScriptDir, 7) & "\Tmp\TmpScreenPic.bmp")
    MsgBox(0, @error, $ret) ; $ret ist immer 72
    $bData = FileRead($hFile, 2048)
    Until @error = -1
    FileClose($hFile)
    FileDelete(StringTrimRight(@ScriptDir, 7) & "\Tmp\TmpScreenPic.bmp")
    Sleep(1000)
    WEnd

    [/autoit]


    Mein Problem: Es kommt (fast) nichts an. X( Deshalb habe ich mir mal den Rückgabewert von TCP-Send angesehen. @error ist immer 0 und , was ich nicht verstehe, der Rückgabewert
    (normalerweise die anzahl der gesendeten Bytes) ist immer 72. Keine Ahnung warum 72 aber es ist so. Ich habe auch schon versucht, bei FileRead kleinere Werte zu nehmen als 72.
    Hat auch nichts gebracht. Immer noch 72. An der datei kann es nicht liegen, denn ich habe überprüft ob die Daten etwas enthalten. Jedenfalls erhalte ich am anderen Ende nur ein leeres .bmp.
    Hat jemand irgendeine Ahnung was da falsch ist?

  • Suche (schnelle) Funktion zum Umrechnen ins Dual- oder Hexadezimalsystem

    • Shadowigor
    • 30. August 2011 um 18:24

    Da ist aber jemand sehr anspruchsvoll wenn ihm 0.08ms nicht reichen. 8|
    Aber weshalb machst du es überhaupt als String? Wenn du es wirklich binär willst dann nimm doch einfach 'Binary()'. (Weis jetzt auch nicht wie schnell das ist)
    Wenn du es dann anzeigst hast dus halt in Hex. Aber ich weis ja jetzt nicht wozu man sowas brauchen kann... Wenn dus aber wirklich so willst
    wie du es gemacht hast, wird es wahrscheinlich schwierig da noch Geschwindigkeit rauszuholen.

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™