Dann probier mal statt "Button1" mit "[CLASS:Button; INSTANCE:1]"
Beiträge von BugFix
-
-
Du möchtest also die Funktion "Zellen verbinden" aus Excel nachbilden. Temporär sicher möglich, indem man ein Ctrl drüberpackt. Allerdings sicher sehr aufwändig dieses Ctrl auch vertikal zu bewegen, um die LV-Eigenschaften beizubehalten.
Standardmäßig habe ich es noch nicht gesehen. (Immer diese Extrawünsche
) -
-
Was mir auch aufgefallen ist: _Overroll($fGui,$fObjekt,$fTitel,$fFunc)
Warum soll der Titel übergeben werden, das ist überflüssig, da du schon $fGui übergibst und dieses ebenso als Titel verwendet werden kann.
Übrigens machst du dir viel zu viel Arbeit
- warum die Mausposition mit der Controlposition vergleichen? Hast du dir schon mal angeschaut, was GUIGetCursorInfo() zurückgibt? ...$array[4] = ID of the control that the mouse cursor is hovering over
Du brauchst also nur die Ctrl-ID mit $array[4] vergleichen.
P.S. Nicht verzagen, wenn wir hier dein Skript zerlegen. Das ist positive Kritik und hilft dir beim Lernen.

Edit Falls du schon mitten im Skript steckst und nachträglich die Variablen deklarieren möchtest, ist dieses eine kleine Hilfe: Variablendeklaration automatisiert - Opt("MustDeclareVars", 1)
-
Ihr braucht Mozilla Firefox und eine Bildschrimauflösung von 1280x1024
Ich würde versuchen Programme so zu schreiben, dass sie auch einer breiter Nutzerschicht zugänglich sind. Und da sind Restriktionen in Sachen Browser und Auflösung nicht sehr dienlich. -
Alles anzeigen
Und dann nochmal ne Frage am Rande, wenn ich schon grad so kompetente Leute um mich hab: Kann man in AutoIt eigtl. wirklick nicht einen Array einem Array zuweisen?
Ein Beispiel:
Dim $array[10]
$array[1] = StringSplit("x,x,x",",")
MsgBox(0,"any",$array[1][2])
Gibt bei mir einen Fehler zurück, von wegen "Dimension exceeded oder so".
Bin das halt aus anderen Skirptsprachen gewohnt wie PHP oder Javascript.
[autoit]
Das ist für AutoIt kein Problem, du kannst einem Array als Element wiederum ein Array zuweisen. ABER: Das Auslesen ist dann zweistufig.
Dein Bsp.:
[/autoit]
Dim $array[10]
$array[1] = StringSplit("x,x,x",",")
Local $tmp = $array[1]
MsgBox(0,$tmp[0] & "Elemente",$tmp[1] & ', ' & $tmp[2] & ', ' & $tmp[3])Ich habe für diesen Fall eigene Funktionen erstellt, findest du hier: https://autoit.de/index.php?page…21161#post21161
_SubArray2DGetEntry()
_SubArray2DSetEntry() und
_ArrayMultiDisplay() --> in Post 24 -
Ohne weiter in den Code zu schauen fällt mir auf, dass du alle Ereignisse (des ListView) per DebugPrint ausgeben läßt. Das ist zur Fehlersuche sinnvoll, führt möglicherweise aber zu dem von dir skizzierten Problem. Da du nur $NM_DBLCLK auswertest, kommentiere doch alle anderen Ereignisse in WM_NOTIFY mal aus.
-
Nicht nur Kein RichEdit, sondern überhaupt kein Edit...
-
Ich werde wohl im Februar keine Zeit dafür haben, aber knifflig klingt auf jeden Fall gut.
-
Probier mal, weiß nur nicht genau, ob erst PW-alt und dann PW-neu benötigt wird oder umgekehrt.
[autoit]
Local $user = 'user'
[/autoit][autoit][/autoit][autoit]
Local $ou = 'buero'
Local $domain = 'meier_soehne'
Local $com = 'de'
Local $pw_old = 'bla'
Local $pw_new = 'blub'$objUser = ObjGet("LDAP://cn=" & $user & ",ou=" & $ou & ",dc=" & $domain & ",dc=" & $com)
[/autoit]
$objUser.ChangePassword($pw_old, $pw_new) -
-
Du willst nur die Button? - Das Bsp. ist doch (fast so) in der Hilfe:
Spoiler anzeigen
[autoit]#include <GUIConstantsEx.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <WindowsConstants.au3>
#include <WinAPI.au3>; get height of window title and width of window frame - may be different when XP theme is ON/OFF
[/autoit] [autoit][/autoit] [autoit]
Global $htit = _WinAPI_GetSystemMetrics($SM_CYCAPTION)
Global $frame = _WinAPI_GetSystemMetrics($SM_CXDLGFRAME)$gui = GUICreate("Test Windows regions", 350, 210)
[/autoit] [autoit][/autoit] [autoit]
$btn_1 = GUICtrlCreateButton("Button 1", 100, 30, 150)
$btn_2 = GUICtrlCreateButton("Button 2", 100, 60, 150)
$btn_3 = GUICtrlCreateButton("Button 3", 100, 90, 150)
$btn_4 = GUICtrlCreateButton("Button 4", 100, 120, 150)
$btn_exit = GUICtrlCreateButton("Exit", 100, 150, 150)
GUISetState(@SW_SHOW)_GuiHole($gui, 0, 0, 350, 210)
[/autoit] [autoit][/autoit] [autoit]While 1
[/autoit] [autoit][/autoit] [autoit]
$msg = GUIGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE Or $msg = $btn_exit
ExitLoop
Case $msg = $btn_1
MsgBox(0, 'Klick', 'Button 1')
Case $msg = $btn_2
MsgBox(0, 'Klick', 'Button 2')
Case $msg = $btn_3
MsgBox(0, 'Klick', 'Button 3')
Case $msg = $btn_4
MsgBox(0, 'Klick', 'Button 4')
EndSelect
WEndFunc _GuiHole($h_win, $i_x, $i_y, $i_sizew, $i_sizeh)
[/autoit] [autoit][/autoit] [autoit]
Local $combined_rgn = _WinAPI_CreateRectRgn(0, 0, 0, 0)
_AddCtrlRegion($combined_rgn, $btn_1)
_AddCtrlRegion($combined_rgn, $btn_2)
_AddCtrlRegion($combined_rgn, $btn_3)
_AddCtrlRegion($combined_rgn, $btn_4)
_AddCtrlRegion($combined_rgn, $btn_exit)
_WinAPI_SetWindowRgn($h_win, $combined_rgn)
EndFunc ;==>_GuiHoleFunc _AddCtrlRegion($full_rgn, $ctrl_id)
[/autoit]
Local $ctrl_pos, $ctrl_rgn
$ctrl_pos = ControlGetPos($gui, "", $ctrl_id)
$ctrl_rgn = _WinAPI_CreateRectRgn($ctrl_pos[0] + $frame, $ctrl_pos[1] + $htit + $frame, _
$ctrl_pos[0] + $ctrl_pos[2] + $frame, $ctrl_pos[1] + $ctrl_pos[3] + $htit + $frame)
_WinAPI_CombineRgn($full_rgn, $full_rgn, $ctrl_rgn, $RGN_OR)
_WinAPI_DeleteObject($ctrl_rgn)
EndFunc ;==>_AddCtrlRegion -
je weniger installierte software auf dem pc, desto weniger
Du mußt doch keinen Mail-Client installieren. Ich verwende z.B. Thunderbird Portabel. -
Du mußt dir nur selbst die richtigen Fragen stellen und dann gezielt Antworten suchen.
Was sind MessageCodes?
Wo und Wann treten sie auf?
Welche Nachrichten werden transportiert?
Was ist notwendig um die Nachrichten abzufragen/auszuwerten?
Die Antworten darauf findest du in der AutoIt-Hilfe, MSDN oder auch beim Googeln. Denn besser können wir es auch nicht erklären. -
OK, dann schreibs einfach mit rein. Denn ich probier nicht jeden Code der hier steht.
Rein formal ist das Vorgehen identisch, hab mal kurz nachgelesen - soweit ich das verstanden hab, ist für Editfelder die Definition von HBRUSH erforderlich um Transparenz zu erzeugen. Mußt du mal selber in diversen Foren stöbern. -
Wie ich sehe hast du es noch nicht mal probiert!
Auch das Editfeld ist ein statisches Control, die Herangehensweise ist identisch. Du verwendest halt nur das Edit statt der Checkbox. -
wenn ich mein bild unter gif schpeicher ist die transparenz weg
Da hast du wohl den falschen Bild-Editor oder wählst nicht Transparenz an (Das geht nicht von allein, du mußt es festlegen).
Ansonsten hilft (wie immer) Hilfe lesen.
Zu GUICtrlCreatePic() findest du dort als Bsp.: ;----- example 3 PNG work araund by Zedna! -
Hab nochmal den ganzen Thread durchgeschaut, du hast also alle Skriptzeilen als Text und möchtest diese ausführen.
[autoit]
Dann mußt du Returns auch auffangen bevor du sie ausgibst. So z.B. geht es:Global $1 = Execute('Inputbox("Test","Gib bitte irgendwas ein^^")')
[/autoit]
Execute('MsgBox(64,"Info",$1)')
[autoit]
Oder, wenn du den Variablennamen (hier $1) auch aus dem Text beziehst:Assign('1',Execute('Inputbox("Test","Gib bitte irgendwas ein^^")'))
[/autoit]
Execute('MsgBox(64,"Info",$1)') -
Variablen aus einer Textdatei
Textdatei...Variablen...total confused. -
Noch ein Hinweis:
[autoit]
Wenn die Listbox mit GUICtrlCreateList() erstellt wurde, solltest du sicherheitshalber für die UDF das Handle verwenden. Dann ist gesichert, dass die Func's aus der UDF auch wirksam sind.$ListBox = GUICtrlCreateList()
[/autoit]
$hListBox = GUICtrlGetHandle($ListBox)