Ein freundliches Hallo zurück, willkommen im Forum!
MfG James
Ein freundliches Hallo zurück, willkommen im Forum!
MfG James
Ich muss Andy recht geben, wollte der Vollständigkeit halber aber trotzdem eine bessere Restart-Funktion vorstellen:
[autoit]Func Restart()
If @Compiled Then
Run(@ScriptFullPath)
Else
Run(StringFormat('"%s" /AutoIt3ExecuteScript "%s"', @AutoItExe, @ScriptFullPath))
EndIf
Exit
EndFunc
MfG James
Und genau dafür gibt es BinaryToString.
Dafür brauchst du die "WindowFromPoint" Funktion aus der User32.dll. Zum Glück ist diese schon bereits bei AutoIt in der WinAPI.au3 mitgeliefert. Die Funktion dazu heißt: _WinAPI_WindowFromPoint()
Danke für die Info, so habe ich wenigstens auch noch was gelernt.
Kilroy Dann spielt es ja auch keine Rolle, dass meine Umsetzung dieser Funktion fehlerhaft ist...
Das Problem bei der anderen Lösung ist wahrscheinlich, dass das Fenster genau an dieser Position sein muss.
Das Problem liegt in Zeile 31:
[autoit]$window = WinGetTitle($pos[0], $pos[1])
[/autoit]
Die Funktion verlangt die Angabe von Titel und Text, du kannst also nicht einfach eine x- und y-Koordinate angeben und darauf hoffen, dass das funktioniert.
Eine Möglichkeit, den Fenstertitel (wobei ich eher das Handle nehmen würde; siehe WinGetHandle) anhand der Fensterposition abzufragen wäre folgende, das funktioniert aber auch nur, wenn du die Position des Fensters genau angibst, und nicht einen Punkt der im Fenster liegt (d.h. du genau in die linke obere Ecke des Fensters klickst).
WinGetTitle("[X:" & $pos[0] & ";Y:" & $pos[1] & "]")
[/autoit]Vielleicht hat ja jemand noch eine bessere Idee, das Window Info Tool schafft es ja auch irgendwie.
MfG James
Edit:
Habe eine Funktion in der Windows API gefunden, allerdings scheint meine Umsetzung einen Fehler zu haben, da die Bereiche der Fenster nicht zu 100% stimmen. Es ist aber besser als die vorherige Lösung.
Local $pos = MouseGetPos(), $hWnd = WindowFromPoint($pos[0], $pos[1])
MsgBox(0, $hWnd, WinGetTitle(WindowFromPoint($pos[0], $pos[1])))
Func WindowFromPoint($x, $y)
Local $POINT, $hWnd
$POINT = BitOR(BitShift(Int($x), -32), Int($y))
$hWnd = DllCall("user32.dll", "HWND", "WindowFromPoint", "INT64", $POINT)
If @error Then
Return -1
Else
Return $hWnd[0]
EndIf
EndFunc
Und was gefällt dir an den gefunden Eingabefenstern nicht?
Als Standard-Installationspfad könntest du übrigens folgendes verwenden:
[autoit]@ProgramFilesDir & "\NameDesProgramms"
[/autoit]GUISetStyle lässt sich meines Wissens nach nur auf eigene (mit GUICreate erstellte) Fenster anwenden.
Ich kenne aber auch keine Lösung, da es WinSetStyle leider nicht gibt.
Also 50 bedeutet eigentlich Syntax Error, der Fehler liegt also entweder in deinen Angaben oder in der UDF selbst.
mögliche Lösung: http://www.autoitscript.com/forum/topic/66…de-50/?p=537269
Wieso nimmst du dafür nicht einen MD5- bzw. SHA256-Hash? Denn so kann das Passwort immer noch ausgelesen werden, wenn man den Schlüssel aus dem Skript ausliest.
Naja, einfach die Funktion FileSetZoneIdentifier aufrufen, das schaffst du auch ohne Beispiel.
Hab' vorhin allerdings vergessen die benötigten Zonen mit aufzulisten.
Zonen:
0 = normal
4 = siehe Bild
Mit dieser Art von Fehlermeldung kann ich dir nicht dienen, aber vielleicht hilft dir ja das hier.
":$DATA" musst du gegebenenfalls entfernen, das ging bei mir damals irgendwie nicht ohne, mittlerweile aber schon.
MfG James
Trotzdem wundert es mich, das es auch so geklappt hat. Komisch...
AutoIt wandelt zwischen den Datentypen hin und her wie es gerade nötig ist, also sollte das kein Problem sein.
Auch von mir alles Gute zum Geburtstag!
Und die Profilleichen könnte man mal entfernen.
Das wäre aber schlecht für die Statistiken.
Gibt es eine Möglichkeit Dateien zu packen ohne dafür extra ein Packprogramm aufrufen zu müssen?
Die Windows API bietet genau diese Funktionalität, und das ohne dass man irgendwas automatisieren muss: ZIP - Packen / Entpacken mit Windows eigener Funktion
7zip hätte den Vorteil, dass es nicht kostenpflichtig ist, nicht zwingend installiert werden muss und ebenfalls per cmdline Parameter verwendet werden kann.
Die CUI Version von WinRAR auch nicht.
:wacko: Was wollen die ganzen Leute nur immer mit den ganzen x?
Ist ja fast so schlimm (oder sogar schlimmer) wie die Leute mit "1337" im Namen.
Na dann herzlich Willkommen.
Und um den anderen zuvorzukommen: Es heißt AutoIt.
Dann nimmst du den Vorschlag von minx und liest vorher den Inhalt des Controls aus, alles weitere ließe sich in der Hilfe nachlesen.
[autoit]ControlGetText("[CLASS:Notepad]", "", "[CLASS:Edit]")
[/autoit]Da kann ich dir leider nicht helfen. Ich benutze weder die UDF noch Firefox.
Das Problem ist nicht Chrome, sondern, dass du nicht den Quellcode-Tab (anstatt des Editor-Tabs) beim Einfügen von AutoIt Code benutzt.
wie gesagt würde es gerne testen nur fehlt diese datei #include "BlockInputEx.au3" in zeile 16.
Weiterhin wird für das Sperren des Desktops die Datei "BlockInputEx.au3" benötigt, erhältlich hier.