Combobox-Inhalt auswählen

  • Hallo,

    Bin auf der Suche nach einer Möglichkeit, eine fremde (d.h nicht von AutoIT erstellte) Combobox zu "finden" und einen Eintrag auszuwählen, egal was vorher ausgewählt war. Send() ist mir dafür aber zu unsicher, da die Vorgabeeinträge wechseln können (je nach Rechner).

    Im Internet lese ich immer wieder von der Funktion ControlCommand, mit der die Leute Comboboxen erfolgreich steuern.

    Ich kann allerdings machen, was ich will. Die Combobox wird weder geöffnet (ControlCommand ( "xyz", "", "[CLASS:ComboBox; INSTANCE:1]", "ShowDropDown")), noch wird ein Eintrag ausgewählt (ControlCommand ( "xyz", "", "[CLASS:ComboBox; INSTANCE:1]", "SelectString", "Test"))

    Mache ich einfach nur was falsch, ist das ein Bug (ich nutze 3.3.0.0) oder... Wie auch immer 8|

    Was mich auch interessieren würde... Kann sich eine Advanced Class Bezeichnung einfach so ändern? Ich habe hier nämlich bereits zwei mal das Phänomen gehabt, dass diese Werte plötzlich anders waren und ich sie ändern musste.


    Hoffe, jemand kann mir helfen =)

    2 Mal editiert, zuletzt von Chriz88 (5. September 2009 um 21:41)

  • Einmal im Leben will ich eine Combobox steuern und gerade die geht nich ;(
    Gibt es eine andere, ebenso sichere Lösung dafür? Send ist mir zu gewagt, irgendwie.

  • Hi, habs soweit, Code erst heute Abend, muss weg....
    ciao
    Andy

  • Hi,
    das VLC-Script:

    Spoiler anzeigen
    [autoit]

    #include <PtB_ClickBMP.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Opt("WinTitleMatchMode", 2)
    Opt("MouseCoordMode", 0) ;aktives fenster-koordinaten

    [/autoit] [autoit][/autoit] [autoit]

    Run("C:\Programme\VideoLAN\VLC\vlc.exe")
    WinWaitActive("VLC media player")
    WinActivate("VLC media player")
    Sleep(100)
    Send("^c") ;Aufnahmegerät öffnen
    WinWaitActive("Medien öffnen") ;
    MouseClick("left", 400, 80) ;combobox öffnen
    Sleep(100)

    [/autoit] [autoit][/autoit] [autoit]

    ;*************************************************************************************
    ;ab hier wird per Bitmapsuche der Schriftzug in der Dropdownliste der Combobox gesucht
    ;man muss die einzelnen Zeilen durchsuchen, weil
    $bitmap = "searcharea.bmp" ;dateiname suchbild, z.B mit PushTheButton zu erstellen, also die Zeile der Combobox
    $koord = _PtB_clickbmp($bitmap,"Medien öffnen") ;sucht die Koordinaten des Hotspots der Bitmap, d.h. den Schriftzug
    If @error Then MsgBox(0, 0, "Aufnahmemodus konnte nicht eingestellt werden")
    ;ab hier gehts ganz normal weiter
    ;*************************************************************************************

    [/autoit] [autoit][/autoit] [autoit][/autoit]


    dazu musst du noch meine UDF in deinem AutoIt-INCLUDE-Ordner abspeichern

    Spoiler anzeigen
    [autoit]

    #include <Array.au3>
    #include <GDIPlus.au3>
    #include <GDIPlusConstants.au3>
    #include <ScreenCapture.au3>
    #include <StructureConstants.au3>
    #include <WinAPI.au3>
    #include-once

    [/autoit] [autoit][/autoit] [autoit]

    ; #FUNCTION# ====================================================================================================================
    ; Name...........: _PtB_clickBMP
    ; Description ...: searches a Bitmap in the full Screen or in a Window and clicks at the found position of the Bitmap
    ; It is recommended to use the PushTheButton-Program for the creation of the Bitmap
    ; Syntax.........: _PtB_clickBMP($bitmapfile[, $hWin = "FULLSCREEN"])
    ; Parameters ....: $bitmapfile - Name of the Bitmap-File to search for
    ; $hWin - Title/Handle of the window to search in, or "FULLSCREEN"
    ;
    ; Return values .: Success - Array with coordinates of the Mouseclick x=array[0] y=array[1]
    ; - if "FULLSCREEN" then coordinates are absolute screen coordinates
    ; - otherwise relative coords to the active window
    ; Failure - @error is set
    ; Author ........: Andy @ http://www.autoit.de
    ; Modified.......:
    ; Remarks .......:
    ; Related .......:
    ; Link ..........;
    ; Example .......; Yes
    ; ===============================================================================================================================

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ;_PtB_findbmp_click klickt mit der linken Maustaste auf eine auf dem Bildschirm oder in einem Fenster gefundene Bitmap
    ;Das Bitmapfile ist eine z.B. von PushTheButton gelieferte Bitmap
    ;Das Windowshandle sollte entweder der Titel oder die ID des Fensters sein bzw Classname, alternativ "FULLSCREEN"
    ;
    ;TODO: wenn vertikale scrollbalken im fenster/fullscreen sind, scrollen erlauben und nur scrollbalken auf bewegung checken

    [/autoit] [autoit][/autoit] [autoit]

    Func _PtB_ClickBMP($bitmapfile, $hWin = "FULLSCREEN") ;rückgabe x- und y-position des gefundenen hotspots in einem array [0]und[1]

    [/autoit] [autoit][/autoit] [autoit]

    Dim $aresult[2] ;return array x- and y-coords
    Local $gefunden = 0, $maxanzahlpixel = 50, $exitflag = 0
    $opt_m=Opt("MouseCoordMode") ;sichern der Optionen, werden am ende der Funktion wieder hergestellt
    $opt_p=Opt("PixelCoordMode")
    $ptbfile = StringTrimRight($bitmapfile, StringLen($bitmapfile) - StringInStr($bitmapfile, ".") + 1) & ".ptb"
    ;im ptbfile sind Parameter für das Suchen der Bitmaps abgelegt
    FileOpen($ptbfile, 1) ;daten lesen
    If @error Then ;fehler beim datenlesen, oder ptb-Datei nicht vorhanden
    If FileExists($bitmapfile) Then ;wenn es aber eine Bitmap gibt, dann kann man auch nur mit der
    $anzahl_bestpixel = 500 ;bitmapsuche suchen
    Else ;wenn es weder Bitmap noch *.ptb-file gibt, fällt die Suche aus^^
    MsgBox(262144+1, "Fehler in Funktion _PtB_ClickBMP()", "Keine Bitmap und keine *.ptb-Datei mit Informationen zur Suche gefunden!" & @CRLF & "Bitte benutzen Sie das Programm PushTheButton, um eine Bitmap zu erzeugen!")
    SetError(1, 0, 1)
    Return -1
    EndIf
    Else ;ansonsten daten aus der *.ptb-Datei einlesen
    $check = FileReadLine($ptbfile, 1) ;pixelchecksum
    $pixel = FileReadLine($ptbfile, 2) ;pixelfarbe in hex RGB
    $anzahl_bestpixel = Number(FileReadLine($ptbfile, 3)) ;niedrigste Anzahl der gesuchten Pixel
    $px = FileReadLine($ptbfile, 4) ;x-Versatz des Hotspots innerhalb des pics
    $py = FileReadLine($ptbfile, 5) ;y-Versatz des Hotspots innerhalb des pics
    $dx = FileReadLine($ptbfile, 6) ;breite in pixel
    $dy = FileReadLine($ptbfile, 7) ;hoehe in pixel
    FileClose($ptbfile)
    EndIf
    If $hwin = "FULLSCREEN" Then
    Opt("PixelCoordmode", 1) ; für Fullscreen setzen
    Opt("MouseCoordMode", 1) ;gesamter screen
    $window_width = @DesktopWidth
    $window_height = @DesktopHeight
    Else
    Opt("PixelCoordmode", 0) ;für lokales Fenster setzen
    Opt("MouseCoordMode", 0) ;aktives Fenster
    $xy = WinGetPos($hwin) ;breite und höhe des Fensters
    $window_width = $xy[2]
    $window_height = $xy[3]
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $anzahl_bestpixel > $maxanzahlpixel Then ;wenn wenige passende farbige pixel auf dem Bildschirm sind...
    ConsoleWrite("Verfahren mit Bitmapsuche gewählt" & @CRLF) ;dann strings suchen (Bitmap2 in Bitmap1 suchen)
    ;If $windowshandle = "FULLSCREEN" Then

    [/autoit] [autoit][/autoit] [autoit]

    $start = TimerInit()
    ;~ Do
    ;~ If $exitflag Then ExitLoop ;esc gedrückt
    ;~ $alt = PixelChecksum(0, 0, $window_width, $window_height) ;bildschirminhalt sichern
    $aresult = _findbmp($hwin, $bitmapfile) ;suchen per stringfunktion in der Bitmap
    ;~ If Not IsArray($aresult) Then ;nicht gefunden
    ;~ Send("{PGDN}");runterscrollen
    ;~ $tooltip = ToolTip("Suche läuft: Scollen...", $window_width / 2, $window_height / 2 + 50)
    ;~ Sleep(200) ;wartezeit, bis gescrollt wurde
    ;~ $neu = PixelChecksum(0, 0, $window_width, $window_height) ;bildschirminhalt nach dem scrollen
    ;~ EndIf
    ;~ Until IsArray($aresult); Or $alt = $neu ;solange bis true oder nicht mehr weiter zu scrollen
    ;~ ToolTip("") ;tooltip löschen
    If IsArray($aresult) Then $gefunden = 1
    Else ;wenn es nur wenige Pixel in der angegebenen Farbe gibt, ist diese Variante mit pixelsearxch schneller
    ConsoleWrite("Verfahren mit Pixelsuche gewählt" & @CRLF)
    ;~ Do
    ;~ $alt = PixelChecksum(0, 0, $window_width, $window_height) ;bildschirminhalt sichern
    Local $x = 0, $y = 0
    While 1
    $pix = PixelSearch($x, $y, $window_width, $window_height, Dec($pixel)) ;pixelfarbe suchen
    If @error Or $exitflag Then ExitLoop ;nicht gefunden oder esc gedrückt, dann pagedown
    ;msgbox(0,"pix gefunden an",$pix[0]&" "&$pix[1])
    While 1
    $x = $pix[0] ;x- und y-koordinaten des gefundenen pixels (hotspot)
    $y = $pix[1]
    $prozent = ($y * $window_width + $x) * 100 / $window_width / $window_height
    $tooltip = ToolTip(StringFormat("Suche läuft : %.0f%%", $prozent), $window_width / 2, $window_height / 2)
    Local $p1x = $x - $px, $p1y = $y - $py ;umrechnen der hotspotkoordinaten für checksum
    Local $p2x = $p1x + $dx - 1, $p2y = $p1y + $dy - 1
    ; msgbox(0,"pixel mit farbe "&$pixel,$p1x&" "&$p1y&@crlf&$p2x&" "&$p2y&@crlf&PixelChecksum($p1x,$p1y,$p2x,$p2y))
    If PixelChecksum($p1x, $p1y, $p2x, $p2y) = $check Then ;wenn pixelchecksum gleich der gespeicherten pixelchecksum ist, dann gefunden
    $gefunden = 1
    $aresult[0] = $x
    $aresult[1] = $y
    ExitLoop
    EndIf
    $x += 1 ;ein pixel weiter in der zeile
    $pix = PixelSearch($x, $y, $window_width, $y, Dec($pixel)) ;pixel suchen
    If @error Or $exitflag Then ExitLoop ;wenn in der zeile kein pixel mehr, dann raus
    WEnd
    If $gefunden = 1 Then ExitLoop
    $x = 0 ;neue spalte
    ;msgbox(0,"nächste zeile",0)
    $y += 1 ;neue zeile
    WEnd
    ;~ If $exitflag Or $gefunden = 1 Then ExitLoop ;esc gedrückt oder gefunden
    ;~ Send("{PGDN}") ;runterscrollen
    ;~ $tooltip = ToolTip("Suche läuft: Scollen...", $window_width / 2, $window_height / 2)
    ;~ Sleep(200)
    ;~ $neu = PixelChecksum(200, 200, $window_width, $window_height)
    ;~ Until $alt = $neu ;solange, bis nicht mehr gescrollt werden kann
    EndIf
    $exitflag = 0
    ToolTip("")
    If $gefunden = 0 Then ;gesuchte Pixel nicht gefunden
    SetError(1, 0, 1)
    Return -1
    Else ;gefunden
    MouseClick("left", $aresult[0], $aresult[1]) ;auf die koordinaten klicken
    ;_arraydisplay($aresult)
    SetError(0, 0, 0)
    Opt("MouseCoordMode",$opt_m)
    Opt("PixelCoordMode",$opt_p)
    Return $aresult ;array mit den hotspot-koordinaten zurückgeben
    EndIf
    EndFunc ;==>_PtB_findbmp

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ;untersucht, ob Bitmap2 in Bitmap1 enthalten ist
    ;Originalfunc by JunkEW , modified by Andy@ http://www.autoit.de, finds the exact match
    Func _FindBMP($BMP1, $BMP2)
    Dim $BMP1Data = "", $BMP1Width = 0, $BMP1Height = 0, $BMP1LineWidth = 0;
    Dim $BMP2Data = "", $BMP2Width = 0, $BMP2Height = 0, $BMP2LineWidth = 0
    Dim $koord[2]
    Local $searchFor, $line, $iPos = 1, $imgBytes = 3
    ; Load the bitmap to search in
    _GetImage($BMP1, $BMP1Data, $BMP1Width, $BMP1Height, $BMP1LineWidth)
    $BMP1Data = BinaryToString($BMP1Data)
    _GetImage($BMP2, $BMP2Data, $BMP2Width, $BMP2Height, $BMP2LineWidth)
    $BMP2Data = BinaryToString($BMP2Data)
    $fillbyte=mod($BMP1LineWidth,3); aufgefüllte nullen am ende der bitmapzeile

    [/autoit] [autoit][/autoit] [autoit]

    If $BMP2Height = 0 Then
    SetError(1, 0, 0)
    Return False
    EndIf
    Local $searchFor1 = StringMid($BMP2Data, 1, ($BMP2Width * $imgBytes)) ;1. pixel-zeile in der bitmap2 (string)
    $iPos = StringInStr($BMP1Data, $searchFor1, 2, 1) ;1. fundstelle des strings in Bitmap2

    [/autoit] [autoit][/autoit] [autoit]

    ;zeilenweises vergleichen der beiden bitmaps, ist bitmap2 in bitmap1 enthalten?
    While 1
    Local $flag = 0
    If $iPos <> 0 Then ;nur, wenn es eine übereinstimmung gibt weitermachen
    $koord[0] = Mod(($iPos - 1) , $BMP1lineWidth) ;position innerhalb des Strings
    If $koord[0] / $imgBytes = Int($koord[0] / $imgBytes) Then ;prüfen ob ipos am anfang eines farbbits steht
    $prozent = $iPos / 3 * 100 / $BMP1Width / $BMP1Height
    $tooltip = ToolTip(StringFormat("Suche läuft : %.0f%%", $prozent) & @CRLF & "Zeile " & Int($iPos / $imgBytes / $BMP1Width), $BMP1Width / 2, $BMP1Height / 2)
    For $s = 2 To $BMP2Height ;zeilenweise das suchbild mit dem screen vergleichen
    $searchFor = StringMid($BMP2Data, 1 + (($s - 1) * $BMP2LineWidth), $BMP2Width * $imgBytes) ; s-te zeile aus dem ausschnitt
    $line = StringMid($BMP1Data, $iPos + (($s - 1) * $BMP1LineWidth), $BMP2Width * $imgBytes) ;zeile "unter" der gefundenen zeile im screen
    If $searchFor <> $line Then ;zeilen nicht gleich,
    $flag = 1
    ExitLoop ;exit for/next
    EndIf
    Next
    If $flag = 0 Then ;alle Zeilen haben übereingestimmt, Bitmap gefunden
    $koord[0] = Mod(($iPos - 1), $BMP1lineWidth) / $imgBytes
    $koord[1] = Int(($iPos - 1) / $BMP1lineWidth)
    Return $koord
    EndIf
    $iPos = StringInStr($BMP1Data, $searchFor1, 2, 1, $iPos + $imgBytes)
    If $iPos = 0 Then ExitLoop ;nicht gefunden
    Else ;ipos ist innerhalb eines farbbits und nicht am anfang
    $iPos = StringInStr($BMP1Data, $searchFor1, 2, 1, $iPos + 1)
    If $iPos = 0 Then ExitLoop
    EndIf
    Else
    ExitLoop
    EndIf
    WEnd
    SetError(1, 0, 0)
    Return 0 ;
    EndFunc ;==>_FindBMP

    [/autoit] [autoit][/autoit] [autoit]

    ;aus einer Datei oder einem Screenshot die Pixeldaten im BGR-Format in einen String schreiben
    ;Originalfunc by JunkEW , modified by Andy@ http://www.autoit.de gets the Bitmapdata
    Func _GetImage($BMPFile, ByRef $BMPDataStart, ByRef $Width, ByRef $Height, ByRef $Stride)
    _GDIPlus_Startup()
    Local $Scan0, $pixelData, $hbScreen, $pBitmap, $handle, $imgBytes = 3
    ; Load the bitmap to search in
    If StringUpper($BMPFile) = "FULLSCREEN" Then
    $hbScreen = _ScreenCapture_Capture("", 0, 0, -1, -1, False)
    If @error Then MsgBox(0, "", "Fehler Screencapture FULLSCREEN")
    $pBitmap = _GDIPlus_BitmapCreateFromHBITMAP($hbScreen); returns memory bitmap
    If @error Then MsgBox(0, "", "Fehler Bitmapcreate_FromHBITMAP")
    Else
    ;try to get a handle
    $handle = WinGetHandle($BMPFile)
    If @error Then
    ;Assume its an unknown handle so correct filename should be given
    $pBitmap = _GDIPlus_BitmapCreateFromFile($BMPFile)
    Else ;aktuelles fenster
    $xy = WinGetPos($BMPFile)
    ;_arraydisplay($xy)
    $hbScreen = _ScreenCapture_CaptureWnd("", $handle, 0, 0, $xy[2], $xy[3], False)
    If @error Then MsgBox(0, "", "Fehler Screencapturewnd")
    $pBitmap = _GDIPlus_BitmapCreateFromHBITMAP($hbScreen); returns memory bitmap
    If @error Then MsgBox(0, "", "Fehler BitmapCreateFromHBITMAP")
    EndIf
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    ;_GDIPlus_BitmapLockBits gibt $tagGDIPBITMAPDATA-Struktur zurück
    $BitmapData = _GDIPlus_BitmapLockBits($pBitmap, 0, 0, _GDIPlus_ImageGetWidth($pBitmap), _GDIPlus_ImageGetHeight($pBitmap), $GDIP_ILMREAD, $GDIP_PXF24RGB)
    If @error Then MsgBox(0, "", "Error locking region " & @error)
    $Stride = DllStructGetData($BitmapData, "Stride");Stride - Offset, in bytes, between consecutive scan lines of the bitmap. If the stride is positive, the bitmap is top-down. If the stride is negative, the bitmap is bottom-up.
    $Width = DllStructGetData($BitmapData, "Width");Image width - Number of pixels in one scan line of the bitmap.
    $Height = DllStructGetData($BitmapData, "Height");Image height - Number of scan lines in the bitmap.
    $pixelFormat = DllStructGetData($BitmapData, "PixelFormat");Pixel format - Integer that specifies the pixel format of the bitmap
    $Scan0 = DllStructGetData($BitmapData, "Scan0");Scan0 - Pointer to the first (index 0) scan line of the bitmap.
    $pixelData = DllStructCreate("ubyte lData[" & (Abs($Stride) * ($Height)) & "]", $Scan0)
    $BMPDataStart = DllStructGetData($pixelData, "lData") ;string, in dem die pixeldaten im BGR-Format stehen
    _GDIPlus_BitmapUnlockBits($pBitmap, $BitmapData)
    _GDIPlus_ImageDispose($pBitmap)
    _WinAPI_DeleteObject($pBitmap)
    EndFunc ;==>_GetImage

    [/autoit]


    Ausserdem benötigst du noch eine modifizierte Version von meinem PushTheButton-Programm, um Bitmaps vom Bildschirm "zu fotografieren", das habe ich unten angehängt.
    Im großen und ganzen funktioniert es so, daß die _PtB_clickBMP()-Funktion nach einer Übereinstimmung einer Bitmap mit dem Fensterinhalt sucht.
    Als Bitmap nehmen wir den Schriftzug in der Combobox vom VLC, den bekommst du folgendermassen.

    PushTheButton starten und bissl damit rumspielen, damit du weisst wie es funktioniert. Anleitung lesen nicht vergessen^^
    Zoomfaktor auf ca 9-10 einstellen (Mausrad oder +-Tasten numblock), Fenster mit ctrl-alt-Pfeiltaste auf volle Breite und ca 8-9 Pixel Höhe einstellen.
    Dann VLC starten, Medien, Aufnahmegerät, damit du ins Fenster "Medien öffnen " kommst. Aufnahmemodus aus der Combobox auswählen, dann das PushTheButtonfenster anwählen und den Mauscursor auf das Combobox-Feld stellen
    das sollte dann ungefähr so aussehen:
    [Blockierte Grafik: http://www.abload.de/thumb/vlc29ex4.jpg]
    Du kannst mit den Pfeiltasten feintuning machen, d.h. der Schriftzug sollte komplett im PtB-Fenster sein. Pass aber auf, daß die oberste Zeile im Fenster NIE NIE NIE komplett weiß ist, sonst sucht sich später das Script tot....Normalerweise findet er die Bitmap in ca. 1/10 Sekunde.
    Wenn du in etwa alles so hast wie auf dem Bild, dann drück ctrl-alt-m zum speichern und vergib einen Namen für die Bitmap.
    Genau diesen Namen gibst du in das VLC-Script bei $bitmap ein, und drückst mal F5^^
    Das VLC-Script startet den vlc und wählt aus der Combobox deine abgespeicherte "Bitmap" aus :rock:
    Ansonsten bekommst du eine Fehlermeldung und musst dich nochmal melden^^

    Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.

    ciao
    Andy

    Die Bildschirmauflösung ist übrigens völlig egal, hauptsache es sind nicht irgendwelche 120-DPI-Schriften eingestellt. Und wenn ist es auch egal, denn dann macht man einfach mehrere Bitmaps (XP, Vista, WIN7) und sucht die nacheinander ab, dauert eh nur 1/10 Sekunde pro Bild

  • Irre, vielen Dank! :thumbup:
    Wenn nichts dagegen spricht, werde ich einen Teil (ClickBMP) deines Programms in meines einbauen, habe ja schon alles bis zur Combobox in trockenen Tüchern.
    Aber wenn jetzt auch die DShow Combobox funktioniert wäre das gigantisch, weil daran hab ich mir wirklich die Zähne ausgebissen und meine Lösung hatte nicht immer (und wenn, dann sehr unzuverlässlich) funktioniert, weil manchmal die Combobox nicht erkannt wurde (habe es mit Imagesearch gemacht, aber irgendwie mag das mal so gar nicht). :S

    Auf jeden Fall klasse, dass du das für mich gebastelt hast :)

    2 Mal editiert, zuletzt von Chriz88 (5. September 2009 um 14:10)

  • Hi,
    kein Thema, an dieser Combobox habe ich mir auch die Zähne ausgebissen, nichtmal das hier hat Ergebnisse gebracht...

    [autoit]

    $hwnd = ControlGethandle("Medien öffnen","","QWidget51")
    ;ControlGethandle("title", "text", "classnameNN")
    Global $CB_FINDSTRING = 0x014C
    $i = dllcall("user32.dll","int","SendMessage","hWnd",$hwnd,"int",$CB_FINDSTRING,"int", -1,"str", "DVB")
    ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $i = ' & $i[0] & @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console
    ControlCommand ("Medien öffnen","", "QWidget51","SetCurrentSelection",$i[0])

    [/autoit]
  • Ich beiße übrigens gerade noch weiter und habe das ganze Projekt wieder über den Haufen geworfen. Diese VLC-Sache ist
    mir viel zu unsicher geworden. Irgendwie scheint VLC da intern was komisch zu handeln, denn stellenweise sind
    nach einem Neustart die Button IDs anders usw.

    Habe jetzt über eine weitere Anwendung die Einstellungsmöglichkeit gefunden und bisher funktioniert alles wunderbar,
    selbst die Combobox bekomme ich mit ControlCommand geöffnet. Dein Programm wollte ich jetzt dazu nutzen,
    den korrekten PAL-Standard aus der Dropdown-Liste zu wählen. Das Bild dazu ist vorhanden, allerdings springt der Mauszeiger
    automatisch immer ans linke obere Eck des Programmfensters, statt auf den Button zu klicken :/

    Ne Ahnung, woran das liegen könnte?

    Edit: Es funktioniert! Die "letzte Meile" war ne harte Nuss, aber das Programm läuft jetzt top. Mal gucken, wie es sich auf
    anderen Konfigurationen macht :)

    Einmal editiert, zuletzt von Chriz88 (5. September 2009 um 21:41)