GUICtrlCreateIcon kann man auf eine ico- oder bmp-Datei anwenden.
Was kann ich ein Icon mit einer png-Datei erzeugen?
Recht vielen Dank schon einmal für eine Antwort.
GUICtrlCreateIcon kann man auf eine ico- oder bmp-Datei anwenden.
Was kann ich ein Icon mit einer png-Datei erzeugen?
Recht vielen Dank schon einmal für eine Antwort.
Ehrlich gesagt weißch jetzt auch icht mehr, wie ich darauf gekommen bin, dass es am GUICtrlSetBkColor liegt.
Aber das mit dem Dummy-Button ist eine gute Idee.
Vielen Dank für eure Hilfe!
Legeiich mit GUICtrlSetBkColor für Buttons eine Hintergrundfarbe fest, so erhält der erste Button den Tastatur-Focus.
Kein Button soll aber den Focus besitzen. Was kann ich dagegen tun?
Beispiel:
Ich arbeite mit AutoIt 3.3.8.1.
Warum ich von AutoIt 3.3.14.... nichts wissen möchte, erkennt ihr hier:
Vielen Dank euch allen.
So wie ich es mir vorgestellt habe, geht es also nicht.
Ic h habe eine Zeichenfolge "yyy" und möchte die Variable
Local $yyy
mit dem Wert "zzz" erzeugen.
Ich hatte gedacht, das geht mit Assign.
Assign("yyy", "zzz",1)
$y=$yyy
Aber das klappt nicht.
Habe ich etwas falsch gemacht oder wie könnte es man anders erreichen?
Hallo BugFix,
vielen Dank für Deine Antwort.
Mit AutoIt-Befehlen hatte ich es schon versucht, hatte aber auch nicht geklappt. Deshalb bin ich auf die etwas abwegige Batch-Methode gekommen. Aber eigenartig ist es schon, dass der Batch-Aufruf über Autoit anders reagiert als der direkte Start der batch-Datei.
Jedenfalls möchte mich ich bei dir sehr bedanken, denn mit deiner Empfehlung "Restarting explorer" klappt es jetzt prima.
Starte ich die Batch-Datei mit de cmd-Kommandos
TASKKILL /F /IM explorer.exe
Start explorer.exe
per Doppelklick wird der Explorer beendet und danach wieder neu gestartet mit dem Ergebnis, dass der Desktop wieder angezeigt wird.
Starte ich jedoch die Batch-Datei aus einem AutoIt-Programm heraus
Run("batch.bat")
so wird der Explorer ebenfalls beendet. Aber statt der Anzeige des Desktops wird der Ordner "DieserPC" geöffnet, und der Bildschirm bleibt ansonsten schwarz.
Was kann ich tun? Bzw. was mache ich falsch?
Noch einen Fehler beseitigt:
#include <MsgBoxConstants.au3>
#include <GUIConstantsEx.au3>
Global $browserExe="C:\Program Files\Mozilla Firefox\firefox.exe"
Global $browsertitel="Mozilla Firefox"
Opt("WinTitleMatchMode", 2) ; 1=vom Anfang, 2=enthält, 3=genau, 4=fortgeschritten, -1 bis -4=Groß-/Klein ignorieren
$exist=WinExists($browsertitel)
If $exist=0 Then
Run($browserExe)
WinWait($browsertitel, "", 10)
EndIf
$hWnd=WinActivate($browsertitel)
WinWaitActive($hWnd,"",10)
$y=yFirefox($hWnd)
MsgBox(0x40000,"Firefox-y-Pixelposition",$y)
If $exist=0 Then WinClose($hWnd)
;======================================================================
#cs ----------------------------------------------------------------------------
$hWnd Handle des Firefox-Fensters
Hinterlässt die y-Pixelposition unterhalb der Menüleisten
#ce ----------------------------------------------------------------------------
Func yFirefox($hWnd)
Local $yDatei="yFirefox.txt"
$vermutet = 0
$hdl=FileOpen($yDatei,0)
If $hdl<>-1 Then
$vermutet=FileRead($hdl)+0
FileClose($hdl)
EndIf
Do
$ppp=WinGetPos($hWnd)
$err=@error
Sleep (50)
Until $err<>1
If $vermutet<>0 AND PixelGetColor($ppp[0]+30,$vermutet+$ppp[1]+7)=0xCCCCCC Then Return $vermutet
;---- >
$gui=GUICreate("Progress", 220, 100, 400, 800 )
$progressbar1 = GUICtrlCreateProgress(10, 10, 200, 20)
GUISetState(@SW_SHOW)
WinSetOnTop("Progress","",1 )
;---- <
$fehler=0
$vorher=0
For $i=$ppp[1] To $ppp[1]+$ppp[3]
$iColor=PixelGetColor($ppp[0]+30,$i)
If $iColor=0xCCCCCC Then
If $vorher=0xF5F6F7 Then ExitLoop
$fehler=1
ExitLoop
EndIf
$vorher=$iColor
If $i=$ppp[1]+$ppp[3] Then
$fehler=2
ExitLoop
EndIf
;---- >
If Mod($i,10)=0 Then GUICtrlSetData($progressbar1, ($i-$ppp[1])/2)
$msg = GUIGetMsg()
If $msg = $GUI_EVENT_CLOSE Then Exit
;---- <
Next
;---- >
GUIDelete($gui)
;---- <
$y=$i-$ppp[1]-7
If $fehler<>0 Then MsgBox(0x40000,"","Firefox-Fenster hat geänderten Aufbau"&@CRLF&@CRLF&" Abbruch!")
$hdl=FileOpen($yDatei,2)
FileWrite($hdl,$y)
FileClose($hdl)
;#cs
;FileDelete($yDatei)
;#ce
Return $y
EndFunc
Alles anzeigen
Mein Programm für IE lief im Hintergrund, wenn ich Online-Banking mache.Hat alles beobachtet und mir Hilfestellungen gegeben.
Jetzt muss ich es auf Firefox umstellen.
Überarbeitet:
#include <MsgBoxConstants.au3>
#include <GUIConstantsEx.au3>
Global $browserExe="C:\Program Files\Mozilla Firefox\firefox.exe"
Global $browsertitel="Mozilla Firefox"
Opt("WinTitleMatchMode", 2) ; 1=vom Anfang, 2=enthält, 3=genau, 4=fortgeschritten, -1 bis -4=Groß-/Klein ignorieren
$exist=WinExists($browsertitel)
If $exist=0 Then
Run($browserExe)
WinWait($browsertitel, "", 10)
EndIf
$hWnd=WinActivate($browsertitel)
WinWaitActive($hWnd,"",10)
$y=yFirefox($hWnd)
MsgBox(0x40000,"Firefox-y-Pixelposition",$y)
If $exist=0 Then WinClose($hWnd)
;======================================================================
#cs ----------------------------------------------------------------------------
$hWnd Handle des Firefox-Fensters
Hinterlässt die y-Pixelposition unterhalb der Menüleisten
#ce ----------------------------------------------------------------------------
Func yFirefox($hWnd)
Local $yDatei="yFirefox.txt"
$vermutet = 0
$hdl=FileOpen($yDatei,0)
If $hdl<>-1 Then
$vermutet=FileRead($hdl)+0
FileClose($hdl)
EndIf
Do
$ppp=WinGetPos($hWnd)
$err=@error
Sleep (50)
Until $err<>1
If $vermutet<>0 AND PixelGetColor($ppp[0]+30,$vermutet-1)=0xCCCCCC Then Return $vermutet
;---- >
$gui=GUICreate("Progress", 220, 100, 400, 800 )
$progressbar1 = GUICtrlCreateProgress(10, 10, 200, 20)
GUISetState(@SW_SHOW)
WinSetOnTop("Progress","",1 )
;---- <
$fehler=0
$vorher=0
For $i=$ppp[1] To $ppp[1]+$ppp[3]
$iColor=PixelGetColor($ppp[0]+30,$i)
If $iColor=0xCCCCCC Then
If $vorher=0xF5F6F7 Then ExitLoop
$fehler=1
ExitLoop
EndIf
$vorher=$iColor
If $i=$ppp[1]+$ppp[3] Then
$fehler=2
ExitLoop
EndIf
;---- >
If Mod($i,10)=0 Then GUICtrlSetData($progressbar1, ($i-$ppp[1])/2)
$msg = GUIGetMsg()
If $msg = $GUI_EVENT_CLOSE Then Exit
;---- <
Next
;---- >
GUIDelete($gui)
;---- <
$y=$i-$ppp[1]-7
If $fehler<>0 Then MsgBox(0x40000,"","Firefox-Fenster hat geänderten Aufbau"&@CRLF&@CRLF&" Abbruch!")
$hdl=FileOpen($yDatei,2)
FileWrite($hdl,$y)
FileClose($hdl)
;#cs
FileDelete($yDatei)
;#ce
Return $y
EndFunc
Alles anzeigen
Effektiv weiß niemand einen Rat.
Beim Internet Explorer war das einfach mit ControlGetPos.
Ich habe es nun für Firefox so gemacht. Nicht elegant aber es funktioniert
Es tut sich nichts.
WinAPIConv.au3 ist nicht in C:\Program Files (x86)\AutoIt3 enthalten.
Nun muss ich sagen, dass ich noch mit Autoit 3.3.8.1 arbeite. Und zwar aus diesem Grunde:
https://autoit.de/thread/85593-bitmap-datei-mit-fileread-lesen/ (siehe Posts #1, #18, #19 )
Vielen Dank!
Wo finde ich
#include <WinAPIConv.au3> ?
Vielen Dank water für deinen guten Hinweis.
Da werde ich mich wohl mühselig mit der englischen Hilfe beschäftigen müssen.
In unserer Jugend hatten wir keinen Englischunterricht, sondern mussten uns 7 Jahre mit Russisch herumplagen.
Nochmals vielen Dank für die Antwort.
Mit der Funktion WinGetText kann man beim Internet Explorer die geöffneten Registerkarten (bzw. Tabs) ermitteln.
Da der Internet Explorer nicht mehr weiterentwickelt wird, kann man schon mit einigen WebSites nicht mehr richtig arbeiten.
Wie kann man bei Edge, FireFox oder Google Chrome die geöffneten Tabs ermitteln?
Vielen Dank alpines für den Hinweis!
Nachdem ich lange experimentiert habe, ist mir jetzt die Lösung eingefallen:
GUICtrlSetState($iCheckbox,1)