Mein Script schließt sich immer sofort - nur wieso?

06/10/2011 19:12 Nonilol#1
Hallo ihr EPVPler ;)

Problem Nr.1 gelöst - auf Seite 2 wartet das nächste :/
würde mich freuen wenn ihr da reinschauen würdet


ich habe irgendwie ein Problem mit meinem Script:
Immer wenn ich es öffne, schließt es sich sofort wieder.
Findet ihr den Fehler in meinem Code?

Und noch eine Frage:
Wie schaffe ich es, dass wenn man auf den Button klickt ein neuer Script gestartet wird (ShellExecute) und dass dann der erste Script geschlossen wird?

Code:
#include <AVIConstants.au3>
#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <Constants.au3>
#include <DateTimeConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <ListboxConstants.au3>
#include <ListviewConstants.au3>
#include <ProgressConstants.au3>
#include <SliderConstants.au3>
#include <StaticConstants.au3>
#include <TabConstants.au3>
#include <TreeviewConstants.au3>
#include <UpdownConstants.au3>
#include <WindowsConstants.au3>
#include <string.au3>


 ; WINDOW
$gui = GUICreate("divisa | engine - Was für ein Design möchtest du erstellen?", 340, 270)
GUISetState(@SW_SHOW)

$buttoni = GUICtrlCreateButton("Neues Iceblue Design erstellen", 140, 15, 180, 30)
GUICtrlSetBkColor(-1, 0xA6CAF0)
GUICtrlSetCursor (-1, 0)

$buttonb = GUICtrlCreateButton("Neues Butterfly Design erstellen", 140, 75, 180, 30)
GUICtrlSetBkColor(-1, 0xBFFFC5)
GUICtrlSetCursor (-1, 0)

$buttonr = GUICtrlCreateButton("Neues Red Design erstellen", 140, 135, 180, 30)
GUICtrlSetBkColor(-1, 0xFFA8A8)
GUICtrlSetCursor (-1, 0)

$buttonc = GUICtrlCreateButton("Neues CSS Design erstellen", 140, 195, 180, 30)
GUICtrlSetBkColor(-1, 0xD5E0E0)
GUICtrlSetState(-1, $GUI_DISABLE)
GUICtrlSetCursor (-1, 0)

$button1 = GUICtrlCreateButton("Update", 8, 245, 80, 20)
GUICtrlSetBkColor(-1, 0xffffff)
GUICtrlSetState(-1, $GUI_DISABLE)
GUICtrlSetCursor (-1, 0)

$button2 = GUICtrlCreateButton("Hilfe", 90, 245, 80, 20)
GUICtrlSetBkColor(-1, 0xffffff)
GUICtrlSetState(-1, $GUI_DISABLE)
GUICtrlSetCursor (-1, 0)

$button3 = GUICtrlCreateButton("Website", 172, 245, 80, 20)
GUICtrlSetBkColor(-1, 0xffffff)
GUICtrlSetState(-1, $GUI_DISABLE)
GUICtrlSetCursor (-1, 0)

$button4 = GUICtrlCreateButton("Beenden", 254, 245, 80, 20)
GUICtrlSetBkColor(-1, 0xffffff)
GUICtrlSetCursor (-1, 0)


; PIC Logo
GuiCtrlCreatePic("GUI\icebluestart.gif", 0, 0, 340, 60) ;Iceblue Pic
GuiCtrlCreatePic("GUI\butterflystart.gif", 0, 60, 340, 60) ;Butterfly Pic
GuiCtrlCreatePic("GUI\redstart.gif", 0, 120, 340, 60) ;Red Pic
GuiCtrlCreatePic("GUI\cssstart.gif", 0, 180, 340, 60) ;CSS Pic
GuiCtrlCreatePic("GUI\footerstart.gif", 0, 240, 340, 60) ;CSS Pic


; BUTTONCLICK Iceblue
    If GUIGetMsg() = -3 Then Exit
    If GUIGetMsg() = $buttoni Then
		ShellExecute(@ScriptDir & "SCRIPT\iceblue.exe")
		WinClose("divisa_start.exe")
    EndIf

; BUTTONCLICK Butterfly
    If GUIGetMsg() = -3 Then Exit
    If GUIGetMsg() = $buttonb Then
		ShellExecute(@ScriptDir & "SCRIPT\buttefly.exe")
		WinClose("divisa_start.exe")
    EndIf

; BUTTONCLICK Red
    If GUIGetMsg() = -3 Then Exit
    If GUIGetMsg() = $buttonr Then
		ShellExecute(@ScriptDir & "SCRIPT\red.exe")
		WinClose("divisa_start.exe")
    EndIf

; BUTTONCLICK CSS
    If GUIGetMsg() = -3 Then Exit
    If GUIGetMsg() = $buttonc Then
		ShellExecute(@ScriptDir & "SCRIPT\fehler.exe")
		WinClose("divisa_start.exe")
    EndIf


; BUTTONCLICK Beenden
    If GUIGetMsg() = -3 Then Exit
    If GUIGetMsg() = $button4 Then
		WinClose("divisa_start.exe")
    EndIf
Ich hoffe ihr könnt mir helfen


lG Noni
06/10/2011 19:13 Ludder231#2
PHP Code:
#include <AVIConstants.au3>
#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <Constants.au3>
#include <DateTimeConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <ListboxConstants.au3>
#include <ListviewConstants.au3>
#include <ProgressConstants.au3>
#include <SliderConstants.au3>
#include <StaticConstants.au3>
#include <TabConstants.au3>
#include <TreeviewConstants.au3>
#include <UpdownConstants.au3>
#include <WindowsConstants.au3>
#include <string.au3>
while 1
sleep
(200)
wend

 
WINDOW
$gui 
GUICreate("divisa | engine - Was für ein Design möchtest du erstellen?"340270)
GUISetState(@SW_SHOW)

$buttoni GUICtrlCreateButton("Neues Iceblue Design erstellen"1401518030)
GUICtrlSetBkColor(-10xA6CAF0)
GUICtrlSetCursor (-10)

$buttonb GUICtrlCreateButton("Neues Butterfly Design erstellen"1407518030)
GUICtrlSetBkColor(-10xBFFFC5)
GUICtrlSetCursor (-10)

$buttonr GUICtrlCreateButton("Neues Red Design erstellen"14013518030)
GUICtrlSetBkColor(-10xFFA8A8)
GUICtrlSetCursor (-10)

$buttonc GUICtrlCreateButton("Neues CSS Design erstellen"14019518030)
GUICtrlSetBkColor(-10xD5E0E0)
GUICtrlSetState(-1$GUI_DISABLE)
GUICtrlSetCursor (-10)

$button1 GUICtrlCreateButton("Update"82458020)
GUICtrlSetBkColor(-10xffffff)
GUICtrlSetState(-1$GUI_DISABLE)
GUICtrlSetCursor (-10)

$button2 GUICtrlCreateButton("Hilfe"902458020)
GUICtrlSetBkColor(-10xffffff)
GUICtrlSetState(-1$GUI_DISABLE)
GUICtrlSetCursor (-10)

$button3 GUICtrlCreateButton("Website"1722458020)
GUICtrlSetBkColor(-10xffffff)
GUICtrlSetState(-1$GUI_DISABLE)
GUICtrlSetCursor (-10)

$button4 GUICtrlCreateButton("Beenden"2542458020)
GUICtrlSetBkColor(-10xffffff)
GUICtrlSetCursor (-10)


PIC Logo
GuiCtrlCreatePic
("GUI\icebluestart.gif"0034060) ;Iceblue Pic
GuiCtrlCreatePic
("GUI\butterflystart.gif"06034060) ;Butterfly Pic
GuiCtrlCreatePic
("GUI\redstart.gif"012034060) ;Red Pic
GuiCtrlCreatePic
("GUI\cssstart.gif"018034060) ;CSS Pic
GuiCtrlCreatePic
("GUI\footerstart.gif"024034060) ;CSS Pic


BUTTONCLICK Iceblue
    
If GUIGetMsg() = -3 Then Exit
    If 
GUIGetMsg() = $buttoni Then
        ShellExecute
(@ScriptDir "SCRIPT\iceblue.exe")
        
WinClose("divisa_start.exe")
    EndIf

BUTTONCLICK Butterfly
    
If GUIGetMsg() = -3 Then Exit
    If 
GUIGetMsg() = $buttonb Then
        ShellExecute
(@ScriptDir "SCRIPT\buttefly.exe")
        
WinClose("divisa_start.exe")
    EndIf

BUTTONCLICK Red
    
If GUIGetMsg() = -3 Then Exit
    If 
GUIGetMsg() = $buttonr Then
        ShellExecute
(@ScriptDir "SCRIPT\red.exe")
        
WinClose("divisa_start.exe")
    EndIf

BUTTONCLICK CSS
    
If GUIGetMsg() = -3 Then Exit
    If 
GUIGetMsg() = $buttonc Then
        ShellExecute
(@ScriptDir "SCRIPT\fehler.exe")
        
WinClose("divisa_start.exe")
    EndIf


BUTTONCLICK Beenden
    
If GUIGetMsg() = -3 Then Exit
    If 
GUIGetMsg() = $button4 Then
        WinClose
("divisa_start.exe")
    EndIf 
06/10/2011 19:18 BlackHybrid#3
Ich korriegiere mal meinen Vorposter.
Das
PHP Code:
while 1
sleep
(200)
wend 
Muss ans Ende, da sich alles, was in der While schleife wiederholt und da das Script von oben nach unten durchläuft kommt es nicht bis zur GUI, wa es in der While Schleife hängen bleibt.
06/10/2011 19:19 Ludder231#4
Oh stimmt ja :) Ja hab mir das nicht alles angeguckt xD
06/10/2011 19:36 Nonilol#5
Vielen Dank jetzt funktioniert es halbwegs!

Weiß jemand eine Lösung für die oben beschriebene zweite Frage?

Also dass man mit Klick auf einen Button einen neuen Script öffnet (wie ich schon eingebaut habe mit ShellExecute) und sich danach der bereits offene Script schließt?


lG
06/10/2011 19:51 BlackHybrid#6
Also wenn ich jetzt mal noch die PN dazu beziehe kann es eigentlich nicht sein, dass die Buttons erst nach 20 Klicks reagieren^^

Wie ich bereits gesagt hab läuft das Script von Oben nach Unten durch somit müssen If Abfragen etc in eine While oder eine andere Schleife, dass sich die Abfrage immer wieder wiederholt.

Dann willst du andere Anwendungen öffnen. Hier giebt @Scriptdir nur das Verzeichnis an (\Name\Desktop). Wenn du eine Datei auswählen willst musst du noch ein Backslash hinzufügen, da es sonst versucht folgendes zu öffnen "\Name\DesktopAutoIt.exe" und nicht "\Name\Desktop\AutoIt.exe"

Wenn du das Programm beenden willst kannst du einfach Exit benutzen.

Alles in einem würde es so aussehen:
PS: THX nicht vergessen :P
06/10/2011 20:54 Nonilol#7
Quote:
Originally Posted by BlackHybrid View Post
PS: THX nicht vergessen :P
THX gebe ich wenn ich will!

Aber natürlich bekommst du eins ;)

Bist du eigentlich ein Gott oder wieso funktioniert das jetzt plötzlich wie geschmiert?? :D

Vielen Dank dass du mir bei meinen Fragen geholfen hast - es werden sicher nicht die letzen sein ;P

#thx given


lG
Noni


P.S. Danke auch an dich, Ludder ;)
06/10/2011 21:28 omer36#8
Ich weiß ja nicht ob das nur ein Teil deiner Source ist, aber warum so viele Includes?
"GUIConstantsEx.au3"
Ist das Einzige was du brauchst.
06/11/2011 13:21 xShizoidx#9
Hmm ich finde dein Script etwas komisch geschrieben.

Normalerweise kommen immer

1. includes
2. GUI wird erstellt
3. While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit

EndSwitch
WEnd
4. nach Exit kannst du dann Case $deinButtonname nehmen.

Könntest es ja mal so versuchen und das Ganze mit Koda Form Designer.
06/11/2011 13:35 BlackHybrid#10
Ehm hast du dir eigentlich nur den ersten Post durchgelesen? Weil soweit ich das sehe habe ich bereits das richtige gepostet.
06/11/2011 19:00 Nonilol#11
ja, die richtige Lösung hat Black bereits gepostet.

Ergeben sich Nachteile durch viele includes? (Ich hatte vorsorglich mal ein paar reingeschrieben um dass nicht mehr nachholen zu müssen)

Ich habe nicht das Gefühl, dass der Script langsamer geworden ist.


!!! Neue Frage !!!

Ich bin soeben noch auf ein weiteres Problem gestoßen.
Hier ist ein Beispiel damit ihr mir helfen könnt:

PHP Code:
$gui GUICreate("Hundnamenanzeiger"801574187117)

$TabSheet1 GUICtrlCreateTabItem("Name")

$hundname GUICtrlCreateInput("hier gibt der User etwas ein"4021995722)
GUICtrlSetLimit(-17)
GUICtrlSetFont(-184000"Arial")

$textfeldhundname GUICtrlCreateEdit(""3242473789)
GUICtrlSetData(-1StringFormat("Der Name deines Hundes ist: $hundname"))
GUICtrlSetFont(-184000"Courier New")
GUICtrlSetColor(-10x008080
Der User soll hier also in der Inputbox den Namen seines Hundes eingeben.
Danach soll dieser in dem Textfeld unter der Variable wieder aufgerufen werden können.

Bsp. User gibt "Lucie" ein, dann steht im Textfeld "Der Name deines Hundes ist Lucie"

Man kann die Variablen dort jedoch nicht normal einsetzen.
Wie kann ich den Inhalt von Variablen in Textfeldern anzeigen lassen?


lG
Noni
06/11/2011 19:16 BlackHybrid#12
Wenn du mehr Includes rein packst wird das Script halt schonmal viel größer und es werden mehr variablen deklariert, was sich auf den arbeitsspeicher auswirkt und so weiter.

Vielleicht hilft dir das weiter
PHP Code:
$gui GUICreate("Hundnamenanzeiger"801574187117)
GUISetState()
$hundname GUICtrlCreateInput("hier gibt der User etwas ein"4021995722)
GUICtrlSetLimit(-17)
GUICtrlSetFont(-184000"Arial")
$textfeldhundname GUICtrlCreateEdit(""3242473789)
GUICtrlSetFont(-184000"Courier New")
GUICtrlSetColor(-10x008080)
While 
1
    Sleep
(1000)
    
GUICtrlSetData($textfeldhundname"Der Name deines Hundes ist: " GUICtrlRead($hundname))
WEnd 
06/11/2011 19:33 Nonilol#13
Quote:
Originally Posted by BlackHybrid View Post
Vielleicht hilft dir das weiter
PHP Code:
$gui GUICreate("Hundnamenanzeiger"801574187117)
GUISetState()
$hundname GUICtrlCreateInput("hier gibt der User etwas ein"4021995722)
GUICtrlSetLimit(-17)
GUICtrlSetFont(-184000"Arial")
$textfeldhundname GUICtrlCreateEdit(""3242473789)
GUICtrlSetFont(-184000"Courier New")
GUICtrlSetColor(-10x008080)
While 
1
    Sleep
(1000)
    
GUICtrlSetData($textfeldhundname"Der Name deines Hundes ist: " GUICtrlRead($hundname))
WEnd 
Das sieht schon ganz gut aus, aber kann ich auch zwei Variablen in ein Textfeld packen?
06/11/2011 19:38 BlackHybrid#14
Wie meinst du das genau? Dass 2 Texte aus 2 Inputs in einer hintereinander angezeigt wird oder was?
06/11/2011 20:54 Nonilol#15
Quote:
Originally Posted by BlackHybrid View Post
Wie meinst du das genau? Dass 2 Texte aus 2 Inputs in einer hintereinander angezeigt wird oder was?
Ja genau!

Beispiel:

(Sorry dass meine AW erst so spät kam)