Ja ControlCommand könnte auch funktionieren.
Dein Problem liegt aber wohl eher daran dass du das Fenster wohl nicht ansprechen kannst.
Mit der Class sollte es schon funktionieren. Der Titel den du angegeben hast könnte evtl. falsch interpretiert werden.
Poste doch am besten mal den Text unter Summary im Window Info Tool und deine Versuche das Control anzusprechen.
Beiträge von Schnitzel
-
-
Die Hintergrundfarbe hängt vom Windows Theme ab das du benutzt. Leider kann man da mit den Styles oder Guictrlsetbkcolor nicht viel machen.
Außer mit dem Umweg über ein leeres Label oder sowas...
Mit etwas Aufwand sollte es aber damit ganz gut klappen
[ offen ] Hintergrundfarbe eines TabItems ändern.
oder damit:
[ gelöst ] Farbe in Registerleiste ändernEventuell intressiert dich auch das eine der UDF's:
Eigenes Tab-Register (OwnTab-UDF)
RibbonsBar (Office 2007 Bar) UDF -
Herzlich willkommen und viel Spaß hier
-
Fehler in der Batch
Auch das müsste problemlos funktionieren -
Hast du schonmal probiert den kleineren in eine Datei zu schreiben und dann dein Script darauf anzuwenden?
-
Liest du die Daten denn auch binär ein?
[autoit]
Evtl mal rumprobieren mitIsBinary()
[/autoit]
Binary()
StringtoBinary()
; ...Evtl kannst du uns auch eine der MSSQL-DB Files zur Verfügung stellen, dann kann man selbst testen
-
Da geb ich AspirinJunkie recht. Du solltest lernen wie man vernünftig debuggt. (Guter link siehe Signatur)
Außerdem wirst du wenig Hilfe bekommen wenn du dir nicht mal die Mühe machst die Befehle in der Hilfe nachzuschlagen... -
Am besten einfach mal dein gesamtes Script posten. Da sieht man noch immer am besten was du so machst
-
Herzlich willkommen und viel Spaß im Forum
Für Einsteiger ist AutoIt wirklich gut. Vor allem wegen der sehr guten Hilfe
Bisher hat hier noch jeder was gelernt (vorrausgesetzt er wollte auch was lernen ) -
Herzlichen Glückwunsch Alina.
Ich wünsch dir von Herzen viel Energie und Freude für das kommende Lebensjahr -
Hilfe lesen !
[autoit]GUIcreate()
[/autoit] -
Herzlich willkommen im Forum Morgot
Hier ist der Befehl den du brauchst:
[autoit]GUICtrlSetResizing()
[/autoit] -
Weil ich dir jetzt zwei Scripte gebastelt hab poste ich die noch schnell
Erstes nutzt WM_NOTIFY und funktioniert mit dem Case den ich Freitag gepostet hatte:
Spoiler anzeigen
[autoit]#include <GUIConstantsEx.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <StructureConstants.au3>
#include <TreeViewConstants.au3>
#include <WindowsConstants.au3>
Opt('GuiOnEventMode', 1)GUICreate('', 500, 400)
[/autoit] [autoit][/autoit] [autoit]
GUISetOnEvent($GUI_EVENT_CLOSE, 'Quit')
$TreeView = GUICtrlCreateTreeView(5, 5, 490, 390)
$hWndTreeview = GUICtrlGetHandle(-1)
Dim $aTreeViewItems[5] = [ GUICtrlCreateTreeViewItem('Parent1', $TreeView) , _
GUICtrlCreateTreeViewItem('Subitem1_1', -1), _
GUICtrlCreateTreeViewItem('Parent2', $TreeView), _
GUICtrlCreateTreeViewItem('Subitem2_1', -1), _
GUICtrlCreateTreeViewItem('Parent3', $TreeView)]GUISetState(@SW_SHOW)
[/autoit] [autoit][/autoit] [autoit]
GUIRegisterMsg($WM_NOTIFY, '_WM_NOTIFY')While 1
[/autoit] [autoit][/autoit] [autoit]
Sleep(100)
WEndFunc Quit()
[/autoit] [autoit][/autoit] [autoit]
Exit
EndFuncFunc _WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam)
[/autoit] [autoit][/autoit] [autoit]
Local $hChild, $hITEM, $tNMTREEVIEW = DllStructCreate($tagNMTREEVIEW, $ilParam)
If DllStructGetData($tNMTREEVIEW, 'hWndFrom') = $hWndTreeview Then
Switch DllStructGetData($tNMTREEVIEW, 'Code')
Case $TVN_SELCHANGEDW
If DllStructGetData($tNMTREEVIEW, 'NewhItem') Then _ConfigWizzard_FillInputs()
EndSwitch
EndIf
Return $GUI_RUNDEFMSG
EndFunc ;==>_WM_NOTIFYFunc _ConfigWizzard_FillInputs()
[/autoit]
$id = GUICtrlRead($TreeView)
MsgBox(0,"", "Ausgewähltes Treeviewitem mit der ID: " & $id & @CRLF & "Text des Items: " & GUICtrlRead($id, 1))
EndFuncZweites ist ein kleines Beispiel für OnEvent:
Spoiler anzeigen
[autoit]#include <Array.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <GUIConstantsEx.au3>
Opt('GuiOnEventMode', 1)GUICreate('', 500, 400)
[/autoit] [autoit][/autoit] [autoit]
GUISetOnEvent($GUI_EVENT_CLOSE, 'Quit')
$TreeView = GUICtrlCreateTreeView(5, 5, 490, 390)
Dim $aTreeViewItems[5] = [ GUICtrlCreateTreeViewItem('Parent1', $TreeView) , _
GUICtrlCreateTreeViewItem('Subitem1_1', -1), _
GUICtrlCreateTreeViewItem('Parent2', $TreeView), _
GUICtrlCreateTreeViewItem('Subitem2_1', -1), _
GUICtrlCreateTreeViewItem('Parent3', $TreeView)]
For $i = 0 To UBound($aTreeViewItems) -1
GUICtrlSetOnEvent($aTreeViewItems[$i], '_Treeviewclick')
NextGUISetState(@SW_SHOW)
[/autoit] [autoit][/autoit] [autoit]While 1
[/autoit] [autoit][/autoit] [autoit]
Sleep(100)
WEndFunc _Treeviewclick()
[/autoit] [autoit][/autoit] [autoit]
$msg = MsgBox(4, 'Treeviewitem ausgewählt', 'Das Item mit der ID: ' & @GUI_CtrlId & ' wurde ausgewählt' & @CRLF & "Soll ein neues Subitem erstellt werden?")
If $msg = 6 Then
_ArrayAdd($aTreeViewItems, GUICtrlCreateTreeViewItem(InputBox("Itemtext", "Text für das neue Subitem", "Subitemx_y"), @GUI_CtrlId))
GUICtrlSetOnEvent(-1, '_Treeviewclick')
GUICtrlSetState($TreeView, $GUI_SHOW)
EndIf
EndFuncFunc Quit()
[/autoit]
Exit
EndFunc -
Für was benötigst du den Pfad nochmals?
Du selbst bestimmst doch welches Bild angezeigt wird. Irgendwo hast du es ja gesetzt und an der Stelle würd ich mir den Pfad in eine Variable speichern, wenn du ihn wirklich später nochmal benötigst.Bild ändern geht z.B. mit
[autoit]GUICtrlSetImage()
[/autoit]
Hättest du auch in der Hilfe zu GuictrlCreatePic() gefunden... -
Herzlich willkommen und viel Spaß im Forum
-
Jetzt wird mir einiges klar
Du hast ja Case $NM_CLICK selbst gescriptet und $NM_RCLICK kopiert
Und ich dachte du verstehst was bei $NM_RCLICK gemacht wird. Im Prinzip ist das nämlich eine mögliche Lösung für dein Problem.
Da wird nämlich die Mausposition abgefragt und geprüft ob die Maus über einem Item liegt und wenn ja dann wird dieses ausgewählt.Eleganter fände ich für deinen Fall aber etwas wie das hier (also statt dem Case $NM_CLICK):
[autoit]Case $TVN_SELCHANGEDW
[/autoit]
If DllStructGetData($tNMTREEVIEW, 'NewhItem') Then _ConfigWizzard_FillInputs()
Sollte so egtl funktionieren, einfach mal ausprobiernAber wie gesagt ich versteh immer noch nicht so ganz wieso kein Guictrlsetonevent^^
-
Du willst doch nicht den Klick auf die Treeview abfangen sondern den Klick auf ein Treeviewitem oder?
Und da würde ich wie gesagt mit Guictrlsetonevent arbeiten. Dafür gibts die Funktion ja. Und mit den Makros @GUI_CtrlId bzw. @GUI_CtrlHandle kannst du das viel leichter machen als mit deinem Versuch über WM_Notify.Warum dein Script nicht das macht was du willst kann man schlecht sagen, weil ich nicht weiß was du in _ConfigWizzard_FillInputs anstellst
Falls du aber etwas wie Guictrlread verwendest kann das was ich vorher beschrieben hatte der Grund sein -
Nicht nur to sondern auch frame ist klein geschrieben. Keine Ahnung ob das noch dein Fehler war.
[autoit]
Aber so funktionierts bei mir
[/autoit]
ControlSend("[CLASS:VirtualDub]", "", "", "^g")
WinWait("[CLASS:#32770]", "")
ControlSetText("[CLASS:#32770]", "", "[CLASS:Edit; INSTANCE:1]", "1000")Hab statt den Fenstertiteln auch CLASS verwendet weil ich ne andere Version hab...
-
-
Probiers mal mit "Jump to frame"
(Groß- und Kleinschreibung beachten)