1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. Joschy41

Beiträge von Joschy41

  • Gui vergrößern ohne Verschiebung der Elemente

    • Joschy41
    • 21. September 2019 um 13:29

    Hallo,

    ich habe schon gegooglet und die SuFu benutzt...

    Ich möchte gern meine Gui vergrößern und dabei Elemente die Außerhalb der Gui Größe sind zum Vorschein bringen.
    Genau so anders herum. Die Elemente in der Gui sollen sich dabei nicht verschieben.

    Hier ein Beispiel wie es funktionieren soll.

    Code
    #include <GuiConstants.au3>
    Opt("GuiOnEventMode", 1)
    
    $hGui = GUICreate("Test", 200, 400)
    GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit")
    
    $SetSize1 = GUICtrlCreateButton("Vergrößern", 50, 50, 100)
    GUICtrlSetOnEvent($SetSize1, "_SetSize1")
    
    $SetSize2 = GUICtrlCreateButton("Verkleinern", 250, 50, 100)
    GUICtrlSetOnEvent($SetSize2, "_SetSize2")
    
    GUISetState(@SW_SHOW, $hGui)
    
    Func _SetSize1()
        MsgBox(0, "", "Jetzt soll die Gui auf 400x400 vergrößert werden und der 2. Button zum vorschein kommen.")
    EndFunc   ;==>_SetSize1
    
    Func _SetSize2()
        MsgBox(0, "", "Jetzt soll die Gui auf 200x400 verkleinert werden und der 2. Button verschwinden.")
    EndFunc   ;==>_SetSize2
    
    Func _Exit()
        Exit
    EndFunc   ;==>_Exit
    
    While 1
        Sleep(100)
    WEnd
    Alles anzeigen

    Mit freundlichen Grüßen

  • Zusammenarbeit mehreren Scrips auf mehreren Rechnern im Netzwerk ohne / oder mit verschlüsselter Textdatei

    • Joschy41
    • 16. September 2019 um 07:50

    Hallo,

    Ich habe jetzt selbst mal versucht mein Script zu "decompilen". Innerhalb 5 Minuten habe ich zwar ein Programm gefunden, was aber ein Error ausgibt, bzw. 64 bit Dateien nicht unterstützt.

    Desweiteren schaffen es meine Kollegen höchstwarscheinlich nur rechte Maustaste auf die Verknüpfung zu machen und den Dateipfad öffnen zu lassen. Wenn die dort aber nicht finden, reicht das ja schon. Ich denke explizit danach zu suchen und das zu ändern, werden sie nicht.

    Beispiel: Wir haben ein Programm mit Namen, wo man sich umstellen kann in welchem Gebäude man sich auffhält. Geht man in dem Serverordner wo die Exe abgelegt ist findet man einen Ordner mit den Bildern der Personen. Dementsprechend wurden einige Bilder ausgetauscht und anschließend wieder Original benannt. Somit nimmt das Script ja die "Eigendlich falschen" Bilder.

    Sowas wollte ich halt vermeiden. Gelegentliche Späße verhindern.
    Jetzt denkt man sich, warum sollte das ein Spaß sein die BEstellung zu ändern. Keine Ahnung.
    Manche Leute versteht man einfach nicht.


    Nunja. Ich habe das ganze mit einem FTP realisiert.
    Das Script holt sich nun Textdateien vom FTP, bearbeitet diese, schiebt die auf dem FTP zurück und löscht sie Lokal.
    Das ganze passiert in weniger als eine Sekunde. Auch wenn sie dann herausfinden wo die Dateien Lokal abgespeichert werden, können sie trotzdem nicht die entscheidenen Dateien auf dem FTP ändern.

    Ich werde das glaube ich mal in einer Testphase bringen. Parallel sollten die jenigen die betreffende Person telefonisch kontaktieren.
    Mal schauen was passiert ^^


    Mit freundlichen Grüßen

  • Zusammenarbeit mehreren Scrips auf mehreren Rechnern im Netzwerk ohne / oder mit verschlüsselter Textdatei

    • Joschy41
    • 12. September 2019 um 21:39
    Zitat von autoiter

    da AutoIt-Code nicht geheim oder sicher ist.

    In wie fern nicht sicher. Ich mein aus der *.exe ist nicht so einfach ohne Kenntnisse den Code zu lesen oder?

  • Zusammenarbeit mehreren Scrips auf mehreren Rechnern im Netzwerk ohne / oder mit verschlüsselter Textdatei

    • Joschy41
    • 12. September 2019 um 21:05
    Zitat von autoiter

    Eigentlich müsste zuerst das Sicherheitsbedürfnis noch einmal genauer geklärt werden. Geht es um absichtliche Manipulation?
    Dann ist als erstes das eingebundene Netzlaufwerk mit Schreibrechten raus. Wenn dann serverseitig sichergestellt ist, dass nur Select und Insert akzeptiert wird, kann man noch bei AutoIt bleiben, ansonsten ist auch das raus.

    Hallo, genau, es geht um absichtliche manipulation. Es gibt halt Kollegen die erlauben sich dann einen Spaß und ändern da irgendwas...

    Wenn ich allerdings den Ordner mit schreibrechte versehe, kann Autoit sicher auch nicht mehr darin etwas ändern?

    Gruß

  • Zusammenarbeit mehreren Scrips auf mehreren Rechnern im Netzwerk ohne / oder mit verschlüsselter Textdatei

    • Joschy41
    • 12. September 2019 um 11:40

    Das ist nur ein Beispiel.
    Ich habe n kleines Internes Bestellprogramm geschrieben.

    Zurzeit wird alles in der Textdatei gespeichert. Da kommt dann rein:
    Name;Bestellung;Shop;Artikel;Artikelnummer;Kunde;Auftragsnummer;Priorität,BestätigtigVon

    und das je nach dem wieviele Bestellungen vorliegen.
    Dann geht es weiter in einer weiteren Textdatei für die Lieferungen wo was rein geschrieben wird.

    Und letztendlich eine Log.txt wo alles protokolliert wird.

    Wie funktioniert das mit einer Datenbank?
    Gibt Simples Beispiel. Vielleicht anhand meines Beispiels oben?

    Gruß

  • Scrollbare Gui bei größerem Inhalt

    • Joschy41
    • 12. September 2019 um 09:53

    Breite und Höhe der Gui mach ich mit GuiCreate richtig.
    Wenn in der Größe der Gui nichts mehr rein passt, mache ich das jetzt mit _GuiScrollbars_Generate dass es passt, nur dass man Scrollen muss.
    Funktioniert ja auch.

    Verstehe nur noch nicht wirklich die Funktionen der GUIScrollbars.au3 (Ohne _Ex) von AutoIt.
    Daher hilft mir die Au3 von Melba23 ganz gut weiter.
    Danke! :D

  • Zusammenarbeit mehreren Scrips auf mehreren Rechnern im Netzwerk ohne / oder mit verschlüsselter Textdatei

    • Joschy41
    • 12. September 2019 um 09:45

    Hallo,

    ich möchte mehrere Script zusammenarbeiten lassen die allerdings auch auf mehreren Rechnern im Netzwerk laufen. Ich habe also einen Server auf den die Scripts als *.exe abgelegt sind. Mehrere Clients greifen per Verknüpfung auf den Server zu und führen die jeweilige *.exe aus. Funktioniert an sich ganz gut, allerdings arbeite ich zur Zeit mit einer Textdatei in der jeder rumfuschen kann.
    Hier mal ein Beispiel:

    Auf Server liegen Dateien: Schreiben.exe, Lesen.exe, file.txt

    Client1 führt Schreiben.exe aus. (Text = Testtext)

    Auf Server wird "Testtext" in file.txt in Zeile 1 geschrieben mit einem Absatz in Zeile 2.

    Client 2 führt Lesen.exe aus.

    Script ließt Anzahl der Zeilen aus und gibt die Zeilen nach und nach in einer MsgBox aus.

    Schreiben.exe
    Code
    $iFile = "file.txt"
    
    $iInput = InputBox ("Inputbox","Eingabe")
    FileWrite ($iFile,$iInput&@CRLF)
    
    Exit
    Lesen.exe
    Code
    #include <File.au3>
    
    $iFile = "file.txt"
    
    $iLines = _FileCountLines($iFile)
    
    For $i = 1 To $iLines Step 1
        $Line = FileReadLine($iFile, $i)
        MsgBox(0, "Zeile " & $i, $Line)
    Next
    
    Exit
    Lese
    Alles anzeigen

    Gibt es eine Möglichkeit, ohne der Textdatei zu arbeiten oder die Textdatei zu verschlüsseln, so dass nur das Script damit arbeiten kann und eine manuelle Änderung nicht möglich ist?

    Mit freundlichen Grüßen

  • Scrollbare Gui bei größerem Inhalt

    • Joschy41
    • 12. September 2019 um 09:06

    Mit "_GUIScrollbars_Generate($hGui, $breite, $hoehe)" wird eine Scrollbar erstellt.

    C
    #include <GuiConstants.au3>
    #include <GuiConstantsEx.au3>
    #include <GUIScrollbars_Ex.au3>
    
    Opt("GuiOnEventMode", 1)
    
    $iButton = InputBox("Buttons", "Anzahl der Buttons eintippen.")
    
    Global $hGui = GUICreate("Test Gui", 300, 300)
    GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit")
    
    For $i = 0 To $iButton Step 1
        GUICtrlCreateButton("Button " & $i, 100, 10 + $i * 30, 100)
    Next
    
    $scrollhigh = $i * 30
    
    ;_GUIScrollbars_Generate -> Erstellt Scrollbar in Gui
    ;(Breite = 100 (also deaktiviert da Gui 300 breit ist,
    ;Höhe = berechnet nach Anzahl der Buttons die untereinandergereiht sind.)
    _GUIScrollbars_Generate($hGui, 100, $scrollhigh)
    
    GUISetState(@SW_SHOW)
    
    While 1
        Sleep(100)
    WEnd
    
    Func _Exit()
        Exit
    EndFunc
    Alles anzeigen
  • Scrollbare Gui bei größerem Inhalt

    • Joschy41
    • 12. September 2019 um 07:45

    Anhand einer gefundenen *.au3 brauch ich dafür jetzt nurnoch einen Befehl mit Breite und Höhe.

    Gruß!

  • Scrollbare Gui bei größerem Inhalt

    • Joschy41
    • 9. September 2019 um 10:55

    Moin,

    Ich habe eine Gui, bei der der Inhalt größer ist als die Gui selbst.
    Der Inhalt soll Scrollbar werden.

    Ich habe in der SuFu einen alten Beitrag gefunden, wo eine UDF erwähnt wurde. Leider ist der Link aber tot.

    Vielleicht kann mir jemand mein Beispiel einfach mal umbauen?

    C
    #include <GuiConstants.au3>
    #include <GuiConstantsEx.au3>
    
    Opt ("GuiOnEventMode",1)
    
    ;Gui erstellen mit Kreuz zum schließen
        Global $hGui = GUICreate("Test Gui",300,300)
            GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit")
    
        GUICtrlCreateButton ("Button",20,20,260)
        GUICtrlCreateButton ("Button",20,50,260)
        GUICtrlCreateButton ("Button",20,80,260)
        GUICtrlCreateButton ("Button",20,110,260)
        GUICtrlCreateButton ("Button",20,140,260)
        GUICtrlCreateButton ("Button",20,170,260)
        GUICtrlCreateButton ("Button",20,200,260)
        GUICtrlCreateButton ("Button",20,230,260)
        GUICtrlCreateButton ("Button",20,260,260)
        GUICtrlCreateButton ("Button",20,290,260)
        GUICtrlCreateButton ("Button",20,320,260)
        GUICtrlCreateButton ("Button",20,350,260)
    
    GUISetState (@SW_SHOW)
    
    While 1
        Sleep(100)
    WEnd
    
    ;Exit
        Func _Exit()
            Exit
        EndFunc
    Alles anzeigen

    Mit freundlichen Grüßen

  • For...Next... für Funktionen?

    • Joschy41
    • 25. Juli 2019 um 07:14

    Vielen Dank.
    So langsam leuchtet mir das ein ^^

  • For...Next... für Funktionen?

    • Joschy41
    • 24. Juli 2019 um 20:18
    Zitat von Micha_he

    Schau mal unter @GUI_CtrlId bzw. unter @GUI_CtrlHandle in der Hilfe. Damit sollte es möglich sein, aus immer der gleichen Fuktion die Du mit GUICtrlSetOnEvent zuweist, auf unterschiedliche Controls zu reagieren.

    So z.B.:

    Code
    #include <GUIConstantsEx.au3>
    Opt("GUIOnEventMode", 1)
    
    Global $iHigh = 30
    Global $iFirstButtonId
    
    GUICreate("CtrlId-Test")
    GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit")
    For $i = 0 To 9
        If Not $iFirstButtonId Then
            $iFirstButtonId = GUICtrlCreateButton("Button" & $i+1, 10, $i*$iHigh)
        Else
            GUICtrlCreateButton("Button" & $i+1, 10, $i*$iHigh)
        EndIf
        GUICtrlSetOnEvent(-1, "_ButtonAktion")
    Next
    GUISetState(@SW_SHOW)
    
    While 1
        Sleep(100)
    Wend
    
    Func _ButtonAktion()
        Msgbox(0,"Info", "Button Nr. " & @GUI_CtrlId - $iFirstButtonId + 1 & " wurde gewählt.")
    EndFunc
    
    Func _Exit()
        Exit
    EndFunc
    Alles anzeigen

    Ja, sowas meine ich.
    Ich verstehe die If ... Else ... schleife noch nicht ganz.
    ich bekomme es hin, das ganze umzuschreiben, nur möchte ich es gern verstehen.

    Oben steht ja: "Global $iFirstButtonId" ohne der Variable einen Wert zuzuweisen.
    Dann "If Not $iFirstButtonId Then"... Wenn nicht "was?" dann... verstehe ich nicht.

    "Else GuiCtrlCreateButton" ... Ohne einer Variable...

    Dann: GUICtrlSetOnEvent (-1,"_ButtonAktion")... die -1 heißt das letzte erstellte Element.
    Erstelle ich die Buttons einzeln, funktioniert tatsächlich auch nur der Letzte Button.

    Kann mich einer aufklären? ^^


    /Edit: Wenn ich vor der MsgBox mir $iFirstButtonId und @GUI_CtrlId anzeigen lasse, spuckt er mir für $iFirstButton ID eine 3 und für @GUI_CtrlId eine Zahl ab 3 aus, je nach dem wieiviele Buttons es gibt. Wo kommen diese Zahlen her?

  • For...Next... für Funktionen?

    • Joschy41
    • 24. Juli 2019 um 10:02

    Hallo,

    Ich habe folgendes Problem.

    Ich habe mir eine Gui gebastelt, in der beliebig viele Buttons drin sind. Die Anzahl lege ich vorher mit einer Variable fest.
    Hiermit werden schonmal die Buttons je nach Anzahl erstellt:

    Code
    $high = 10
    Global $button[99]
    $x = 1
    
    For $i = 1 To $anzahl Step 1
    $buttonname = "Button " & $i
    $button[$x] = GUICtrlCreateButton ($buttonname,10,$high-7)
    $high = $high +30
    $x = $x +1
    Next

    Mit dem nächsten Teil, weise ich jedem Button eine Funktion zu:

    Code
    For $y = 1 To $anzahl Step 1
    GUICtrlSetOnEvent ($button[$y],"button"&$y)
    Next

    Jetzt kommt meine Frage:

    Wenn ich 5 Buttons habe, wie mache ich es, dass ich nicht für jeden Button eine Funktion schreiben muss?
    Die Funktionen sollen gleich sein, bis auf eine Zahl die sich ändern soll.

    Mein Code funktioniert wenn ich dementsprechend viele Funktionen schreibe:

    Code
    Func button1() 
    MsgBox ("","Button","Button1")
    Exit
    EndFunc
    
    Func button2() 
    MsgBox ("","Button","Button2")
    Exit
    EndFunc
    
    Func button3() 
    MsgBox ("","Button","Button3")
    Exit
    EndFunc
    
    Func button4() 
    MsgBox ("","Button","Button4")
    Exit
    EndFunc
    
    Func button5() 
    MsgBox ("","Button","Button5")
    Exit
    EndFunc
    Alles anzeigen

    Habe es auch mit einer For...Next Schleife probiert, das haut aber nicht hin.
    Habt ihr eine Idee?

    Gruß

  • Zoom in _IECreateEmbedded

    • Joschy41
    • 4. März 2019 um 08:36

    Ich glaub das mit dem Google Wetter ist schon nicht schlecht, da kann man dann in der Gui selbst auf Niederschlag und so klicken.

  • Zoom in _IECreateEmbedded

    • Joschy41
    • 1. März 2019 um 07:36
    Zitat von Bitnugger

    es geht auch...

    "Stadt" Wetter Freitag

    oder...

    "Stadt" Wetter übermorgen

    Ginge auch ^^

    Noch schöner wäre es wenn man von der Google Seite dann wirklich NUR dieses Wetter Fenster in eine HTML packen könnte.
    [Blockierte Grafik: https://www.bilder-upload.eu/upload/2fdf3e-1551421986.jpg]

    Ich habe schon versucht die HTML ein wenig einzukürzen, aber da hab ich zu wenig Kenntnisse für HTML Scripts ^^
    Wenn einer Zeit und Lust hat, kann er mir gern eine HTML basteln, die dann nur dieses Wetter Fenster von google abgreift xD

  • Zoom in _IECreateEmbedded

    • Joschy41
    • 28. Februar 2019 um 22:07

    Hier mal ne Erklärung woran ich überhaupt arbeite.
    Ein Cam Viewer mit Wetteranzeige (wenn man bei Google einfach: "Stadt" Wetter eintippt) und der Uhrzeit.

    [Blockierte Grafik: https://www.bilder-upload.eu/upload/bd6d2d-1551387898.jpg]

  • Zoom in _IECreateEmbedded

    • Joschy41
    • 28. Februar 2019 um 22:04
    Zitat von Musashi

    Grundsätzlich ist ja nichts falsch daran gekürzte Skripte zu posten, speziell wenn es um die Analyse eines Teilproblems geht. In diesem Fall hätten die 4 Zeilen mehr den Kohl aber auch nicht fett gemacht, und man hätte sich die Diskussion über das Schließen des Programms sparen können.

    EDIT :

    Völlig richtig !

    Joschy41 : Du kannst den dritten Parameter sogar weglassen, da 1=Wait der Default ist.

    Gruß Musashi

    1. Viele wege führen nach Rom :)

    2. Man lernt nicht aus! :) Danke!

  • Zoom in _IECreateEmbedded

    • Joschy41
    • 28. Februar 2019 um 21:45

    Mittlerweile aber auch statt Sleep (1000) in Zeile 17 "_IELoadWait($oIE)" verwendet.
    Wartet somit bis die Seite fertig geladen ist.

    C
    #include <GUIConstants.au3>
    #include <GuiConstantsEx.au3>
    #include <WindowsConstants.au3>
    #Include <GuiSlider.au3>
    #include <IE.au3>
    
    Opt("GUIOnEventMode", 1) 
    GUICreate("Google", @DesktopWidth/2, @DesktopHeight/2, 0, 0)
    GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSEButton") 
    
    Local $oIE = _IECreateEmbedded(), $msg, $sHtml_File
    GUICtrlCreateObj($oIE, 0, 0,@DesktopWidth/2, @DesktopHeight/2)
    GUISetState(@SW_SHOW)
    
    While 1
    _IENavigate($oIE, "https://www.google.de", 0) ;Öffnet Google
    _IELoadWait($oIE) ;<-----------------------
    $oIE.Document.Body.Style.Zoom = "200%"
    Sleep (600000) ;Wartet 10 Min.
    WEnd ;Aktualisiert Google
    
    Func CLOSEButton()
       Exit
    EndFunc
    Alles anzeigen
  • Zoom in _IECreateEmbedded

    • Joschy41
    • 28. Februar 2019 um 21:39

    Hatte ein gekürztes Script eingefügt.

    Hier mal mit der Funktion, dass man das X oben rechts vom Fenster nutzen kann.

    (mit ";<-----------------------" die entscheidenden Sachen markiert)

    C
    #include <GUIConstants.au3>
    #include <GuiConstantsEx.au3>
    #include <WindowsConstants.au3>
    #Include <GuiSlider.au3>
    #include <IE.au3>
    
    Opt("GUIOnEventMode", 1) ;<-----------------------
    GUICreate("Google", @DesktopWidth/2, @DesktopHeight/2, 0, 0)
    GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSEButton") ;<-----------------------
    
    Local $oIE = _IECreateEmbedded(), $msg, $sHtml_File
    GUICtrlCreateObj($oIE, 0, 0,@DesktopWidth/2, @DesktopHeight/2)
    GUISetState(@SW_SHOW)
    
    While 1
    _IENavigate($oIE, "https://www.google.de", 0) ;Öffnet Google
    Sleep (1000) ;Wartet 1 Sek.
    $oIE.Document.Body.Style.Zoom = "200%"
    Sleep (600000) ;Wartet 10 Min.
    WEnd ;Aktualisiert Google
    
    
    Func CLOSEButton() ;<-----------------------
       Exit ;<-----------------------
    EndFunc ;<-----------------------
    Alles anzeigen
  • Zoom in _IECreateEmbedded

    • Joschy41
    • 28. Februar 2019 um 19:18

    Hallo,

    vielen Dank für deinen Beitrag.
    Ich komme zur Zeit mit " $oIE.Document.Body.Style.Zoom = "100%"" ganz gut zurecht.

    Zu dem Loop
    Der soll auch ewig laufen, da die Seite immer wieder aktualisiert werden soll. :)

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™