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. name22

Beiträge von name22

  • AutoIT Compile

    • name22
    • 27. November 2010 um 23:07
    Zitat

    Es wäre btw. sinnvoller anstelle des trim befehls stringsplit zu nutzen um den Pfad zum compiler zu bestimmen, dann wäre es egal ob @autoitexe die 32bit oder 64bit version zurückgibt.


    Das kannst du auch gerne machen, aber als ich das Script geschrieben habe wusste ich nicht einmal was StringSplit ist. ;)

  • AutoIT Compile

    • name22
    • 27. November 2010 um 22:56
    Zitat

    Also geht der Compiler nur bei 64 wenn man dort 64 reinschreibt und bei 32 bei 32 ?


    *Seufz* Ich scheine mit einer Wand zu reden...

    Zitat von name22

    RunWait('"' & StringTrimRight(@AutoItExe, 15) & 'Aut2Exe\Aut2exe.exe" /in "' & $PathSource & '" /out "' & $PathDest & '.exe" /x64'); x64 statt x86 ;)

  • AutoIT Compile

    • name22
    • 27. November 2010 um 22:52

    Dann solltest du aber auch das ganze in eine 64bit Version kompilieren...

    [autoit]

    $PathSource = FileOpenDialog("Script auswählen", @ScriptDir, "Au3 Scripts (*.au3)")
    $PathDest = FileSaveDialog("Speichern unter", @ScriptDir, "Exe (*.exe)")
    RunWait('"' & StringTrimRight(@AutoItExe, 15) & 'Aut2Exe\Aut2exe.exe" /in "' & $PathSource & '" /out "' & $PathDest & '.exe" /x64'); x64 statt x86 ;)

    [/autoit]
  • AutoIT Compile

    • name22
    • 27. November 2010 um 22:50
    Zitat

    Er erstellt die exe nicht entwerder mache ich etwas falsch oder das Script ist falsch


    Also bei mir funktioniert es. Was dann wohl heißt, dass das Script stimmt. ;) Also wenn du das Programm startest wählst du im ersten FileOpenDialog die .au3 Datei aus und im zweiten den Namen und Pfad für die .exe...

  • AutoIT Compile

    • name22
    • 27. November 2010 um 22:37
    Zitat

    Ich will dich ja nicht nerven aber es geht immer noch nicht ;)


    Bei mir schon... Was funktioniert denn nicht?

  • AutoIT Compile

    • name22
    • 27. November 2010 um 22:24

    Sorry mein Fehler. Da hab ich wohl die falsche Version hochgeladen...
    Hier mal das ganze auf die Angabe der Pfade von Script und Exe reduziert.

    Spoiler anzeigen
    [autoit]

    #RequireAdmin

    [/autoit] [autoit][/autoit] [autoit]

    $PathSource = FileOpenDialog("Script auswählen", @ScriptDir, "Au3 Scripts (*.au3)")
    $PathDest = FileSaveDialog("Speichern unter", @ScriptDir, "Exe (*.exe)")
    RunWait(StringTrimRight(@AutoItExe, 11) & 'Aut2Exe\Aut2exe.exe /in "' & $PathSource & '" /out "' & $PathDest & '.exe" /x86 ')

    [/autoit]
  • AutoIT Compile

    • name22
    • 27. November 2010 um 21:58

    Ich weiß nicht wie dein Script aussieht, also kann ich dir nicht weiterhelfen... Wenn du alles beim alten gelassen hast in meinem Script dann würde ich mal alle Eingaben überprüfen.

  • AutoIT Compile

    • name22
    • 27. November 2010 um 21:42
    Zitat

    wäre so net wenn du kein bock hast must du es net ;)


    Hätte ich kein Bock dir etwas zu erklären wäre hier kein einziger Post von mir drin...
    Mein Script steuert die Aut2Exe.exe per Kommandozeile an. Die passenden Befehle für die exe findest du auf der von Ealendil genannten Seite: http://translation.autoit.de/onlinehilfe/intro/compiler.htm. Mit der Kommandozeile kannst du Daten an ein Programm übergeben ohne die Maus/Tastatur etc. benutzen zu müssen, es wird also keine Eingabe abgefragt sondern die Kommandos einfach an den Pfad der exe angehängt.

  • AutoIT Compile

    • name22
    • 27. November 2010 um 21:32
    Zitat

    Dann klickt diese Person auf EXE und das Programm speichert als erstes den Inhalt als .au3 ab und soll dann Automatisch und von selber die au3 zur exe Compilen .


    Und genau das haben wir dir in den vorherigen Antworten beschrieben :cursing: ...
    Ich hab dir sogar noch ein Beispiel zum Konvertiervorgang gegeben.

  • ToolTip verschwindet nicht

    • name22
    • 27. November 2010 um 21:30
    Zitat

    Trotzdem ist es doch ein Parameter 8|


    Er hat auch nichts anderes behauptet ;).
    Und wieso lasst ihr ihn nicht einfach mal die Hilfe bzw. gewisse Beiträge in diesem Thread genauer durchlesen? Die beste Art jemandem zu helfen, ist ihm beizubringen sich selbst zu helfen.

  • AutoIT Compile

    • name22
    • 27. November 2010 um 21:28
    Zitat

    Also ein eigener "Scite Editor" sozusagen. Dann einfach den Inhalt des Feldes in eine au3 speichern (z.b. filewriteline ) und dann die au3 mit aut2exe kompilieren.


    Aha...

    Zitat

    Wenn du das machen willst was ich denke dann müsstest du den code in einer Datei speichern und diese mit der Aut2exe.exe im Autoit Ordner über die Kommandozeile konvertieren.


    :D
    Abgesehen davon: Wieso willst du das mit FileWritLine machen, und nicht mit FileWrite? :huh:

  • AutoIT Compile

    • name22
    • 27. November 2010 um 21:20

    Bitte drück dich deutlicher aus...
    Es heißt "Code" und nicht "cod" aka "Call Of Duty" ;). Von welcher Art "cod" reden wir hier? AutoIt oder etwas anderes. Und wenn du ein Programm hast, wieso bist du dann nicht so nett und stellst es in deinen Post damit wir uns nicht vorstellen müssen was du bereits hast und wobei du Hilfe brauchst, da du das ja scheinbar auch nicht erklären kannst. Wenn du das machen willst was ich denke dann müsstest du den code in einer Datei speichern und diese mit der Aut2exe.exe im Autoit Ordner über die Kommandozeile konvertieren. Beispiel:

    Spoiler anzeigen
    [autoit]

    #RequireAdmin

    [/autoit] [autoit][/autoit] [autoit]

    $PathSource = FileOpenDialog("Script auswählen", @ScriptDir, "Au3 Scripts (*.au3)")
    $IconPath = FileOpenDialog("Icon auswählen", @ScriptDir, "Icons (*.ico)")
    $Complevel = InputBox("Kompressionslevel", "0 - 4", 2)
    $UPXPack = InputBox("UPX", "Mit UPX packen? 1 = Ja; 0 = Nein", 1)
    If $UPXPack = 1 Then
    $UPXPack = "/pack"
    Else
    $UPXPack = "/nopack"
    EndIf
    $ANSI_Unicode = InputBox("ANSI/Unicode", "1 = ANSI; 2 = Unicode", 2)
    If $ANSI_Unicode = 1 Then
    $ANSI_Unicode = "/ansi"
    Else
    $ANSI_Unicode = "/unicode"
    EndIf
    $Console = InputBox("Konsole/GUI", "1 = Konsole; 2 = GUI", 2)
    If $Console = 1 Then
    $Console = "/console"
    Else
    $Console = "/gui"
    EndIf
    $PathDest = FileSaveDialog("Speichern unter", @ScriptDir, "Exe (*.exe)")
    RunWait(StringTrimRight(@AutoItExe, 11) & "Aut2Exe\Aut2exe.exe /in " & $PathSource & " /out " & $PathDest & ".exe /icon " & $IconPath & " /comp " & $Complevel & " " & $UPXPack & " " & $ANSI_Unicode & " /x86 " & $Console)
    RunWait(StringTrimRight(@AutoItExe, 11) & "Aut2Exe\Aut2exe.exe /in " & $PathSource & " /out " & $PathDest & "_x64.exe /icon " & $IconPath & " /comp " & $Complevel & " " & $UPXPack & " " & $ANSI_Unicode & " /x64 " & $Console))

    [/autoit]
  • GDI+ Bitmap "trapezoid" zeichnen / DrawImage_4Points

    • name22
    • 27. November 2010 um 19:41

    Andy Deine Funktion funktioniert super bei mir :thumbup: , aber ein paar kleinere Fehler sind noch drin...

    Dateien

    Aufzeichnen.PNG 39,94 kB – 0 Downloads
  • GDI+ Intro Video für Programme/Spiele

    • name22
    • 27. November 2010 um 19:33
    Zitat

    Du könntest das Video als "richtige" Videodatei beilegen (z.B.: DivX kodiert) und bei Scriptstart die einzelnen Bilder mit ffmpeg extrahieren.


    Oh. Ich wusste gar nicht, dass das mit ffmpeg.exe geht ^^. Klar dann ist es noch besser, aber die andere Möglichkeit ist auch zu gebrauchen denke ich, hoffe ich... Ach egal ich versuch es mal mit der ffmpeg.exe. :S

  • GDI+ Intro Video für Programme/Spiele

    • name22
    • 27. November 2010 um 19:03

    Bei mir geht es, aber wenn du mir einen anderen Filehoster empfehlen kannst lade ich das ganze gerne noch mal hoch.

  • GDI+ Intro Video für Programme/Spiele

    • name22
    • 27. November 2010 um 18:59

    Ich habe mal ein Beispiel geschrieben um mit GDI+ z.B. ein Intro Video das über die Möglichkeiten von GDI+ hinausgeht oder zu langsam zu zeichnen wäre für irgendein Programm abzuspielen.

    Es gibt auch bestimmt andere Methoden um ein Video in einem AutoIt Fenster abzuspielen. Allerdings wollte ich es mit GDI+ aus 2 Gründen machen.
    - Man kann mit dieser Methode auch eine Bilder Sequenz an einer bestimmten Position in einer bestimmten Größe auf einem bestimmten Hintergrund abspielen.
    - Da das ganze mit GDI+ Funktioniert ist es perfekt für GDI+ basierte Scripts (z.B. Spiele).

    Das besondere an meinem Beispiel ist, dass die Bilder mit einer exakten Framerate abgespielt werden und somit synchron zur Audiospur sind die möglicherweise im Hintergrund läuft. Die Methode mit AdlibRegister und 1000 / FPS die ich mal vorgeschlagen habe ist viel zu ungenau und die Video Sequenz teilweise 2 Sekunden zu früh fertig.

    Mein Beispiel habe ich übrigens mit Adobe After Effects gemacht :P, es kann aber auch einfach eine Sequenz mit Bildern aus z.B. GIMP oder sogar MS Paint erstellt werden ;).

    Beispiel
    [autoit]

    #include <GDIPlus.au3>
    #include <GUIConstants.au3>
    #include <File.au3>
    #include <Sound.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Opt("GUIOnEventMode", 1)

    [/autoit] [autoit][/autoit] [autoit]

    $iGUIWidth = 600
    $iGUIHeight = 400

    [/autoit] [autoit][/autoit] [autoit]

    $FPS = 40

    [/autoit] [autoit][/autoit] [autoit]

    $hWnd = GUICreate("Name22 Logo", $iGUIWidth, $iGUIHeight)
    GUISetState()

    [/autoit] [autoit][/autoit] [autoit]

    _GDIPlus_Startup()

    [/autoit] [autoit][/autoit] [autoit]

    $hGraphic = _GDIPlus_GraphicsCreateFromHWND($hWnd)
    $hBitmap = _GDIPlus_BitmapCreateFromGraphics($iGUIWidth, $iGUIHeight, $hGraphic)
    $hBuffer = _GDIPlus_ImageGetGraphicsContext($hBitmap)
    _GDIPlus_GraphicsSetSmoothingMode($hBuffer, 2)

    [/autoit] [autoit][/autoit] [autoit]

    Global $aLogo_Name22[1]
    $aLogo_Name22[0] = 0
    $iCurrentFrame = 1

    [/autoit] [autoit][/autoit] [autoit]

    $aSoundBG = _SoundOpen(@ScriptDir & "\Sounds\Logo_Name22 Soundtrack.mp3")
    _LoadData()

    [/autoit] [autoit][/autoit] [autoit]

    GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit")

    [/autoit] [autoit][/autoit] [autoit]

    $iTimer = TimerInit()
    _SoundPlay($aSoundBG)
    AdlibRegister("_DrawFrame", 20)

    [/autoit] [autoit][/autoit] [autoit]

    While Sleep(1000)
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func _DrawFrame()
    _GDIPlus_GraphicsDrawImageRect($hBuffer, $aLogo_Name22[$iCurrentFrame], 0, 0, $iGUIWidth, $iGUIHeight)
    $iCurrentFrame = Floor(TimerDiff($iTimer) / 1000 * $FPS)
    If $iCurrentFrame >= $aLogo_Name22[0] Then
    _Exit()
    EndIf
    _GDIPlus_GraphicsDrawImageRect($hGraphic, $hBitmap, 0, 0, $iGUIWidth, $iGUIHeight)
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _LoadData()
    $aFilesTmp = _FileListToArray(@ScriptDir & "\Images\Logo_Name22", "*.png", 1)
    If IsArray($aFilesTmp) Then
    ReDim $aLogo_Name22[$aFilesTmp[0] + 1]
    $aLogo_Name22[0] = $aFilesTmp[0]
    For $i = 1 To $aLogo_Name22[0]
    $aLogo_Name22[$i] = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\Images\Logo_Name22\" & $aFilesTmp[$i])
    Next
    EndIf
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _Exit()
    AdlibUnRegister()
    _GDIPlus_GraphicsDispose($hGraphic)
    _GDIPlus_GraphicsDispose($hBuffer)
    _GDIPlus_BitmapDispose($hBitmap)
    For $i = 1 To $aLogo_Name22[0]
    _GDIPlus_ImageDispose($aLogo_Name22[$i])
    Next
    _GDIPlus_Shutdown()
    _SoundClose($aSoundBG)
    Exit
    EndFunc

    [/autoit]


    Die benötigten Dateien und das Script findet ihr hier oder hier...
    Falls euch der Download zu groß ist, dann könnt ihr auch einfach ein paar eurer Bilder nehmen (ihr müsst im Grunde nur die Pfade anpassen).
    Ich würde mich über konstruktive Kritik zum Script freuen ;). Eure Meinungen über meine After Effects Skills u.Ä. bitte für euch behalten :D.

  • Per GDI+ Text auf Bild schreiben

    • name22
    • 27. November 2010 um 15:37

    Die anderen sind für die X und Y Koordinaten der linken oberen Ecke des Texts. ;)

  • Per GDI+ Text auf Bild schreiben

    • name22
    • 27. November 2010 um 15:34

    Eine $tagGDIPRECTF-Struktur kannst du mit DLLStructGetData auslesen ;).

    [autoit]

    $tLayout = _GDIPlus_GraphicsMeasureString($hGraphics, $sString, $hFont, $tLayout, $hFormat)
    $iX = DllStructGetData($tLayout, "x")
    $iY = DllStructGetData($tLayout, "y")
    $iWidth = DllStructGetData($tLayout, "width")
    $iHeight = DllStructGetData($tLayout, "height")

    [/autoit]
  • Setup Automatisierung

    • name22
    • 27. November 2010 um 15:02

    Die meißten können dir da wohl schlecht helfen, weil nicht jeder das Spiel hat. :D

    Zitat

    Und wenn ja was gibt es für andere Lösungen.


    Einen normalen MouseClick... Ist allerdings sehr unsicher. :S

  • Per GDI+ Text auf Bild schreiben

    • name22
    • 27. November 2010 um 14:53

    Schrift in die rechte untere Ecke platzieren:
    XSchrift = Bildbreite - Schriftbreite
    YSchrift = BildHöhe - Schrifthöhe - 40 (für die Taskleiste)
    Wo liegt da das Problem? ?(

    Und die Schrift schwarz umranden könntest du so:

    Spoiler anzeigen
    [autoit]

    #include <GDIPlus.au3>
    #include <GDIP.au3>
    #include <GUIConstants.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Opt("GUIOnEventMode", 1)

    [/autoit] [autoit][/autoit] [autoit]

    $iGUIColorBG = 0xFFFFFFFF
    $iGUIWidth = 400
    $iGUIHeight = 400

    [/autoit] [autoit][/autoit] [autoit]

    $sString = "AutoIt"

    [/autoit] [autoit][/autoit] [autoit]

    $hWnd = GUICreate("GDI+ Schrift umranden by name22", $iGUIWidth, $iGUIHeight)
    GUISetState()

    [/autoit] [autoit][/autoit] [autoit]

    _GDIPlus_Startup()

    [/autoit] [autoit][/autoit] [autoit]

    $hGraphic = _GDIPlus_GraphicsCreateFromHWND($hWnd)
    $hBitmap = _GDIPlus_BitmapCreateFromGraphics($iGUIWidth, $iGUIHeight, $hGraphic)
    $hBuffer = _GDIPlus_ImageGetGraphicsContext($hBitmap)
    _GDIPlus_GraphicsSetSmoothingMode($hBuffer, 2)
    _GDIPlus_GraphicsClear($hBuffer, $iGUIColorBG)

    [/autoit] [autoit][/autoit] [autoit]

    $hPen1 = _GDIPlus_PenCreate(0xFF000000, 8)
    $hBrush1 = _GDIPlus_BrushCreateSolid(0xFF0000FF)

    [/autoit] [autoit][/autoit] [autoit]

    $hFormat = _GDIPlus_StringFormatCreate()
    $hFamily = _GDIPlus_FontFamilyCreate("Segoe Script")
    $hFont = _GDIPlus_FontCreate($hFamily, 12, 2)
    $tLayout = _GDIPlus_RectFCreate(100, 100)

    [/autoit] [autoit][/autoit] [autoit]

    $hPath = _GDIPlus_PathCreate(1)
    _GDIPlus_PathAddString($hPath, $sString, $tLayout, $hFamily, 0, 60, $hFormat)

    [/autoit] [autoit][/autoit] [autoit]

    _GDIPlus_GraphicsDrawPath($hBuffer, $hPath, $hPen1)
    _GDIPlus_GraphicsFillPath($hBuffer, $hPath, $hBrush1)

    [/autoit] [autoit][/autoit] [autoit]

    _GDIPlus_GraphicsDrawImageRect($hGraphic, $hBitmap, 0, 0, $iGUIWidth, $iGUIHeight)

    [/autoit] [autoit][/autoit] [autoit]

    GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit")

    [/autoit] [autoit][/autoit] [autoit]

    While Sleep(1000)
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func _Exit()
    _GDIPlus_GraphicsDispose($hGraphic)
    _GDIPlus_GraphicsDispose($hBuffer)
    _GDIPlus_BitmapDispose($hBitmap)
    _GDIPlus_PenDispose($hPen1)
    _GDIPlus_BrushDispose($hBrush1)
    _GDIPlus_FontDispose($hFont)
    _GDIPlus_FontFamilyDispose($hFamily)
    _GDIPlus_StringFormatDispose($hFormat)
    _GDIPlus_PathDispose($hPath)
    _GDIPlus_Shutdown()
    Exit
    EndFunc

    [/autoit]


    Dafür brauchst du noch die GDIP.au3 die hier irgendwo im Forum rumfährt... Ah hier :D.

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™