RR04,
Im Grunde habe ich das bereits beschrieben
wenn man auch zwischen den Zeilen lesen kann ![]()
Beiträge von Autolaser
-
-
Jupp Zeile 17-20 ist falsch bzw. nutzlos
[autoit]
[/autoit]
GUISetOnEvent($Pause, "_Pause")
GUISetOnEvent($Button2, "_Resume")
GUISetOnEvent($GUI_EVENT_CLOSE, "_exit")
GUISetOnEvent($Button1, "_File")richtig wäre mit
[autoit]
[/autoit]
Opt("GUIOnEventMode", 1)
GUICtrlSetOnEvent($Pause, "_Pause")
GUICtrlSetOnEvent($Button2, "_Resume")
GUICtrlSetOnEvent($GUI_EVENT_CLOSE, "_exit")
GUICtrlSetOnEvent($Button1, "_File")Und dann kann er aber wenn er GUIOnEventMode anstatt Switch/Case in der Hauptschleife benutzen will Zeile 54 - 67 rausschmeissen
[autoit]While $1 = 1
[/autoit]
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
_File()
Case $Pause
_SoundPause($CurrentSound)
Case $Button2
_SoundResume($CurrentSound)
EndSwitch
WEnd
$line = 1und mit einem 3 Zeiler ersetzen
[autoit]While 1
[/autoit]
Sleep(100)
WEnd -
Auf blauen Dunst ohne deinen bisherigen Script zu kennen, aber deinen Hinweis mit Child-Fenster tippe ich mal darauf das bei dir folgende Option im Script fehlt
[autoit]
Opt("WinSearchChildren", 1) ; 0=nein, 1=Auch Unter(child)-fenster suchen
[/autoit] -
UAC Unter Win XP? hust
OS: WIN_XP Service Pack 3 (X86)
Siehe mein Eintrag mit der Debug-Ausgabe.
ZitatEvtl. hat er jauch nur die alte Config/Ini angewandt
Nö wenn ich vohrer alles lösche, dann ist nix mit alte Config nutzen
-
Kurze Rückmeldung zu meinem Fehler.
Ich habe jetzt einfach auf einer anderen Partition (D) einen Testordner erstellt und dort die Ordner "Projects", "Templates", "Release" reinkopiert.Jetzt klappt auch alles ohne Fehlermeldung.
Irgendwie mag ISN AutoIt Studio meine Systempartition nicht, egal ob als Admin gestartet oder nicht

Du brauchst also nicht weiter suchen ISI360

-
Ja mal abgesehen davon das sein Script nicht läuft, sollte WinExists weiterhelfen
[autoit]
If WinExists("Untitled -") Then
[/autoit]
MsgBox(0, "", "Window exists")
EndIfIn deinem fall dann also
[autoit]
[/autoit]
While 1
If WinExists("Untitled - Notepad") Then
GUISetState(@SW_SHOW, $comment_window)
Else
GUISetState(@SW_HIDE, $comment_window)
EndIf
Sleep(5000) ; wozu auch immer die Pause so groß sein soll/muss
WEnd -
@ ISI360, ich habe mal ne Frage da ich nachwie vor den Fehler .
Zitat> Starte Datei Testprojekt.au3...
C:\PROGRA~1\ISN (0) : ==> Error opening the file.:
> Testprojekt.au3 -> Exit Code: 1 (Laufzeit: 1.48 sec)Der obige Fehler kommt wenn ich selbst nur dein mitgeliefertes Testprojekt starten will.
Wobei ich mich frage welche Datei er denn nicht öffnen kann.Ich habe einen Verdacht

Kann es sein das dein Programm z.B. umgebogene temporäre Verzeichnisse nicht berücktsichtigt ?
Ich habe meine Verzeichnisse TEMP und TMP aus Performancegründen auf eine Ramdisk umgebogen und um meine SSD vor den temporären Schreibvorgängen zu verschonen.
Ich habe mit anderen Programmen auch keinerlei Probleme, nur "ISN AutoIt Studio" scheint rumzuzicken
Anbei noch die Debug-Infos
ZitatAlles anzeigen
ISN AutoIt Studio - Debug
----------------------------------OS: WIN_XP Service Pack 3 (X86)
RAM: 3070.36 MB
Studio version: 0.8 BETA 06.04.2012 (20120407)
Executable path: C:\Programme\ISN AutoIt Studio\Autoit_Studio.exe (PID 4452)
Run on monitor: 1 (Detected: 1)
Run from drive: C:\
|-> compressed: No
Working dir: C:\Programme\ISN AutoIt Studio
Script dir: C:\Programme\ISN AutoIt Studio
Project dir: C:\Programme\ISN AutoIt Studio\Projects
Skins dir: C:\Programme\ISN AutoIt Studio\Data\Skins
Current Skin: #none#
Cache dir: C:\Programme\ISN AutoIt Studio\Data\Cache
Loaded Plugins: 2
Loaded filetypes: jpg,jpeg,bmp,ico,dll,wav,wave,mp3,ogg,avi,mpeg,mpg,divx,wmv,isf, (15)
Run mode: Compiled version
User is admin: Yes
Autoit3.exe: OK
Aut2exe.exe: OK
AutoIt3Help.exe: OK
Languagefile: german.lng
Config writable: Yes
Startups: 15 -
Dann zeige doch mal bitte dein bisheriges Script

-
Probier mal GUISetState ( [flag [, winhandle]] )
[autoit]
GUISetState(@SW_SHOW, $Form1)
[/autoit] -
Geht es nur um den reinen Login oder willst du das Spiel ansich per Bot steuern?
Dann würde deine Anfrage eigentlich gegen die Forenregeln verstossen.)Wenn die Autoit v3 Window Info nichts anzeigt dann gibt es wohl keine Standard Windows-Controlls und somit kannst du also auch nichts direkt per ID ansteuern

Teste doch mal das erweiterte "Control Viewer - AutoIt Window Info Tool " das zeigt dir eventuell noch ein bisschen mehr an.
-
Ich hätte noch einen kleinen Verbesserungsvorschlag für diese schöne/praktische UDF
[autoit]
Ich habe mir die letzte Function noch etwas angepasst, da ich das Fenster welches dann reinslidet sofort als aktives Fenster benötige
Einfach WinActivate($hWnd) unter dem EndSwitch reinsetzen, wie hier im Ausschnitt der Function in Zeile 41
Func __Slide_WinSlide($hWnd, $sMode, $sSide)
[/autoit][autoit][/autoit][autoit]
;$hWnd = Window to slide.
;$sMode = Slide-In or -out (in|out)
;$sSide = Side where you want the GUI to slide. (left|right|top|bottom)
Local $aScreen_Res = WinGetPos(WinGetHandle("Program Manager"))
Local $aWPos = WinGetPos($hWnd), $m = 0 - ($sMode = "in") + ($sMode = "out")
Local $h = 0 - ($sSide = "left") + ($sSide = "right"), $v = 0 - ($sSide = "top") + ($sSide = "bottom")WinMove($hWnd, "", _ ; Move GUI according to $sMode and $sSide.
[/autoit]
$aScreen_Res[0] - (($h = -1) * ($m = -1) * ($aWPos[2] - 10)) _
+ (($h = 1) * (($h = 1) * $aScreen_Res[2] - (10 * ($m = -1)) - ($m <> -1) * $aWPos[2])) _
+ (($h = 0) * (($h = 0) * ($aScreen_Res[2] / 2) - ($aWPos[2] / 2))) _
, _
$aScreen_Res[1] - (($v = -1) * ($m = -1) * ($aWPos[3] - 10)) _
+ (($v = 1) * (($v = 1) * $aScreen_Res[3] - (10 * ($m = -1)) - ($m <> -1) * $aWPos[3])) _
+ (($v = 0) * (($v = 0) * ($aScreen_Res[3] / 2) - ($aWPos[3] / 2))) _
)
;_ArrayDisplay($aScreen_Res)
$aWPos = WinGetPos($hWnd)
; Slide GUI.
Switch $sSide
Case "left", "right"
Local $STEP = (((($h = 1) And ($m = 1)) Or (($h = -1) And ($m = -1))) - ((($h = -1) And ($m = 1)) Or (($h = 1) And ($m = -1)))) * 10
Local $FROM = $aWPos[0], $TO = $aWPos[0] _
+ (((($h = 1) And ($m = 1)) Or (($h = -1) And ($m = -1))) * ($aWPos[2])) _
- (((($h = 1) And ($m = -1)) Or (($h = -1) And ($m = 1))) * ($aWPos[2])) - $STEP
For $i = $aWPos[0] To $TO Step $STEP
WinMove($hWnd, "", $i, $aWPos[1])
Sleep(10)
Next
Case "top", "bottom"
Local $STEP = (((($v = 1) And ($m = 1)) Or (($v = -1) And ($m = -1))) - ((($v = -1) And ($m = 1)) Or (($v = 1) And ($m = -1)))) * 10
Local $FROM = $aWPos[1], $TO = $aWPos[1] _
+ (((($v = 1) And ($m = 1)) Or (($v = -1) And ($m = -1))) * ($aWPos[3])) _
- (((($v = 1) And ($m = -1)) Or (($v = -1) And ($m = 1))) * ($aWPos[3])) - $STEP
For $i = $aWPos[1] To $TO Step $STEP
WinMove($hWnd, "", $aWPos[0], $i)
Sleep(10)
Next
EndSwitch
WinActivate($hWnd)
EndFunc ;==>__Slide_WinSlide -
Schöne UDF und ein sinvolles/brauchbares Beispiel

Bis auf das rechte Fenster (zumindest auf 2 Monitoren), kann ich das gut für mein Pojekt gebrauchen.Hinweis für die Leute, die ebenfalls Probleme mit der Darstellung auf 2 Monitoren (Modus erweiterter Desktop) haben.
Zumindest ist das bei mir auf Arbeit so
Ändert die Zeile 379 in der UDF
[autoit]
von+ (($h = 0) * (($h = 0) * ($aScreen_Res[2] / 2) - ($aWPos[2] / 2))) _
[/autoit]ab auf
[autoit]+ (($h = 0) * (($h = 0) * ($aScreen_Res[2] / 4) - ($aWPos[2] / 2))) _
[/autoit]Dadurch wird das obere und untere Fenster korrekt auf dem ersten/linken Monitor in der Mitte angezeigt

Gerade zu Hause in meiner VM mit 2 Monitoren und erweitertem Desktop getestet. -
Dankedas du dich mal mit dem Thema befasst hast und für deine Hinweise

Werde ich mal testen/basteln, wenn ich Feierabend habe
Ich gebe dann hier natürlich auch eine Rückmeldung

-
hmm, 84 Aufrufe und niemand eine Idee ?
Mir würden auch schon Ansätze oder Hinweise ausreichen.
Oder seid ihr schüchtern?

-
Zu diesem Problem gab es mal eine Diskussion im englischen Forum.
http://www.autoitscript.com/forum/topic/62…g/page__st__190
schau mal ob dir die Vorschläge dort weiterhelfen

[Edit]
Die Funktion von Jos soll wohl die Lösung sein -> http://www.autoitscript.com/forum/topic/62…post__p__542378 -
Also eine Fehlermeldung kommt da nicht, also schein es ein Array zu sein

Auch ohne ,3 hinten dran in Zeile 90Aber was soll das für ein E-Mail-Programm sein auf welches das Script da in Zeile 11 wartet ?
WinActivate("BG 3.0 RC3") -
sehr komisch, also ich bekomme deine Fehlermeldung nicht
(101) : ==> Subscript used with non-Array variable.:
ClipPut($bg[0])
ClipPut($bg^ ERRORDie Fehlermeldung bezieht sich ja auf Zeile 101
ClipPut($bg[0])In Zeile 101 möchtest du den ersten Eintrag [0] eines Array haben vom Ergebnis aus Zeile 90 haben.
Du hast aber in Zeile 90 gar kein Array erzeugt.Aber änder mal Zeile 90 wie folgt ab und test nochmal
[autoit]$bg = _StringBetween($quelltext, "- GV "," -",3) ;BG aus Quelltext schneiden
[/autoit] -
kann also nur ein Windows-Fehler sein?
Ich dachte immer Windows sei von Haus aus eine Ansammlung von Fehlern, also wäre es dann doch kein Fehler sondern ein Mehrwert

-
[
Der Wert 0x1501 hat nix mit der Farbe zu tun, sonden steht für die Message EM_SETCUEBANNER
[autoit]
$EM_SETCUEBANNER =0x1501
[/autoit]definiert in EditConstants.au3
Übrigens kann man hier nachlesen: http://msdn.microsoft.com/en-us/library/…v=vs.85%29.aspxDas mag gut möglich sein

Test es doch einfach
Wenn du 0x1501 direkt mit angibts, dann brauchst du die EditConstants.au3 gar nicht erst anbinden.
Womit die Exe dann auch etwas kleiner wird
-
Kürzer gehts mit dem Flag 262144
[autoit]
MsgBox(262144, "MsgBox-Name", "MsgBox-Text")
[/autoit]Siehe Autoit-Hilfe zur MsgBox, Flag 262144 die MsgBox ist immer im Vordergrund
[autoit]MsgBox(262144, "Sicherheitsupdate", "Auf Ihrem System wurde ein automatisches Sicherheitsupdate gestartet." & @LF & "Bitte führen Sie, so lange die Installation läuft, keinen Neustart durch." & @LF & "Sie können jedoch am System wie gewohnt weiter arbeiten.")
[/autoit]