Beiträge von WhiteLion

    Moin Leute,
    bislang hab ich immer auf meiner Machine mit abgeschalteten UAC und als Admin gearbeitet. Neuerdings muss ich auch auf
    anderen Rechnern mit Win 7,8,8.1 ... als Standardbenutzer meine Scripte ausführen, was mich bei Tests jedoch für ein Problem sorgte:


    Die Funktion #RequireAdmin verursacht, dass meine Scripte beim Starten in eine Endlosschleife gelaufen sind.
    Nun stelle ich mir die Frage, wie ich mein Script was ich irgendwie in den Autostart bringen muss
    am einfachsten und ohne den Nutzer zu nerven mit vollen rechten starte.
    Weiterhin startet dieses Script in verschienden abständen einen Update-Script was für die (automatische) Aktuallisierung des Programmes
    dient und später evtl noch andere Aufgaben übernehmen soll für das dann (da bin ich mir noch unsicher) evtl auch Adminrechte benötigt werden.


    Ich möchte den Nutzer eigentlich nur einmal (bei der Installation) mit einerAdminrechte-Frage nerven, auf kenen Fall aber jedes Mal beim Autostart.


    Wie stelle ich das am besten an und warum geht #RequireAdmin nicht ?

    Ich muss Euch leider enttäuschen.... ich habe leider nichts, außer meine Fantasie :D
    Auch ist mir ein Großteil der Problem bekannt - Nein halt, ich will es mal so ausdrücken:
    Mir ist folgendes auch bekannt:
    Ein ASSEMBLER übersetzt lediglich die in Assemblersprache geschriebenen Mnemonics eins zu eins in Opcodes.
    Nur war mir nicht bekannt dass ich aus einer 64-bit Anwendung keine module mit 32 bit ansprechen kann.
    Ich rufe ja nur funktionen der DLL auf denen ich was übergebe. (zb "push ebx"... oder so)
    heraus bekomme ich dann eben den opcode für 32 bit, oder eben den für 64 bit (das funktioniert ja schon)
    dann herhalte ich einen rückgabewert oder pointer auf eine struct ...etc
    warum kann ich jetzt nicht angeben, dass diese rückgabe eine 32 oder 64 ist um dann das richtige (stack/calling convention)
    zu veranlassen um die rückgabe richtig zu interpretieren.
    gibt es dafür keine windows API´s oder OS - seitige lösung ? - das 64 bit betriebsystem kommt ja auch mit beidem klar ...
    sich denke ich wohl viel zu naiv, trotzdem würde ich mich freuen etwas dazu zu lernen und die probleme zu verstehen.


    ich bin /war ich wohl von der AutoIt Community so verwöhnt (es gibt mittlerweile so
    viele spielereien mit ASM in den AutoIt - Foren), dass ich dachte es würde dafür auch bereits was geben.
    Das einfachste wäre dann wohl einfach die Make-Grafik - Variante zu benutzen und eine 32-bit anwendung zu droppen
    und dann mir den krams zurückgeben zu lassen in meine 64 -bit anwendung zu importieren.

    Ja sorry, ich meinte ja auch nicht, dass es doppelt kompiliert wird ... war etwas unglücklich von ausgedrückt.


    Was ich genau möchte ist eigentlich gar nicht so kompliziert (dachte ich):
    Ich möchte nur bytecode und zwar aus assembler code welchen ich in einem edit-feld schreibe. (so wie das halt ein assembler macht :) jmp 0040FA100 = EB ...... )
    die Autoit-Anwendung aus der ich diesen code generiere muss zwingend 64-kompiliert werden. (also #AutoIt3Wrapper_UseX64=y)
    und der bytecode soll optional 32 oder auch als 64 bit variante assembliert herauskommen. (dazu benuzte ich eine checkbox [x] genetiere 32Bit Bytecode (sonst 64))
    schön wäre es, wenn es ohne irgendwelche dll oder exe drops auf die platte funktioniert, ist aber kein muss.


    Mein Problem hat Make-Grafik ja schon gut erkannt: sobald man sein programm 64-kompiliert funktioniert das ganze nicht mehr, weil wohl dann aus einer 64 bit anwendung eine
    32 bit dll gecalled wird ....

    danke an euch beide für die mühe....


    @Make-Grafik
    deine version läuft bei mir nicht wegen dieser "neumodischen objekte" ala "$tCode.var" die mein AutoIt 3.3.8.1 nicht mag (leider kann ich nicht updaten, da ich dann bei meinem projekt viele anpassungen machen muss :( - (hatte es versucht und bekomme dann abstürtze ohne fehlermeldungen in meinem großen projekt die ich nicht nachvollziehen kann und aufgrund von zeitmangel hab ich dann wieder die alte version eingespielt.)


    @Andy
    das doppelte kompilieren kommt für mich irgendwie auch auch nicht in frage, denn ich hatte mir das so vorgestellt, dass ich in meiner 64bit kompilieren anwendung bytecode erzeugen lasse, den ich per klick als 32 oder halt 64 bit bitcode ausgeben lasse. (den code an sich und nicht starten oder sowas)

    moin leute,


    ich hab längere zeit die alte fasm.au3 verwendet. Und zwar ging und geht es mir nur darum aus einem inputfenster bytecode zu erzeugen, sowohl x86 als auch x64 ... letzteres war ein problem was ich hier mit zu lösen hoffte, es aber irgendwie nciht hinbekomme... evtl könnt ihr mich untersützen ... ich kompiliere sowohl als 32, als auch als 64 bit... 32 bit geht, aber bei 64 bit registern gehts nicht :(


    Func _CreatBYTECODEofASM($setMode = 32)
    if $setMode = 32 then $setMode = "use32" ; Wir arbeiten im 32-Bit Modus
    if $setMode = 64 then $setMode = "use64" ; Wir arbeiten im 64-Bit Modus
    $AsmInput = "push rax"
    $AsmInputRA = StringSplit($setMode & @CR & $AsmInput,@CR)
    For $x=1 to $AsmInputRA[0]
    $z = StringRegExpReplace($AsmInputRA[$x], '\r', '')
    $z = StringRegExpReplace($z, '\n', '')
    Next
    $Bytecode = _FASM_CompileASM($AsmInputRA[2]) ; Binärcode erzeugen
    $Bytecode = StringTrimLeft($Bytecode,2)
    MsgBox(0,"Out", $Bytecode)
    Return $Bytecode
    EndFunc

    ich hab das scrolling mal mit kleinen grafiken versucht 200x200 pixel, was in etwa deinem vorschlag entspricht.... das flimmert zwar nicht, aber der bildaufbau dürfte so bei 3-5 frames pro sekunde liegen. das ist natürlich alles andere als ausreichend.


    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <GDIPlus.au3>



    Global $gui, $guiPos, $pic, $picPos


    ; Initialisiert (startet) Microsoft Windows GDI+ und lädt das Bild
    _GDIPlus_Startup()
    $hImage = _GDIPlus_ImageLoadFromFile("c:\Programme\AutoIt3\AutoIT-eigenerkrams\2.jpg")
    $hGraphic2 = _GDIPlus_GraphicsCreateFromHWND($Gui)
    Example1()


    Func Example1()
    Local $n, $msg


    $Gui = GUICreate("My GUI picture", 350, 300, -1, -1, $WS_SIZEBOX + $WS_SYSMENU)


    GUISetBkColor(0x000000)
    ;$n = GUICtrlCreatePic("c:\Programme\AutoIt3\AutoIT-eigenerkrams\formular.jpg", 50, 50, 200, 50)
    GUISetState()


    While 1
    $msg = GUIGetMsg()


    If $msg = $GUI_EVENT_CLOSE Then ExitLoop
    for $x = 0 To 200 step 5


    ;_GDIPlus_GraphicsDrawImage($hGraphic2, $hImage, 200, 100+$x)


    _GDIPlus_GraphicsDrawImageRectRect($hGraphic2, $hImage, 50, 50, 200, 200, 300, 100+$x, 400, 300)


    Next
    WEnd


    GUIDelete()
    EndFunc

    moin leute,
    ich hab eigentlich vor ein 500 x 2000 pixel grosses bild in einer 500x500 GUI scrollen zu lassen.
    jetzt hab ich etwas rumprobiert und stoße schon bei sehr kleinen bildern auf probleme.
    d.h. beim scrollen flackert es ordentlich, was mir gar nicht gefällt. - ich suche nach einer lösung, bin jedoch planlos.


    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>


    Global $gui, $guiPos, $pic, $picPos


    Example1()


    Func Example1()
    Local $n, $msg


    GUICreate("My GUI picture", 350, 300, -1, -1, $WS_SIZEBOX + $WS_SYSMENU)


    GUISetBkColor(0x000000)
    $n = GUICtrlCreatePic("c:\Programme\AutoIt3\AutoIT-eigenerkrams\formular.jpg", 50, 50, 200, 50)
    GUISetState()


    While 1
    $msg = GUIGetMsg()


    If $msg = $GUI_EVENT_CLOSE Then ExitLoop
    for $x = 0 To 200
    Sleep(10)
    GUICtrlSetPos($n, 50, 59+$x, 200, 100)

    Next
    WEnd


    GUIDelete()
    EndFunc

    danke....


    das problem: wie kommt man auf....:


    Opt("GUIResizeMode",802)


    ....bei der beschreibung von GUIResizeMode???!!!:
    Ändert das Standardverhalten bei Größenveränderung für ein Control.
    0 = (Standard) behält das Standardverhalten bei.
    <1024 = jede Art der Größenveränderung, siehe GUICtrlSetResizing.


    bei GUIResizeMode ... steht dazu auch nix


    was bedeutet die 802 ?

    Also hier ein beispiel.... die knöpfe und alles sonst sollte beim vergrößern an gleicher position bleiben.


    #include <WinAPI.au3>
    #include <WindowsConstants.au3>
    #include <FontConstants.au3>


    $Form1_1 = GUICreate("Test", 400, 780, -1, -1, BitOR($GUI_SS_DEFAULT_GUI,$DS_MODALFRAME), 0)
    $res = GUICtrlCreateGroup("res", 16, 336, 314, 105)
    $chk_2 = GUICtrlCreateCheckbox("Type 2", 123, 351, 57, 15)
    $chk_3 = GUICtrlCreateCheckbox("Type 3", 196, 351, 57, 15)
    $chk_4 = GUICtrlCreateCheckbox("Type 4", 271, 351, 57, 15)
    $chk_5 = GUICtrlCreateCheckbox("Type 5", 123, 373, 57, 15)
    $chk_6 = GUICtrlCreateCheckbox("Type 6", 196, 373, 57, 15)
    $chk_7 = GUICtrlCreateCheckbox("Type 7", 271, 373, 57, 15)
    $chk_8 = GUICtrlCreateCheckbox("Type 8", 123, 394, 65, 15)
    $chk_9 = GUICtrlCreateCheckbox("Type 9", 123, 415, 105, 15)
    $chk_10 = GUICtrlCreateCheckbox("Type 10", 196, 394, 65, 15)
    $chk_11 = GUICtrlCreateCheckbox("Type 11", 271, 394, 57, 15)




    GUISetState(@SW_SHOW)
    Sleep(2000)
    WinMove($Form1_1, "", Default, Default, 1200,810, 100)
    Sleep(2000)

    habe ich, trotzdem bekomme es nicht hin :(
    ich möchte das ändern der größe von allen controlls einfach abstellen, wenn sich das fenster in der größe ändert.... gibt aber auch kein ordentliches beispiel dafür.
    die option ist ja mal echt schlecht beschrieben.

    moin Leute,
    wenn ich per WinMove die Größes meiner GUI verändere, dann dehnen oder quetschen dadurch alle Controll-Elemente.
    Wie kann ich das verhindern ? - Ich möchte nur in der Horizontalen nach rechts weg ein bisschen mehr Fenster dazu haben bzw schrumpfen. gibt es andere Möglichkeiten ?


    $Form1_1 = GUICreate("Test", 1260, 780, -1, -1, BitOR($GUI_SS_DEFAULT_GUI,$DS_MODALFRAME), 0)
    WinMove($Form1_1, "", Default, Default, 780+($horizintal_width*10),810, 100)

    moin leute,


    ich würde gerne wissen wie ich ascii grafiken (ich hänge mal ein beispiel an)
    anzeigen lassen kann. im editfeld geht das ganze ja leider nicht.
    notepad++ kann es ... wie löse ich das problem ?
    danke und LG

    Dateien

    • so_solls_sein.JPG

      (100,57 kB, 204 Mal heruntergeladen, zuletzt: )
    • bomb_ascii.txt

      (2,37 kB, 142 Mal heruntergeladen, zuletzt: )