ja, KODA(Formdesigner) ist im Scite-Paket enthalten. Aufruf über Tools|Koda evtl. msst du dir dafür Scite neu herunterladen, siehe Download-Bereich auf der linken Seite,
mfg autoBert
ja, KODA(Formdesigner) ist im Scite-Paket enthalten. Aufruf über Tools|Koda evtl. msst du dir dafür Scite neu herunterladen, siehe Download-Bereich auf der linken Seite,
mfg autoBert
@m-obi,
ich hatte es in Nacht gesehen, dass er gelöst hat, seinen Edit habe ich (da ich alle 5 Posts eine neue Seite aufmache) übersehen, sorry
Goldy hier die Lösung bis auf die Überschrift und der Variable $hGui sollte alles wie in deinem Orihinal sein:
;----- Beispiel 3 wie das ganze auch mit PNG funktioniert (von Zedna)
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <GDIPlus.au3>
#include <WinAPI.au3>
Global $hGUI, $hImage, $hGraphic, $hImage1
[/autoit] [autoit][/autoit] [autoit]; GUI erstellen
$hGUI = GUICreate("PNG zeigen", 387, 242, 192, 124, -1)
; PNG Bild laden
_GDIPlus_Startup()
$hImage = _GDIPlus_ImageLoadFromFile("..\GUI\Torus.png")
$hGraphic = _GDIPlus_GraphicsCreateFromHWND($hGUI)
$Button1 = GUICtrlCreateButton("KalOnline", 24, 80, 153, 33)
$Button3 = GUICtrlCreateButton("Cooming soon!", 208, 80, 153, 33)
$Button2 = GUICtrlCreateButton("Cooming soon!", 208, 136, 153, 33)
$Button4 = GUICtrlCreateButton("Cooming soon!", 24, 136, 153, 33)
$Button5 = GUICtrlCreateButton("Credits", 24, 192, 153, 33)
$Exit = GUICtrlCreateButton("Exit", 208, 192, 153, 33)
GUIRegisterMsg($WM_PAINT, "MY_WM_PAINT")
GUISetState(@SW_SHOW)
;die folgenden Zeilen sind notwendig damit die Controls von Anfang an über dem PNG liegen
ControlFocus($hGUI, "", $Button1)
ControlFocus($hGUI, "", $Button2)
ControlFocus($hGUI, "", $Button3)
ControlFocus($hGUI, "", $Button4)
ControlFocus($hGUI, "", $Button5)
ControlFocus($hGUI, "", $Exit)
While 3
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Exit
Exit
Case $Button5
;_credits()
EndSwitch
WEnd
; Ressourcen aufräumen
_GDIPlus_GraphicsDispose($hGraphic)
_GDIPlus_ImageDispose($hImage)
_GDIPlus_Shutdown()
; PNG Bild zeichnen
Func MY_WM_PAINT($hWnd, $msg, $wParam, $lParam)
_WinAPI_RedrawWindow($hGUI, 0, 0, $RDW_UPDATENOW)
_GDIPlus_GraphicsDrawImage($hGraphic, $hImage, 0, 0)
_WinAPI_RedrawWindow($hGUI, 0, 0, $RDW_VALIDATE)
Return $GUI_RUNDEFMSG
EndFunc ;==>MY_WM_PAINT
mfg autoBert
@HellBoy,
wenn es damit funktionieren würde, hätte ich es ihm vorgeschlagen, da ich diese func von SEuBo kenne. Sie ist wnderbar um ein Bild in einem Bereich anzuzeigen, in der sich keine Controls befinden. Sobald aber ein Control, das PNG (im Beispiel Basketball) überlappt verschwindet der überlappende Teil des Controls hinter dem Bild.
Ausserdem hat Goldy mittlerweile gelöst (was mich zwar wundert, da es auch ein paar Falltüren hat), alle Achtung
mfg autoBert
Nun möchte ich das Bild (fals der code oben nicht falsch ist)
hier einbinden :
dann tu es und du wirst sehen ob es klappt,
mfg autoBert
Nabend die Herren
Nein ich hatte nicht vor ein Bot zu schreiben
Na dass liest man gerne (vorsichtshalber trotzdem die Forenregeln lesen) und sagt herzlich willkommen im Forum und viel Spass mit AutoIt.
Hier kannst du dir die Hilfe herunterladen.
Hier gibt es ein AutoIt-Tutorial: http://wiki.autoit.de/wiki/index.php/TutorialSehr hilfreich ist auch das Buch von peethebee
GDI+ dürfte noch mehr Resourcenfressender sein, als eine transparente GUI,
mfg autoBert
Hallo Goldy,
dir ging es doch nur um das speichern, laden. Den Skriptteil mit den MsgBoxen brauchst du doch dazu gar nicht. Du Kannst aber die ControlIds auch in einem Array speichern und dann in einer Schleife (am besten For ... Next) alle durchgehen,
mfg autoBert
Hallo Dr. Blei,
wird das ein neuer Anlauf für eiinen BOT, sowie erst vor kurzem Text in Grafikfenster zeigen?
Ansonsten erst einmal GDI+ studieren,
mfg autoBert
Hallo Goldy,
so z.B.:
#include <ButtonConstants.au3>
#include <Constants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
;Global $Checkbox1, $Checkbox2, $Checkbox3, $Checkbox4, $chk1, $chk2, $chk3, $chk4
Global $ini = @ScriptDir & "\CheckBox.Test"
$chk1 = IniRead($ini, "Checks", "1", False)
$chk2 = IniRead($ini, "Checks", "2", False)
$chk3 = IniRead($ini, "Checks", "3", False)
$chk4 = IniRead($ini, "Checks", "4", False)
GUICreate("Ckeckbox-Demo MSG-LOOP-Modus", 300, 300)
$Checkbox1 = GUICtrlCreateCheckbox("1. Checkbox", 20, 40, 1250)
GUICtrlSetState(-1, $chk1)
$Checkbox2 = GUICtrlCreateCheckbox("2. Checkbox", 20, 70, 1250)
GUICtrlSetState(-1, $chk2)
$Checkbox3 = GUICtrlCreateCheckbox("3. Checkbox", 20, 100, 1250)
GUICtrlSetState(-1, $chk3)
$Checkbox4 = GUICtrlCreateCheckbox("4. Checkbox", 20, 130, 1250)
GUICtrlSetState(-1, $chk4)
$DL = GUICtrlCreateButton("Download", 50, 250, 80)
GUISetState(@SW_SHOW)
While 1
$Msg = GUIGetMsg()
Switch $Msg
Case $GUI_EVENT_CLOSE
IniWrite($ini, "Checks", "1", GUICtrlRead($Checkbox1))
IniWrite($ini, "Checks", "2", GUICtrlRead($Checkbox2))
IniWrite($ini, "Checks", "3", GUICtrlRead($Checkbox3))
IniWrite($ini, "Checks", "4", GUICtrlRead($Checkbox4))
Exit
Case $DL
If BitAND(GUICtrlRead($Checkbox1), $GUI_CHECKED) = $GUI_CHECKED Then
MsgBox(0, "1. Checkbox", "ist angeCHECKED")
;InetGet verwenden zum downloaden
Else
MsgBox(0, "1. Checkbox", "ist nicht angeCHECKED")
EndIf
If BitAND(GUICtrlRead($Checkbox2), $GUI_CHECKED) = $GUI_CHECKED Then
MsgBox(0, "2. Checkbox", "ist angeCHECKED")
Else
MsgBox(0, "2. Checkbox", "ist nicht angeCHECKED")
EndIf
If BitAND(GUICtrlRead($Checkbox3), $GUI_CHECKED) = $GUI_CHECKED Then
MsgBox(0, "3. Checkbox", "ist angeCHECKED")
;InetGet verwenden zum downloaden
Else
MsgBox(0, "3. Checkbox", "ist nicht angeCHECKED")
EndIf
If BitAND(GUICtrlRead($Checkbox4), $GUI_CHECKED) = $GUI_CHECKED Then
MsgBox(0, "4. Checkbox", "ist angeCHECKED")
Else
MsgBox(0, "4. Checkbox", "ist nicht angeCHECKED")
EndIf
EndSwitch
WEnd
Mhmm...könntes du mir dafür ein beispiel code geben ?
In der Hilfe habe ich nichts dazu gefunden
du solltest lernen mit dem wichtigsten Werkzeug der Hilfe umzugehen, und dir vor allem einmal die Stanadard-Funktionen (ohne UDFs) durchlesen, notfalls mehrmals.
mfg autoBert
Dann warst du bei der Suche nicht sehr erfolgreich bzw.:
,
denn das Skript kann so nicht laufen. Suche hier im Forum da gibt es schon fertige Lösungen z.B.
einfach die boardeigene SuFu benutzen,
mfg autoBert
Hallo Sora White Dragon,
du solltest andere Einstellungen testen auch Obfuskatoren haben ihre Grenzen/Schwächen. Ich bin eh der Meinung, dass es überflüssig ist mach Open-Source Project daraus,
mfg autoBert
dann musst du für jedes auszulesende Input eine Variable erstellen und mit GuiCtrlRead auslesen bzw. die Rückgaben mit & in einer Variablen verknüpfen, wo ist das Problem,
Edit: auf Verknüpfun abgeändertes Beispiel von i2c angehängt:
[autoit]#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <array.au3>
Global $aInput[4]
$Form1 = GUICreate("Form1", 500, 500, -1, -1)
$aInput[0] = GUICtrlCreateInput("", 20, 20)
$aInput[1] = GUICtrlCreateInput("", 20, 40)
$aInput[2] = GUICtrlCreateInput("", 20, 60)
$aInput[3] = GUICtrlCreateInput("", 20, 80)
$Button1 = GUICtrlCreateButton("start", 260, 50)
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
$Out = ""
For $i = 0 To UBound($aInput)-1
$Out &= GUICtrlRead($aInput[$i])
Next
MsgBox(0,"",""$Out)
EndSwitch
WEnd
mfg autoBert
@simon, @progandy ja das ist gena was ich suche
danke autoBert
Hallo anna.assaoui,
ich bringe dieses ansich harmlose Thema in Zusammenhang mit:
[ offen ] zwei fragen zu fenstern
dieses von dir Reaktiosnspiel, von mir Scherzprogramm bzw. BOT bezeichnete Skript hat mich veranlasst dieses Thema zu deaktivieren,
@Admin/Mod bitte prüfen evtl. closen,oder OK geben
mfg autoBert
Hallo MilkOfUlquiorra,
herzlich willkommen im Forum und viel Spass mit AutoIt.
Hier kannst du dir die Hilfe herunterladen.
Hier gibt es ein AutoIt-Tutorial: http://wiki.autoit.de/wiki/index.php/TutorialSehr hilfreich ist auch das Buch von peethebee
und jetzt zu deinem Problem: erklären kann es sicher niemand besser als die Hilfe
ZitatAlles anzeigenGUICtrlSetPos
Verändert die Position eines Controls innerhalb des GUI-Fensters.
GUICtrlSetPos ( controlID, left, top [, width [, height]] )
Parameter
ControlID Die Identifikationsnummer des Controls (Control-ID), wie von einer GUICtrlCreate... Funktion zurückgegeben.
left Die linke Kante des Controls.
top Die Oberkante des Controls.
width [optional] Die Breite des Controls.
height [optional] Die Höhe des Controls.
und hier ein Beispiel wie ein Btton mit Hilfe der rechten Maustaste innerhalb der GUI verschoben werden kann:
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <ButtonConstants.au3>
#Include <Misc.au3>
$dll = DllOpen("user32.dll")
Global $btn_width = 150
Global $btn_height = 50
$gui = GUICreate("Bild", 475, 337, $btn_width, $btn_height)
$Button = GUICtrlCreateButton("Mit der rechten Taste kann ich verschoben werden",10,10,150,50,$BS_MULTILINE)
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $gui_EVENT_CLOSE
DllClose($dll)
Exit
Case $Button
MsgBox(0,"Message","The movable Button was clicked")
Case $GUI_EVENT_SecondaryDOWN
$mPos = GUIGetCursorInfo($gui)
If $mPos[4] = $Button Then
While _IsPressed("02", $dll)
$mPos = GUIGetCursorInfo($gui)
$pPos = ControlGetPos($gui, '', $Button)
ControlMove($gui, '', $Button, $mPos[0] - ($btn_width / 2), $mPos[1] - ($btn_height / 2))
WEnd
EndIf
EndSwitch
WEnd
mfg autoBert
Hallo Goldy,
warum liest du dir die nict die Hilfe (speziell GUIGetMsg für Fortgeschrittene und mehrere Fenster) durch.
Arbeite also die Hilfe zumindest im GUI-Referenz - MessageLoop Modus durch, damit du hier die Grndlagen beherschst.
Wusste jetzt nicht das dass so wichtig ist xD
ist es nicht da man wenn man das Schema meines Beispiel-Skriptes ohne Probleme auf mehr Fenster erweitern kann, zudem habe ich es auskommentiert so dass es auch Anfänger (was du ja nach einem halben Jahr nicht mehr bist) verstehen können.
mfg autoBert
Hallo Onigafuchi,
herzlich willkommen im Forum und viel Spass mit AutoIt.
Hier kannst du dir die Hilfe herunterladen.
Hier gibt es ein AutoIt-Tutorial: http://wiki.autoit.de/wiki/index.php/TutorialSehr hilfreich ist auch das Buch von peethebee
Versuch run mit dem Parameter Workingdir aufzurufen:
Zitat von HilfeRun ( "program" [, "workingdir" [, show_flag[, opt_flag ]]] )
mfg autoBert
Hallo baam,
ich konnte gerade testen, habe aber Erklärungsbedarf. Das sind die ScreenShots des 3. Testlaufs:
jetzt stellt sich die Frage, wass soll überhaupt in der Editbox $hUser angezeigt werden bzw. warum ist sie überhaupt vorhanden? Der Nick des Sendenden ist wohl unsinnig, der von dem die Nachricht kommt aber auch unnötig, da vor jeder Nachricht ja der Nick desSendenden erscheint.
Edit: wäre nur sinn voll für eine History, wer alles gesendet hat dann so:
[autoit]$aParameter[4] = StringTrimLeft(BinaryToString($aParameter[4]),5)
if not StringInStr(GUICtrlRead($hUser),$aParameter[4]) Then _
GuiCtrlSetData($hUser,StringStripWS(GuiCtrlRead($hUser) & @crlf & $aParameter[4],1))
ich hatte in meinem vorhergehenden Post übersehen wieder zu String zu wandeln und "Nick=" wegzuTrimmen
mfg autoBert
Dann erstelle dir im Editor deiner Wahl oder mit AutoIt eine Textdatei die die Felder enthält z.B.:
dann liest du mit
[autoit]$aFormular= _FileReadToArray
[/autoit]diese 1 mal gespeicherte Datei ein. Durchläufst mit
[autoit]For $i = 1 to $aFormular[0]
;Ersetzungsfunktionen
next
alle Zeilen. In der Schleife ersetzt du alle Feldnamen unter Nutzung von
[autoit]StringReplace
[/autoit]mit den Werten deiner Inputs. Jetzt noch mit
[autoit]_ArrayToString
[/autoit]alles in eine neue Datei schreiben und du bist fertig.
PS.: Hilfe lesen bildet,
mfg autoBert
Hallo Baaam,
kann es sein dass du diese Lösung suchst:
[autoit]if not StringInStr(GUICtrlRead($hUser),GUICtrlRead($hNick) & @crlf) Then _
GuiCtrlSetData($hUser,StringStripWS(GuiCtrlRead($hUser) & @crlf & GUICtrlRead($hNick),1))
dass heisst den Nick nur eintragen, wenn er nicht bereits in der EditBox $hUser ist.
Edit: wobei dies
[autoit]if not StringInStr(GUICtrlRead($hUser),$aParameter[4] & @crlf) Then _
GuiCtrlSetData($hUser,StringStripWS(GuiCtrlRead($hUser) & @crlf & $aParameter[4],1))
Nick wird aus dem empfangenen Datenpaket genommen, mehr Sinn macht.
mfg autoBert