Beiträge von sumsum
-
-
Autoit 4 soll meines Wissens auch die Möglichkeit haben teilweise Code von anderen Programmiersprachen einzubinden
-
Vielen Dank^^ Und sry das ich dein Posting nicht gelesen habe...
-
Na als Hex RGB: 0xFFFFFF
Ok das setzen funktioniert aber wenn ich als Farbe -1 angebe gibt mir die Funktion einen langen Zahlencode zurück, wo ist da die Farbe?
-
Erstmal vielen dank^^
Aber weißt du vielleicht in welchem "Format" ich die Farbe angeben muss? -
Erstmal danke^^
Ich dachte die Variablennamen wären nur zur Übersicht da.
Jedoch funktioniert es auch so nicht:
http://pastebin.com/EFddPx7nWeißt du vielleicht wie ich die "Farbe" angeben muss?
-
Hallo Leute,
ich versuche grade die Funktion "_DwmpSetColorizationParameters" der dwmapi.dll in Autoit zu schreiben,
da das jedoch mein erstes mal mit DLLs ist habe ich einige Probleme^^.Folgende Infos habe ich gefunden:
Infos über die Struktur:
Zitattypedef struct tagCOLORIZATIONPARAMS
{
COLORREF clr1;
COLORREF clr2;
UINT nIntensity;
UINT nReserved2;
UINT nReserved3;
UINT nReserved4;
BOOL fOpaque;} COLORIZATIONPARAMS;
#131 ist _DwmpSetColorizationParameters. Der erste Parameter ist ein Zeiger auf eine Struktur, der zweite ein UINT/BOOL. Was dieser bewirkt, kann ich Dir nicht sagen. Die ersten beiden Werte in der Struktur sind Farbwerte, der dritte gibt die Intensität an (0-100). Der letzte Wert gibt an, ob die Transparenz aktiviert (FALSE) oder deaktiviert (TRUE) werden soll. Die übrigen drei könnten Farbton, Sättigung und Helligkeit sein.#127 ist _DwmpGetColorizationParameters, damit kann man die aktuellen Daten abfragen. Der einzige Funktionsparameter ist ein Zeiger auf diese Struktur.
Autohotkey Code:Zitat#Singleinstance, force
#Persistentsettimer, glass, 100
glass:
VarSetCapacity(wp, 28, 0)
DllCall("dwmapi.dll\DwmEnableComposition", UInt, 1)
dwmapi_lib := DllCall("LoadLibrary","str","dwmapi")
dwmapi_127 := DllCall("GetProcAddress","uint",dwmapi_lib,"int",127)
DllCall(dwmapi_127,"str",wp)
DllCall("FreeLibrary","uintp",dwmapi_lib)color1 := NumGet(wp, 0, "UIntp")
color2 := NumGet(wp, 4, "UIntp")
color3 := NumGet(wp, 8, "UIntp")
color4 := NumGet(wp, 12, "UIntp")
color5 := NumGet(wp, 16, "UIntp")
color6 := NumGet(wp, 20, "UIntp")
color7 := NumGet(wp, 24, "UIntp")ToolTip,ColorizationAfterGlow: %color1%`nColorizationColor: %color2%`nColorizationColorBalance: %color3%`nColorizationAfterglowBalance: %color4%`nColorizationBlurBalance %color5%`nColorizationGlassReflectionIntensity %color6%`nColorizationOpaqueBlend %color7%`n
Daraus habe ich jetzt folgenden Code gemacht: #mce_temp_url#
Leider passiert beim ausführen garnichts^^
Hoffe das mir jemand helfen kann
MfG Sumsum
-
Nur so als Typ wer in diesem Fall wahrscheinlich
Controlclick()
besser da dort das betreffende Fenster nicht aktiv sein muss
EDIT 1:
Ups scheint falsch zu sein, dachte die x und y Koordinaten würden das bestimmen
-
Edit2: Kann mir wer sagen Warum man bei einem TItle Für ein Fenster Mit """ und mit ' arbeiten kann was ist den da der unterschied
Sie umschliessen sich gegenseitig , d.h. Wenn du zum Beispiel in einer Msgbox einen String mit " " ausgeben willst könntest du es so schreiben : Msgbox(0,"Test",'Das "weil" steht in Anführungszeichen') -
Wenn ich du wäre würde ich deine Daten zensieren
-
Wie man an diesem Beispiel sehen kann ist Switch schneller als IF^^
Global $google=3,$dada
$init=TimerInit()
For $i=0 To 20000 Step +1
Switch $google
Case 1
$dada=""
Case 2
$dada=""
Case 3
$dada=""
EndSwitch
Next
Msgbox(0,"Switch",TimerDiff($init))
$init2=TimerInit()
For $i=0 To 20000 Step +1
If $google=1 Then
$dada=""
Elseif $google= 2 Then
$dada=""
Elseif $google=3 Then
$dada=""
EndIf
Next
Msgbox(0,"If",TimerDiff($init2)) -
Hier hast du eine Funktion^^:
Func _GuiSetFont($hwnd, $font, $size = "")
If Not IsHWnd($hwnd) Then Return 0
$Data = _WinAPI_EnumChildWindows($hwnd)
For $i = 1 To UBound($Data) - 1
If $size = "" Then
GUICtrlSetFont($i, -1, -1, -1, $font)
Else
GUICtrlSetFont($i, $size, -1, -1, $font)
EndIf
Next
EndFunc ;==>_GuiSetFontnc$hwnd="Handle des GUIs"
$font="Name der Schriftart"
$size(optional)="Wenn du es veränderst wird die größe der gesamten Schrift daran angepasst,wenn du es leer lässt wird die Größe vor dem Befehl verwendet"
Du brauchst dafür diese UDF : http://www.autoitscript.com/forum/topic/98712-winapiex-udf/
-
Ich bin mir nicht sicher ob es bei Bildern auch geht aber du kannst mal versuchen vor dem verschieben Guisetstate(@sw_Lock) und danach Guisetstate(@sw_Unlock) in dein Script zu packen.
-
was bedeutet das wait?
Das er mit dem beenden des Scriptes darauf wartet das die .bat Datei ihren code ausgeführt hat.
-
Lösung :
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <array.au3>
Global $array[52][52]$Form1 = GUICreate("test", 521, 521, 192, 124)
GUISetState(@SW_SHOW)
GUISetState(@SW_LOCK,$Form1)
_mach()
GUISetState(@SW_UNLOCK,$Form1)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
Sleep(50)
WendFunc _mach()
For $x = 0 To 51
For $y = 0 To 51
$array[$x][$y] = 0
Next
Next
For $x = 0 To 51
For $y = 0 To 51
if $array[$x][$y] = 0 Then
GUICtrlCreateGraphic($x*10,$y*10,10,10)
GUICtrlSetBkColor(-1,0x000000)
EndIf
Next
Next
EndFuncIch kann zwar kein GDI Plus oder irgendwas mit Graphicen in Autoit aber ich denke es lag daran das er immer die gesamte schwarze Fläche neuzeichnen musste nach dem eine neue erstellt wurde.Mit meinem Code verändert sich das GUI nicht bis alle erforderlichen Flächen gezeichnet wurden so dass sie alle in einem aufs GUI gezeichnet werden können. (Nur eine Theorie xD)
MfG Sumsum
-
Dieser Fehler scheint interessanterweise nicht bei windows 7 64bit aufzutreten xD Da ist das Timeout ganz normal
EDIT:
Ok er tritt doch auf -
Danke für eure Tips!
Schnitzel: ich erhalte jetzt keine Fehlermeldung mehr, aber immer eine Msgbox mit Alias 0 - obwohl der Server in der Liste ist.
@ sumsum: Ich habe leider ein x86 OS, und kann das nicht starten
Beim Kompilieren deines Scripts happert es hier:
Kannst du vielleicht einfach mal eine Beispiel Datei hier hochladen ?
EDIT:
Ich hab kein x86 -.- Trotzdem kann ichs ausführen, im Anhang 64bit version
-
Ähhmm heißt die Textdatei denn überhaupt servers.txt und befindet sich in dem Verzeichnis des Scriptes?
Im Anhang ist noch eine benutzerfreundliche Version. -
kann ich diesen befehl mit einer variable benutzen?
gibt bei mir immer einen Fehler.
Oder wie könnte ich das sonst machen?
Hust hust^^
MouseClickDrag("left", 990, 1150, $x, 1150 ,20)
-
Probiers doch mal so :
#include <File.au3>
Msgbox(64,"Alias",_SearchDNS("srv08110","servers.txt") )
Func _SearchDNS($server, $file)
Local $read
_FileReadToArray($file, $read)
For $i = 1 To $read[0] Step +1
If $read[$i] <> "" Then
$split = StringSplit($read[$i], " ")
If StringInStr($split[3], $server) Then Return $split[1]
Endif
Next
Return 0
EndFunc ;==>_SearchDNS