schonmal mit Arrays beschäftigt?
Dann solltest du eigentlich wissen das ein negativer array-index nicht möglich ist oder? Und wiso überhaupt 0-$o ??? Ich versteh den sinn nicht^^
schonmal mit Arrays beschäftigt?
Dann solltest du eigentlich wissen das ein negativer array-index nicht möglich ist oder? Und wiso überhaupt 0-$o ??? Ich versteh den sinn nicht^^
Einfach Hilfe lesen ![]()
Du musst diese Abfrage nur jeweils nach der funktion machen ansonsten gilt das makro nur für die letzte funktion ![]()
Was möchtest du machen? Wenn das Fenster Passwort auftauch (in dem wohl sowas wie Passwort incorrect steht oder so???) möchtest du eine Fehlermeldung rausgeben oder wie?
Hmm das Problem ist halt, du willst quasi auf ein Fenster solange warten bis es exisiert, andererseits ist es ja sehr wahrscheinlich das es nie existiert da der user das PW ja richtig eingibt. Somit ist eine Schleife mist, du wirst wohl nicht um ein Sleep herumkommen... Die elegantere Lösung zu sleep ist halt WinWait("deinfenster", "enthaltenertext", TIMEOUT)
durch das timeout kannst du bestimmen wie lange gewartet wird ob das fenster existiert oder nicht ich schätze mal mit 2000 => 2 sec müsstest du ganz gut hinkommen, auch bei älteren rechnern
er hat nach JavaScript gefragt und ich hab ihm JavaScript gegeben
![]()
ich seh kein roten string^^
Aber normalerweise ist das ganz einfach
[autoit]#include<file.au3>
$datei = "C:\test.txt"
$deinstring = "string"
_FileReadToArray($datei, $array)
For $i = 1 To Ubound($array)-1
If StringInStr($array[$i], $deinstring) Then
MsgBox(0, "Test", "String "&$deinstring&" gefunden!")
ExitLoop
EndIf
Next
Sowas?...
<html><head><title>TEST</title></head>
<script type="text/javascript">
function schreiben(parm)
{
document.getElementById("text").value = parm;
}
</script>
<body>
Alert kommt
<a href="http://www.autoit.de" onmouseover="alert(this);">TestLink</a>
<img src="http://autoit.de/wcf/images/autoit_logo.gif" onmouseover="alert(this.src);" />
<br><br>
Wird in der Statusleiste des Explorers angezeigt
<a href="http://www.autoit.de" onmouseover="window.status = this; return true">TestLink</a>
<img src="http://autoit.de/wcf/images/autoit_logo.gif" onmouseover="window.status = this.src; return true" />
<br><br>
Kommt in dem Inputfeld
<a href="http://www.autoit.de" onmouseover="schreiben(this)">TestLink</a>
<img src="http://autoit.de/wcf/images/autoit_logo.gif" onmouseover="schreiben(this.src)" />
<br><br>
<input type="text" id="text" value="" style="width:400">
</body></html>
Alles anzeigen
jo dann muss er ja nurnoch die UDF von progandy nehmen... da mein selbstgebastelter tooltip ja ein win ist ![]()
Naja wenns so nicht geht musst du es halt über die Coordinaten machen das Fenster müsste aber auf jeden Fall einen Titel haben oder?
Weil dann nimmst du die relativen Daten also nicht absolut zum Desktop sondern zum Fenster, das sollte kein Problem sein da das Fenster ohnehin unveränderbar ist (not resizeable).
naja bei variante 2 ists ja eigentlich logisch,
Du startest die funktion und beendest sie auch gleich wieder, danach kommt erst die Schleife wo der ToolTip überhaupt angezeigt wird, da er jedes mal neu erstellt wird flackert er wohl auch... Das ist wohl das primäre Problem, es würde gehen wenn du den ToolTip quasi nur einmal erstellst und dann nur per Setdata den Inhalt verändern könntest... da sowas meines wissens aber nicht geht könntest du auf die etwas aufwendigere Variante zurückgreifen: GUI
Mach dir eine eigene GUI mit entsprechenden Styles sodass sie keine Border usw hat und dann machst du in der schleife ungefähr sowas (wenn du das fenster bei der Maus anzeigen lassen willst)
$gui = GUICreate(200, 30, Default, Default, $WS_POPUPWINDOW)
$label = GUICtrlCreateLabel("", 5, 5, 190, 20)
GUISetState(@SW_HIDE)
;dann dein code wie auch immer bis der Tooltip halt erscheinen soll
GUISetState(@SW_SHOW, $gui)
WinSetTrans($gui, "", 170)
Do
$pos = MouseGetPos()
;Mir fällt grad der Befehl net ein um die GUI zu positionieren
*sry* kommt vllt noch
;Mit WinMove halt mal
WinMove($gui, "", $pos[0]+5, $pos[1]+5)
GUICtrlSetData($label, "Dein Countdown")
Until $diff >= $Countdown * 1000
GUISetState(@SW_HIDE, $gui)
Mhh.. mir fällt grad nur WinMove ein, vllt gibts aber auch noch was mit GUISet oder so :pinch:
AutoIt Window Info!
Start-->Programme-->Autoit-->Au3 Windown Info
So oder so ähnlich
Und schau mit dem Titel und vorhandenem Text im Fenster auch da nach ![]()
also irgendwie steh ich grad aufm schlauch, du willst das der ToolTip transparent wird und wenn du das mit winsettrans machst flackert das fenster in dem der ToolTip angezeigt wird oder wie?
ne aber ein paar Fragen:
Code?
Zuerst fragst du ob das auch mit nem ToolTip geht und dann schreibst du weiter unten dass das Fenster flackert?... Wie denn nun? ![]()
für was die UDF?
Du willst einen Button drücken in einem Fenster das du selbst gemacht hast?
Opt("GUIOnEventMode", 1)
$gui = GUICreate(100,100)
$button = GUICtrlCreateButton("Test", 10, 10)
GUICtrlSetOnEvent($button, "_test")
GUISetState()
Sleep(1000)
ControlClick($gui, "", $button, "left")
While 1
WEnd
Func _test()
MsgBox(0, "Test", "Das ist ein Test")
Exit
EndFunc
Oder ist das Spielemenu vom Hersteller? Dann einfach mit AutoIt window Info die ID des Buttons auslesen und dazu noch den Titel des Fensters und auch die ControlClick funktion verwenden. Mal als Beispiel:
ControlClick("SWBF2 - Menu", "", 12)
;alles natürlich frei erfunden, wenn du das Fenster noch genauer spezifizieren willst musst du einfach noch einen TextTeil von dem Fenster mit angeben
ansonsten wenn dein script mal fertig ist es als html exportieren, die html anschließend noch in dein Script per Fileinstall einbinden comilen, fertig... so in der art halt ![]()
HotKeySet("F1", "_drucken")
Func _drucken()
FileInstall("script.html", @Scriptdir&"\script.html")
_FilePrint(@Scriptdir&"\script.html")
FileDelete(@ScriptDir&"\script.html")
EndFunc
Tip schau dir mal die IE funktionen an bzw. die UDF FF funktionen da gibt es doch IEbodyreadtext oder sowas... dann kannste dir den ganzen mist mit stringbetween sparen ![]()
jo oder bugfix hatte doch auch mal sowas als objekt gemacht... finds nur net mehr... er hat halt quasi ein objekt erstellt und die werte da rein geladen ich glaub das ging auch recht schnell
Edit: warst schon wieder schneller :pinch: mist
![]()
jo is ja in PHP auch so nur wie C++ diese Rechnung löst weiss ich net... AutoIt und PHP werden ja erstmal von C++ interpretiert wenn ich mich nicht komplett irre ![]()
wenn du den syntax beachtest ja^^
Probiers doch mal so:
FileCopy("C:\test.txt", "C:\"&@UserName&" - Info.txt",1)
[/autoit]Du hast halt die wahl zwischen Speicher auslastung und Prozessor auslastung ![]()
Wenn du dein Programm mit so einem Array startest dauert es wahrscheinlich länger bis es geladen ist zusätzlich braucht es auch mehr Speicher. Wenn du das Array in einer Schleife jedes Mal erweiterst geht die Prozessorauslastung hoch aber die Speicherauslastung ist effizient... Bei unseren heutigen Kisten muss man sich bei sowas aber nicht allzugroße Gedanken machen dafür sind deine Dimensionen noch zu klein ![]()
Ich hab mal so ne Art mittelweg gemacht, sodass das array nur alle 20 Schleifendurchgänge um 20 erweitert wurde hat aber nicht viel gebracht die testschleife mit 100000 durchgängen hat insgesamt 3 sec kürzer gebraucht ![]()
joar sollte ja auch nur zu anschauungszwecken dienen ich schätze aber das das C++ anders lösen wird oder?
Ich mein damit jetzt das Autoit sowie z.B. auch PHP auf C++ basieren und wie man in C++ sowas löst
![]()