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

Beiträge von Candyland

  • (Source/Exe) Online Game Pinger | Ein tool für Spieler mit nicht so Gutem Internet

    • Candyland
    • 30. Oktober 2017 um 13:16

    Das programm ist jetzt verfügbar :)

  • (Source/Exe) Online Game Pinger | Ein tool für Spieler mit nicht so Gutem Internet

    • Candyland
    • 29. Oktober 2017 um 18:17

    Peace,

    Da viele wie ich unter Internet schwierigkeiten leben und dies entweder nicht zu ändern wissen oder nicht ändern können kommt es durchaus vor das ein Spiel zu spielen begonnen wird das Nicht gemacht wurde um mit Schlechtem Internet gespielt zu werden.

    Dieses Program soll etwas Abhilfe schaffen und jenen die Möglichkeit geben herauszufinden wann der Zeitpunkt des einwandfreien spielens gekommen ist. Der Ping ist manchemal trügerisch und wer wie ich mit zeitüberschreitungen leben muss der weiß mit der zeit wann er in etwa zocken kann. So kann am program beobachtet werden dass Selbst Youtube Videos bei einer 10% zeitüberschreitung nicht mehr streambar sind. Jedoch bei 7% noch ohne probleme geladen werden können.

    Zum Program:

    Der Ablauf _

    1. Starte Das Program wenn du besonders gutes internet hast

    2. Das program wird jetzt 200 Pings lang messen und eine kleine berechnung durchführen die bei einer späteren indikator anzeige behilflich sein wird. (Dieser Schritt passiert nur einmal) (HKCU\SOFTWARE, Online Game Pinger)

    3. Danach startet schon der Hauptteil des Programs welcher dir mit hilfe eines Indikators anzeigt wie gut oder schlecht dein Ping ist.

    (Siehe Bild Unten) Ebenfalls zeigt dir eine Farbe an in welch einem Zustand der Ping zu dir spricht.

    Program beenden: Beende das Program in dem du in deinen Tray gehst und dort auf das Symbol rechtsklick machst und Exit Klickst.

    Zum Program Code

    - Das Overlay ist praktisch aus einfachheitsgründen mit der debug.au3 UDF gemacht worden.

    - v0.1

    [Blockierte Grafik: http://fs1.directupload.net/images/171030/2mbijvt3.jpg]

    Datei: Autoit3 Pinging.7z

    passwort: autoit

    Dateien

    Autoit3 Pinging.7z 691,16 kB – 437 Downloads
  • Set-UDF - Mengenoperationen in AutoIt

    • Candyland
    • 5. Oktober 2017 um 14:41

    Sehr sehr schön! Danke für diese Schöne UDF! ^^

  • Manifest Kopieren & Einfügen mit _WinAPI_UpdateResource|Eine Spielerei

    • Candyland
    • 3. Oktober 2017 um 19:11

    Hallo liebe Autoit.de Community!

    Am heutigen tage bekam ich etwas zu gesicht, das ich mich schon lange fragte. Wie ist es nur möglich die Ressourcen felder einer .exe zu lesen, zu schreiben.. einfach gesagt zu manipulieren. Ich nenne es eine Spielerei, denn es gibt keinen festen grund zu wissen wie es geht. Nur bin ich interessiert darin zu verstehen wie mit _WinAPI_UpdateResource einer .exe die MANIFEST's genommen werden können & sagen wir einer kopie meiner .exe angefügt werden können.

    Ich fand per duckduckgo easy peazy diese lektüre

    https://www.autoitscript.com/autoit3/docs/l…ateResource.htm

    dort wird ein beispiel gegeben wie einer .exe ein icon zugefügt werden kann. Das fand ich schon sehr interessant. Doch ich scrollte noch ein wenig weiter herum & fand in der APIResConstants.au3

    diese hübschen codes

    Global Const $RT_HTML = 23

    Global Const $RT_ICON = 3

    Global Const $RT_MANIFEST = 24

    Global Const $RT_MENU = 4

    Global Const $RT_MESSAGETABLE = 11

    Bei dem markiertem denke ich handelt es sich um eine möglichkeit die Resource daten zu manipulieren.

    Ich möchte herausfinden wie es möglich ist das anzugehen. Da ich mit dem beispiel von autoitscript.com nicht genügend anfangen kann um es auch mit der $RT_MANIFEST umzusetzen.

    Also zu meiner Frage, wie .. nun wie mache ich das? Mir fehlt der ansatz.

  • Ist Binary nicht 01011101?

    • Candyland
    • 29. September 2017 um 18:46
    Zitat von alpines

    Er hat sicherlich auf Absenden gedrückt ohne es zu merken. Passiert, ist ja nicht schlimm.

    Ich bin mir ziehmlich sicher das ich nicht auf absenden gedrückt habe, Es ist auch unlogisch warum direkt nach dem vermeintlichem Absenden der Vorschau Editor auftaucht. Ich kann mich daran erinnern das ich bereits einen Text, nicht dieses buchstaben headbang, eintippte im Vorschau modus, das thema wurde gepostet als ich auf Vorschau drückte.

    Ebenfalls ist auch anzumerken das dass Thema bereits 15-20Minuten existierte, das bemerkte ich nach dem ich den tab schloss.

    Das war in etwa die zeit die ich auf duckduckgo rumsuchte. bzw. nach dem ich auf vorschau drückte.

  • Ist Binary nicht 01011101?

    • Candyland
    • 28. September 2017 um 23:31

    Also ich tat folgendes. ich drückte auf Thema Erstellen ~> Gab den Titel ein ~> Tipperte in das feld für den Text.. nix passierte, anstatt die seite neuzuladen, drückte ich auf vorschau, da es mich interessierte ob die input's vielleicht doch durchgekommen sind. ~> auf der Vorschau seite waren dann auch die getipperten buchstaben zusehen. Ich verließ die seite nicht & stöberte währenddessen auf der suche nach etwas .php auf duckduckgo rum. Ich switchte irgendwann auf den noch immer nicht geschriebenen Tab zurück & drückte abbrechen, da ich fand was ich suchte :) Danach bemerkte ich das mein thema doch gepostet wurde.

  • Ist Binary nicht 01011101?

    • Candyland
    • 28. September 2017 um 23:17

    Ups, ich hab das Thema doch nie gepostest. Ich glaub wir haben hier gerade einen Bug entdeckt. Ich drückte auf Vorschau weil die Texteingabe nicht funktionierte, da ich wusste das dort ein Editor ist der wiederum funktioniert. Deshalb steht dort auch so ein querbeet an buchstaben

  • Ist Binary nicht 01011101?

    • Candyland
    • 28. September 2017 um 23:00

    Ichdsdsdfddxfdffs

  • Skript zum automatischen verschieben einer Datei

    • Candyland
    • 11. September 2017 um 15:51
    AutoIt
    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_Change2CUI=y
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    ;Author: Candyland 11.09.2017 15:50
    Local $lini, $lFrom, $lTo, $arItems, $sTemp, $e_move
    
    $lini = @ScriptDir & "\config.ini"
    if Not FileExists($lini) Then
        IniWrite($lini, "Localisation", "From", @ScriptDir & "\")
        IniWrite($lini, "Localisation", "To", @ScriptDir & "\")
    EndIf
    
    $lFrom = IniRead($lini, "Localisation", "From", @ScriptDir & "\")
    $lTo = IniRead($lini, "Localisation", "To", @ScriptDir & "\")
    
    For $i = 15 To 1 Step -1
        ConsoleWrite($i & ' Seconds Left' & @CR)
        Sleep(1000)
    Next
    
    $arItems = _RecursiveFileListToArray($lFrom, '\.dfq\z', 1)
    if $arItems[0] = 0 Then
        MsgBox(0,"", "There are no *.dfq files found in: " & $lFrom)
        Exit
    EndIf
    
    For $n = 1 To $arItems[0] Step 1
    
        FileSetAttrib($arItems[$n], '-RSH')
        $sTemp = $lTo & StringTrimLeft($arItems[$n], StringInStr($arItems[$n], '\', 0, -1))
        ConsoleWrite('Moving ' & $arItems[$n] & @CRLF)
        $e_move = FileMove($arItems[$n], $lTo, 1)
        if $e_move = 0 Then ConsoleWrite('Cant Move ' & $arItems[$n] & @CRLF)
    
    Next
    
    
    
    
    
    ;Author: Oscar (Autoit.de)
    ;Peace Oscar deine Func is PORN
    Func _RecursiveFileListToArray($sPath, $sPattern, $iFlag = 0, $iFormat = 1, $sDelim = @CRLF)
        Local $hSearch, $sFile, $sReturn = ''
        If StringRight($sPath, 1) <> '\' Then $sPath &= '\'
        $hSearch = FileFindFirstFile($sPath & '*.*')
        If @error Or $hSearch = -1 Then Return SetError(1, 0, $sReturn)
        While True
            $sFile = FileFindNextFile($hSearch)
            If @error Then ExitLoop
            If StringInStr(FileGetAttrib($sPath & $sFile), 'D') Then
                If StringRegExp($sPath & $sFile, $sPattern) And ($iFlag = 0 Or $iFlag = 2) Then $sReturn &= $sPath & $sFile & '\' & $sDelim
                $sReturn &= _RecursiveFileListToArray($sPath & $sFile & '\', $sPattern, $iFlag, 0)
                ContinueLoop
            EndIf
            If StringRegExp($sFile, $sPattern) And ($iFlag = 0 Or $iFlag = 1) Then $sReturn &= $sPath & $sFile & $sDelim
        WEnd
        FileClose($hSearch)
        If $iFormat Then Return StringSplit(StringTrimRight($sReturn, StringLen($sDelim)), $sDelim, $iFormat)
        Return $sReturn
    EndFunc   ;==>_RecursiveFileListToArray
    Alles anzeigen

    Easy Peazy Lemon Squezzy.

    EDIT: achja du kannst die pfade selbst in der config.ini eintragen

  • Skript zum automatischen verschieben einer Datei

    • Candyland
    • 11. September 2017 um 15:14

    Sprich sowas wie von wegen, wenn zufällig eine datei mit der endung .dfg, in einem speziellem ordner, auftaucht dann soll sie an einen bestimmten ort mit dem selben namen verschoben werden?

    Edit. oder sowas wie hey ich stecke jetzt einen usb stick ran & wenn ich dann F1 z.b. drücke dann verschiebt sich autonom ne datei auf den stick?

  • ShellExecuteWait mit Outlookdatei

    • Candyland
    • 11. September 2017 um 15:06

    Zum verständnis.

    ShellExecuteWait startet also eine .msg die wiederum keine ausführbare datei ist sondern mit einem program verlinkt ist, in der registry. Das ja auch dann reagiert & startet. Allerdings weiß das Autoit nicht & führt somit fort. Da ja die *shell* *.msg nicht aktiv ausgeführt wird als eigener process.

    Allerdings kann man auch mit RunWait arbeiten oder?

    Also sowas wie RunWait(@ComSpec & ' /C ' & 'call *.msg')

  • Shutdown cmd Befehl abrufen

    • Candyland
    • 18. August 2017 um 17:17

    $ShutdownTime = InputBox("","","")
    RunWait(@ComSpec & ' /C ' & "shutdown -t " & $ShutdownTime,"", @SW_SHOW) ;/K

    soinetwa.

  • Do Sleep(100) Until $GotVariable ;<~ geht trotz False aus der Schleife

    • Candyland
    • 7. Juli 2017 um 16:21

    Hm ja ich testete es, doch es verbleibt weiterhin fehlerhaft.

    Der controller spricht jeden Worker seperat an & wartet dann auf eine Antwort um eben zu verhindern das alle durcheinander quatschen.
    Mir fällt derweil immernoch keine lösung ein, außer den Controller neuzuschreiben. Ich habe auch schon ein neues Konzept im kopf o:
    Ein Controller der überprüft welche dinge noch fehlen & diese automatisch abarbeitet, fehler behebt & was auch immer mir noch so einfällt. Das ist eine gute gelegenheit um mich besser mit switch's auseinanderzusetzen :)

  • Do Sleep(100) Until $GotVariable ;<~ geht trotz False aus der Schleife

    • Candyland
    • 5. Juli 2017 um 20:37
    Zitat von BLinz

    ich sollte genauer lesen, es wartet bis sich jeder gemeldet hat

    Ja korrekt doch irgendwie spricht der Controller die 1 an, bekommt aber von der 4 eine antwort.
    Dann wenn sich alle einmal melden sollen, zu beginn, kommt die 1 2x zu wort & die 4 praktisch nicht, doch irgendwie sieht man das dieser sich auch gemeldet hat, wenn man in die console des worker's schaut. Das verwundert mich sehr.

    Dahin gehend besteht mein problem das bei der For schleife die falschen angesprochen werden.
    Reihenfolgen die häufig vorkamen. 1,1,2,3 | 1,2,2,3 & das in einer schleife die von 1-4 geht.

  • Do Sleep(100) Until $GotVariable ;<~ geht trotz False aus der Schleife

    • Candyland
    • 5. Juli 2017 um 17:44

    eine for loop die bei 1 anfängt und bei 4 aufhören soll, beginnt mit 4, darauf folgt 2, 3, 4. Ich weiß nicht was mit meinem script falsch ist.

    Die ID's von den workern sind korrekt verteilt, doch irgendwie stimmt weder die response noch wird der richtige angesprochen wenn ich es fordere.
    Wenn ich die Worker manuell anspreche reagieren sie korrekt, doch der controller bekommt das nicht *geschissen*. Obwohl die loop nur von 1-4 gehen kann. Ich verstehe nicht wie der controller die den Worker mit der ID 1 anspricht & die 4 antwortet. Oder die 1 doppelt.
    [Blockierte Grafik: https://www2.pic-upload.de/img/33462457/1.png]


    Code :)

    Spoiler anzeigen
    AutoIt
    ;stand: 05.07.2017 17:43 Author: Candyland
    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_Change2CUI=y
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    
    
    #include <ExchangeVariables.au3> ;Im Anhang | von ***Eukalyptus***
    #include <array.au3>
    
    
    
    
    Global $Variable_Main, $GotVariable, $WaitForVariable
    
    
    if $cmdline[0] = '' Then
    	Global $ID = 0
    ElseIf $cmdline[1] <> '' Then
    	Global $ID = Number($cmdline[1])
    EndIf
    
    
    
    
    
    
    If $ID = 0 Then ; CONTROLLER 0
    
    
    	_ExchangeVariables_Startup(0, 'MAIN', '_VarMsg')
    
    
    	For $i = 1 To 4 Step 1
    		ShellExecute(@ScriptFullPath, $i, @ScriptDir, '', @SW_SHOW) ;Execute dich selbst 4 mal mit Parameter 1-4
    	Next
    
    
    	ConsoleWrite(@CRLF & "Who's There?" & @CRLF)
    	$WaitForVariable = 1
    	For $it = 1 To 4 Step 1
    		$GotVariable=0
    		Do
    			Sleep(100)
    			_ExchangeVariables_SetVariable($it, "Variable_Main", 'who') ;Sag hallo
    		Until $GotVariable ;& warte auf antwort
    		ConsoleWrite($it & ' Answers: ' & $Variable_Main & @CRLF)
    	Next
    	$WaitForVariable = 0
    	ConsoleWrite("Everyone is there.. Nice" & @CRLF)
    
    
    	ConsoleWrite(@CRLF & "Lets Collect a tree of your Files" & @CRLF)
    	$ALLDISKFILES = _RecursiveFileListToArray('C:', '', 1) ;baue Datei Stammbaum | Testweise nur C:
    	$ROUND = Round((UBound($ALLDISKFILES)-1) / 4) ;durch 4 & abrunden
    	ConsoleWrite("Cool Cool you have " & UBound($ALLDISKFILES)-1 & " Files" & @CRLF)
    
    
    	Local $COUNT=0, $VARTOSEND
    	For $ig = 1 To 4 Step 1
    		if $ROUND + $COUNT > UBound($ALLDISKFILES) - 1 Then
    			$ABZUG = ($ROUND + $COUNT) - (UBound($ALLDISKFILES) - 1)
    			$ROUND = $ROUND - $ABZUG
    		EndIf
    		For $is = $COUNT+1 To $ROUND + $COUNT Step 1
    			$COUNT += 1
    			if $ALLDISKFILES[$is] <> '' Then
    				$VARTOSEND &= $ALLDISKFILES[$is] & '||' ;Wollen uns die arbeit, wie in nem team, teilen. deshalb bekommt jeder was zutun
    			EndIf
    		Next
    
    
    		ConsoleWrite('Send it to Worker ' & $ig)
    		$mayError = _ExchangeVariables_SetVariable($ig, "Variable_Main", 'List' & $VARTOSEND) ; sende variable
    		$VARTOSEND = ''
    		if $mayError = 1 Then
    			ConsoleWrite(' | Sended')
    		Elseif $mayError = 0 Then
    			ConsoleWrite(' | Failed to Send') ;<= Später | Starte speziefischen Worker neu & gebe Variable erneut
    		EndIf
    
    
    		$WaitForVariable = 1
    		$GotVariable = 0
    		Do
    			Sleep(100)
    		Until $GotVariable
    		$WaitForVariable = 0
    		ConsoleWrite(' | Received ' & $Variable_Main & @CRLF)
    
    
    		if $Variable_Main <> 'GotIt' & $ig Then
    			ConsoleWrite('Worker ' & $ig & ' Response Failed' & @CRLF)
    		EndIf
    	Next
    
    
    	While 1
    		Sleep(100) ;zum fehler lesen
    	WEnd
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    ElseIf $ID <> 0 Then ; WORKER 1-4
    
    
    	ConsoleWrite('ID: ' & $ID & @CRLF)
    
    
    	$mayError = _ExchangeVariables_Startup($ID, 'MAIN', '_VarMsg')
    	if $mayError = 0 Then
    		ConsoleWrite('_ExchangeVariables_Startup Failed to Start' & @CRLF)
    	EndIf
    
    
    	While 1
    
    
    		$WaitForVariable = 1
    		$GotVariable = 0
    		Do
    			Sleep(100)
    		Until $GotVariable
    		$WaitForVariable = 0
    
    
    		Switch $Variable_Main
    
    
    			Case 'who'
    				ConsoleWrite('Worker ' & $ID & ' Is Here' & @CRLF)
    				_ExchangeVariables_SetVariable(0, "Variable_Main", 'Here is Worker ' & $ID) ;Moinsen
    
    
    			Case StringLeft($Variable_Main, 4) = 'List'
    				ConsoleWrite('Getting the File List' & @CRLF)
    				$FileList = StringTrimLeft($Variable_Main, 4)
    				$FileList = StringSplit($FileList, '||', 1)
    				_ExchangeVariables_SetVariable(0, "Variable_Main", 'GotIt' & $ID)
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    		EndSwitch
    		$Variable_Main = ''
    
    
    
    
    
    
    	WEnd
    
    
    
    
    EndIf
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    Func _VarMsg($hWnd, $iMsg, $wParam, $lparam) ;komme bei mir an & sag per variable das es hier ist
    	if $WaitForVariable = 1 Then
    		$GotVariable=1
    	EndIf
    EndFunc
    
    
    ;Autor: Oscar (autoit.de)
    Func _RecursiveFileListToArray($sPath, $sPattern, $iFlag = 0, $iFormat = 1, $sDelim = @CRLF)
    	Local $hSearch, $sFile, $sReturn = ''
    	If StringRight($sPath, 1) <> '\' Then $sPath &= '\'
    	$hSearch = FileFindFirstFile($sPath & '*.*')
    	If @error Or $hSearch = -1 Then Return SetError(1, 0, $sReturn)
    	While True
    		$sFile = FileFindNextFile($hSearch)
    		If @error Then ExitLoop
    		If StringInStr(FileGetAttrib($sPath & $sFile), 'D') Then
    			If StringRegExp($sPath & $sFile, $sPattern) And ($iFlag = 0 Or $iFlag = 2) Then $sReturn &= $sPath & $sFile & '\' & $sDelim
    			$sReturn &= _RecursiveFileListToArray($sPath & $sFile & '\', $sPattern, $iFlag, 0)
    			ContinueLoop
    		EndIf
    		If StringRegExp($sFile, $sPattern) And ($iFlag = 0 Or $iFlag = 1) Then $sReturn &= $sPath & $sFile & $sDelim
    	WEnd
    	FileClose($hSearch)
    	If $iFormat Then Return StringSplit(StringTrimRight($sReturn, StringLen($sDelim)), $sDelim, $iFormat)
    	Return $sReturn
    EndFunc   ;==>_RecursiveFileListToArray
    Alles anzeigen
  • Do Sleep(100) Until $GotVariable ;<~ geht trotz False aus der Schleife

    • Candyland
    • 5. Juli 2017 um 16:41
    Zitat von alpines

    Da spricht mal wieder der Optimist aus dir :rofl:

    Hehe soviele threads die ich nur deshalb schon geöffnet habe :D

  • Do Sleep(100) Until $GotVariable ;<~ geht trotz False aus der Schleife

    • Candyland
    • 5. Juli 2017 um 16:36

    Standby, ich denke ich wechsle den Worker part durch einen Switch aus, so wird der fehler behoben.
    Ich lass eden Thread offen, da ich mir denke das es sicher noch zu einem fehler kommen wird.

  • Do Sleep(100) Until $GotVariable ;<~ geht trotz False aus der Schleife

    • Candyland
    • 5. Juli 2017 um 15:57

    Es geht wieder um den Virenscanner der hash's abgleicht. :saint:

    Wie es sich für ein reifendes program gehört wird dieses mehrmalig neugeschrieben, so hörte ich das zumindestens mal.
    Daher bin ich beim 3ten Neuschreib versuch um diesmal die Exchange Variables UDF Beta umzusetzen.

    Dabei stieß ich auf das problem das eine Schleife, die nur dazu da ist damit eine antwort erwartet werden kann, ausbügst & den Wert einer Variable ignoriert. Derweil konnte ich den fehler die ganze letzte nacht nicht herausbuggen & frage deshalb hier nach meinem Logik fehler den ihr wahrscheinlich sonderbar schnell erkennt.

    Ich habe mich für folgendes Konzept entschieden. Eine Exe die als hauptkontroller agiert & sich 4 weitere male, mit ID Parameter, ausführt(wobei ich beim nächsten neuschreiben die Thread anzahl miteinbeziehe) und damit 4 Worker bekommt die auf befehle zum ausführen warten. Dabei wird zuerst abgewartet welche Worker sich zurückmelden. Als nächstes erstelt der Contoller eine Dateiliste der, bisher auf C: liegenden, Daten und teilt diese durch 4 um sie dann an die Worker zu schicken... Soweit so gut da kommt das problem. Die Worker sollen laut code auf die Dateiliste warten und dann eine rückmeldung geben. Doch die Worker springen beinahe spontan weiter und ignorieren das die Until $GotVariable FALSE ist. Doch auch eben nicht immer wie ich beobachten durfte. So wartet der eine oder andere Worker doch auch mal auf seine Liste, Meißt der erste. ?(

    Code :)

    Spoiler anzeigen
    AutoIt
    ;stand: 05.07.2017 Author: Candyland
    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_Change2CUI=y
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    
    
    #include <ExchangeVariables.au3> ;Im Anhang | von ***Eukalyptus***
    #include <array.au3>
    
    
    
    
    Global $Variable_Main, $GotVariable, $WaitForVariable
    
    
    if $cmdline[0] = '' Then
    	Global $ID = 0
    ElseIf $cmdline[1] <> '' Then
    	Global $ID = Number($cmdline[1])
    EndIf
    
    
    
    
    
    
    If $ID = 0 Then ; CONTROLLER 0
    
    
    	_ExchangeVariables_Startup(0, 'MAIN', '_VarMsg')
    
    
    	For $i = 1 To 4 Step 1
    		ShellExecute(@ScriptFullPath, $i, @ScriptDir, '', @SW_SHOW) ;Execute dich selbst 4 mal mit Parameter 1-4
    	Next
    
    
    	ConsoleWrite(@CRLF & "Who's There?" & @CRLF)
    	$WaitForVariable = 1
    	For $i = 1 To 4 Step 1
    		$GotVariable=0
    		Do
    			Sleep(100)
    			_ExchangeVariables_SetVariable($i, "Variable_Main", 'who') ;Sag hallo
    		Until $GotVariable ;& warte auf antwort
    		ConsoleWrite($Variable_Main & @CRLF)
    	Next
    	$WaitForVariable = 0
    	ConsoleWrite("Everyone is there.. Nice" & @CRLF)
    
    
    	ConsoleWrite(@CRLF & "Lets Collect a tree of your Files" & @CRLF)
    	$ALLDISKFILES = _RecursiveFileListToArray('C:', '', 1) ;baue Datei Stammbaum | Testweise nur C:
    	$ROUND = Round((UBound($ALLDISKFILES)-1) / 4) ;durch 4 & abrunden
    	ConsoleWrite("Cool Cool you have " & UBound($ALLDISKFILES)-1 & " Files" & @CRLF)
    
    
    	Local $COUNT=0, $VARTOSEND
    	For $i = 1 To 4 Step 1
    
    
    		For $is = 1 + $COUNT To $ROUND + $COUNT Step 1 ;<= Das muss noch getestet werden
    			$COUNT += 1
    			if $ALLDISKFILES[$is] <> '' Then
    				$VARTOSEND &= $ALLDISKFILES[$is] & '||' ;Wollen uns die arbeit, wie in nem team, teilen. deshalb bekommt jeder was zutun
    			EndIf
    
    
    
    
    		Next
    
    
    		ConsoleWrite('Send it to Worker ' & $i)
    		$mayError = _ExchangeVariables_SetVariable($i, "Variable_Main", $VARTOSEND) ; sende variable
    		$VARTOSEND = ''
    		if $mayError = 1 Then
    			ConsoleWrite(' | Sended')
    		Elseif $mayError = 0 Then
    			ConsoleWrite(' | Failed to Send') ;<= Später | Starte speziefischen Worker neu & gebe Variable erneut
    		EndIf
    
    
    		$WaitForVariable = 1
    		$GotVariable = 0
    		Do
    			Sleep(100)
    		Until $GotVariable
    		$WaitForVariable = 0
    		ConsoleWrite(' | Received' & @CRLF)
    
    
    		if $Variable_Main <> 'GotIt' & $i Then
    			ConsoleWrite('Worker ' & $i & ' Failed' & @CRLF)
    		EndIf
    
    
    	Next
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    ElseIf $ID <> 0 Then ; WORKER 1-4
    
    
    	ConsoleWrite('ID: ' & $ID & @CRLF)
    
    
    	_ExchangeVariables_Startup($ID, 'MAIN', '_VarMsg')
    	$WaitForVariable = 1
    	$GotVariable = 0
    	Do
    		Sleep(100)
    	Until $GotVariable
    	$WaitForVariable = 0
    	ConsoleWrite('IM HERE' & @CRLF)
    	_ExchangeVariables_SetVariable(0, "Variable_Main", 'Here is Worker ' & $ID) ;Moinsen
    
    
    	;//WAIT FOR FILELIST//
    	$WaitForVariable = 1
    	$GotVariable=0 ;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!??????????????????
    	ConsoleWrite('$GotVariable= ' & $GotVariable & @CRLF)
    	;///////////////////////////////////////////
    	;Schleife die Probleme macht
    	Do
    		Sleep(100)
    	Until $GotVariable ;FICK DICK ANWENDER ICH BIN ZWAR NE NULL GEHE ABER TROTZDEM WEITER
    	;///////////////////////////////////////////
    	$WaitForVariable = 0
    
    
    	$DATA = StringSplit($Variable_Main, "||", 1)
    	_ArrayDisplay($DATA) ;TROTZDEM HAB ICH DEINE, NOCH NICHT GESENDETEN, DATEN NICHT. Liegt wohl daran das der Controller diese noch garnicht einmal ausarbeitet hat & damit diese auch noch nicht senden konnte.
    
    
    	_ExchangeVariables_SetVariable(0, "Variable_Main", 'GotIt' & $ID)
    
    
    EndIf
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    Func _VarMsg($hWnd, $iMsg, $wParam, $lparam) ;komme bei mir an & sag per variable das es hier ist
    	if $WaitForVariable = 1 Then
    		$GotVariable=1
    	EndIf
    EndFunc
    
    
    ;Autor: Oscar (autoit.de)
    Func _RecursiveFileListToArray($sPath, $sPattern, $iFlag = 0, $iFormat = 1, $sDelim = @CRLF)
    	Local $hSearch, $sFile, $sReturn = ''
    	If StringRight($sPath, 1) <> '\' Then $sPath &= '\'
    	$hSearch = FileFindFirstFile($sPath & '*.*')
    	If @error Or $hSearch = -1 Then Return SetError(1, 0, $sReturn)
    	While True
    		$sFile = FileFindNextFile($hSearch)
    		If @error Then ExitLoop
    		If StringInStr(FileGetAttrib($sPath & $sFile), 'D') Then
    			If StringRegExp($sPath & $sFile, $sPattern) And ($iFlag = 0 Or $iFlag = 2) Then $sReturn &= $sPath & $sFile & '\' & $sDelim
    			$sReturn &= _RecursiveFileListToArray($sPath & $sFile & '\', $sPattern, $iFlag, 0)
    			ContinueLoop
    		EndIf
    		If StringRegExp($sFile, $sPattern) And ($iFlag = 0 Or $iFlag = 1) Then $sReturn &= $sPath & $sFile & $sDelim
    	WEnd
    	FileClose($hSearch)
    	If $iFormat Then Return StringSplit(StringTrimRight($sReturn, StringLen($sDelim)), $sDelim, $iFormat)
    	Return $sReturn
    EndFunc   ;==>_RecursiveFileListToArray
    Alles anzeigen

    Dateien

    ExchangeVariables.au3 26,68 kB – 303 Downloads Main.au3 4,69 kB – 333 Downloads
  • Autoit3 Internal Process Piping | Pipe

    • Candyland
    • 5. Juli 2017 um 15:25

    Ich danke euch vielmals, arbeite gerade mit den Exchange Variables UDF Beta die hier @BLinz postete.
    Da es sich damit einfacher handhabt als mit den pipes :D

  • Autoit3 Internal Process Piping | Pipe

    • Candyland
    • 2. Juli 2017 um 20:38
    Zitat von Musashi

    ..\AutoIt3\Examples\GUI\Advanced\

    ui ui ui suuuper!

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™