Hast du es denn schon mit den Control..() Funktionen probiert?
Sowas wie:
Controlclick()
ControlSetText()
ControlSend()
Hast du es denn schon mit den Control..() Funktionen probiert?
Sowas wie:
Controlclick()
ControlSetText()
ControlSend()
1. Eigene Ansätze posten
2. Du musst uns schon sagen was du nicht kannst.
http://translation.autoit.de/onlinehilfe/intro/compiler.htm
Genauer gesagt Methode 3^^
Kein Problem^^
Gut möglich dass es dafür schon ne Funktion gibt, aber sowas ist auch schnell stelbst erstellt
Dim $Array[200] = ["a", "b", "c", "d", "f"]
MsgBox(0,"",_Arraygetdef($Array))
Func _Arraygetdef(ByRef $a)
Local $iCount = 0
For $i = 0 To UBound($a)-1
If $a[$i] Then $iCount += 1
Next
Return $iCount
EndFunc
Grundsätzlich würde ich da kein Problem sehen.
Das müsste man schon hinbekommen.
Ok bevor hier die restlichen 6 900 User auch noch die selbe Beschreibung abgeben halte ich mal fest:
"Das Forum hängt zu jeder vollen Stunde für ca 6 Minuten"
Wie bereits gesagt wurde ist das wohl irgendein cronjob (evtl. Backups?)
Heute vormittags gab es auch ungewöhnlich lange Ladezeiten.
(Bei mir bis zu 4 Minuten)
Wie wärs mit ner Spendenaktion für neue Server?^^
Da gibts einige Möglichkeiten:
- Server und Client: Einen TCP oder UDP Server auf der VM erstellen den man per Client vom PC aus steuern kann.
- Auf der Vm ein Script erstellen das ständig prüft ob ein neues Datenpaket vorhanden ist, wenn ja dann Befehl ausführen.
Lösungen ohne autoit:
-telnet bzw ssh
Gibt aber noch zig andere Möglichkeiten^^
In diesem Fall würde ich aber eher eine Kombination aus Stringleft und Strininstr verwenden.
Array's sind zwar schön und gut aber wenn er nun alles bis zum 3ten " " ausgeben möchte muss er aus dem Array wieder einen String basteln.
Also wenns nur zum "Abschneiden" ist empfehl ich das:
[autoit]$String = "var %i = blubb asdf test usw"
$sTokens = StringLeft($String, StringInStr($String, " ", 0, 3)-1)
Msgbox(0,"",$sTokens)
Teste mal mit einen einfachen Iniread ob du auf die ini zugreifen kannst und ob du etwas auslesen kannst.
Kein Problem^^
So z.B.:
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 487, 82, 192, 124)
$Input1 = GUICtrlCreateInput("Input1", 8, 32, 329, 21)
$Button1 = GUICtrlCreateButton("Button1", 344, 32, 131, 25, $BS_DEFPUSHBUTTON)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
MsgBox(0, "Ausgabe",GUICtrlRead($Input1))
EndSwitch
WEnd
Bei solchen Problemen empfehle ich immer gerne: https://autoit.de/index.php?page=Thread&threadID=13785
Grundsätzlich können wir da wahrscheinlich auch nicht allzuviel helfen.
Du musst herrausfinden was bei den Rechnern anders ist.
So wie sich das anhört würde ich mal tippen, dass der ini-Pfad nicht passt.
Geh doch mal weg von meiner Version und besser den Fehler in deinem Script aus -.-
Um die Fehler die ich drinhab gehts doch garnicht
Oh ok dass FileClose auch für das Schließen des Suchhandles zuständig ist wusste ich nicht. Auch was gelernt
Not > oder <= ist halt einfach eine Sache der Lesbarkeit. Wenn du damit zurechtkommst ok^^
Aber als Außenstehender muss man da erstmal überlegen was du überhaupt machst
ZitatVerknüpfungen in den Ordner nichtmehr berücksichtig
In welchem Ordner?
Das Problem an sich war ja nur dass er einige Buttons fehlen, bzw Leerräume entstehen.
Und das hab ich beschrieben wieso das so ist
Edit: nur um das nochmal festzuhalten:
Welche Version du nimmst liegt natürlich zu 100% bei dir. Ich seh meine jetzt auch nicht unbedingt als Verbesserung, sondern eher als Alternative.
Hab das ganze mal zum Spaß gekürzt.
Edit: Alles geändert^^
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <Array.au3>
#include "_RecursiveFileListToArray.au3"
$aLnk = _RecursiveFileListToArray(@ProgramsCommonDir, 'lnk', 1)
For $i = $aLnk[0] To 1 Step -1
$details = FileGetShortcut($aLnk[$i])
If Not StringInStr($details[0], @WindowsDir & "\Installer") > 0 Then _ArrayDelete($aLnk, $i)
Next
$aLnk[0] = UBound($aLnk) - 1
Dim $aButton[$aLnk[0]+1] = [$aLnk[0]]
$anzahlymax = Int((@DesktopHeight - 10) / 110)
$Form1 = GUICreate("Form1", Floor($aLnk[0]/$anzahlymax)*110 + 120, @DesktopHeight, 0, 0, BitOR($WS_POPUP, $WS_CLIPSIBLINGS))
For $i = 1 To $aLnk[0]
$aButton[$i] = GUICtrlCreateButton(StringTrimLeft($aLnk[$i], StringInStr($aLnk[$i], "\", 0, -1)), Floor(($i-1)/$anzahlymax)*110 + 10, Mod(($i-1),$anzahlymax)*101+10, 100, 100)
Next
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $aButton[1] to $aButton[$aButton[0]]
MsgBox(0,"", $aLnk[$nMsg])
EndSwitch
WEnd
Durch das erstellen meiner Version hab ich jetzt auchnoch deinen Fehler gefunden^^.
Und zwar sind die leeren Stellen die Buttons die du nicht erstellst weil (Not StringInStr($details[0], "C:\Windows\Installer") > 0) False ist
Und du aber trotzdem die Position weiterzählst.
Übrigens hast du einige unsaubere/fehlerhafte Dinge im Script.
Not StringInStr($details[0], "C:\Windows\Installer") > 0 ist das gleiche wie StringInStr($details[0], "C:\Windows\Installer") <= 0
Einige includes werden nicht benötigt
Zwei zähler für die y-Koordinate sind eigentlich einer zuviel. ($anzahly und $buttony)
FileClose($search) macht keinen Sinn
Dann aber eher so:
[autoit]$Pfad="J:\Templates\OriginalTemplates\2960-8TC\"
$Scriptdatei="Template2969-8TC.au3"
RunWait('AutoIt3.exe ' & $Pfad & ' ' & $Scriptdatei & ' ' &GUICtrlRead($Liefertermin)&' '&GUICtrlRead($Geraetetyp)&' '&GUICtrlRead($Image)&' '&GUICtrlRead($Kundenbestellnummer)&' '&GUICtrlRead($Devicenummer))
Das Tutorial hab ich nicht, aber es gibt ja genügend andere.
Sieh mal in meine Signatur
Das ist das Hilfe und Unterstützung-Forum. Wenn du etwas gebastelt haben willst dann gehört das in die Jobbörse.
Grundsätzlich brauchste aber nicht viel:
1. Rekursive Dateisuche z.B.: https://autoit.de/index.php?page=Thread&postID=17201
2. Ne Gui
3. Filedelete()
Ich denke mal das ist eher ne Funktion die ein Anfänger nicht sofort versteht.
Aber mach dir keine Sorgen das kommt mit der Zeit
Um ein Array in ein Textfile zu schreiben kannste das verwenden:
[autoit]_FileWriteFromArray()
[/autoit]Nachträglich weglöschen geht natürlich.
z.B so:
For $i = $code[0] To 1 Step -1
If StringStripWS($code[$i], = "" Then _ArrayDelete($i)
Next
$code[0] = UBound($code)
Ich würde dir allerdings empfehlen einen vernünftigen RegEx zu bauen.
Weil erst hinzufügen und dann einen Teil wieder löschen ist einfach unpraktisch^^
Quick 'n Dirty würds so funktionieren:
#RequireAdmin
HotKeySet("{F7}", "_Exit")
Global $aFliegeralphabet[27][2] = [["a", "Alpha"], ["b", "Bravo"], ["c", "Charlie"], ["d", "Delta"], ["e", "Echo"], ["f", "Foxtrott"], ["g", "Golf"], ["h", "Hotel"], ["i", "India"], _
["j", "Juliett"], ["k", "Kilo"], ["l", "Lima"], ["m", "Mike"], ["n", "November"], ["o", "Oscar"], ["p", "Papa"], ["q", "Quebec"], ["r", "Romeo"], _
["s", "Sierra"], ["t", "Tango"], ["u", "Uniform"], ["v", "Victor"], ["w", "Whiskey"], ["x", "X-Ray"], ["y", "Yankee"], ["z", "Zulu"], ["{SPACE}", "§"]]
For $i = 0 To UBound($aFliegeralphabet) - 1
HotKeySet($aFliegeralphabet[$i][0], "SendText")
Next
While 1
Sleep(100)
WEnd
Func _Exit()
Exit
EndFunc ;==>_Exit
Func SendText()
For $i = 0 To UBound($aFliegeralphabet) - 1
If $aFliegeralphabet[$i][0] = @HotKeyPressed Then $index = $i
HotKeySet($aFliegeralphabet[$i][0])
Next
Send($aFliegeralphabet[$index][1])
For $i = 0 To UBound($aFliegeralphabet) - 1
HotKeySet($aFliegeralphabet[$i][0], "SendText")
Next
EndFunc