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

Beiträge von Andy

  • Suche Neue Programmiersprache

    • Andy
    • 4. Dezember 2009 um 20:05
    Zitat

    irgendwie ist dieses Visual C++ Express 2008 sch****..... für ein Programm müssen da locker 10 unterdateien erstellt werden

    Das ist bei allen C-Konstrukten so, das ist der Preis für die Portabilität und die Optimierbarkeit.

  • ControlClick oder ControlSend Hilfe

    • Andy
    • 4. Dezember 2009 um 13:03

    Hallo,
    "eigentlich" sollte es mit dem ControlClick() funktionieren, alternativ könntest du auf die vom Windowinfo ausgegebenen Mauskkoordinaten klicken.

    [autoit]

    mouseclick("left",584,448)

    [/autoit]
  • Rechner leistung ?

    • Andy
    • 4. Dezember 2009 um 12:51

    Habs gerade gesehen, stand da nicht was mit 1 gig Ram im 1. Post? Na wenn der schon 2 gig Ram hat, dann würde ich den so lassen! Wie schon von Schnitzel beschrieben, braucht man echt nix "neueres" ausser für die handvoll Spiele....da kaum eine Software bisher Multicores überhaupt (vollständig) unterstützt

  • schleife während msgbox

    • Andy
    • 4. Dezember 2009 um 12:42

    Ja, allerdings nicht mit der Msgbox.
    Mach dir ein eigenes Fenster, dessen Buttons in deiner Schleife abgefragt werden. Je nach gedrücktem Button werden die Variablenwerte zugewiesen.

    Spoiler anzeigen
    [autoit]

    #include <WinAPI.au3>

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

    $anz=10

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

    global $button[$anz+1],$x[$anz+1],$y[$anz+1]
    $gui=guicreate("Test",600,600)
    for $i=1 to $anz
    $button[$i]= guictrlcreatebutton($i,10+random(20,500,1),10+random(20,500,1),20,20)
    next

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

    $Msgbox=Guicreate("Eigene Messagebox",300,80,50,50)
    $label=guictrlcreatelabel("Die Variablen werden im Fenstertitel angezeigt!",10,10,280,20)
    $msb1=GUICtrlCreateButton("Button1",20,35)
    $msb2=GUICtrlCreateButton("Button2",180,35)
    guisetstate(@sw_show,$gui)
    guisetstate(@sw_show,$msgbox)
    $variable=0
    adlibenable("_move",1000)

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

    while 1
    $msg=GUIGetMsg(1) ;array mit Daten
    switch $msg[1] ;welches fenster löst das Ereignis aus?
    case $msgbox ;die msgbox wars...
    if $msg[0]=$msb1 then $variable=1 ;den Buttons variablen zuweisen
    if $msg[0]=$msb2 then $variable=2 ;den Buttons variablen zuweisen
    if $msg[0]=-3 then guisetstate(@sw_hide,$msgbox) ;msgbox schließen
    if $msg[0]=$msb1 or $msg[0]=$msb2 then winsettitle($Msgbox,"","Die Variable ist: "&$variable)
    ;hier könnte man nun die messagebox "deaktivieren"
    case $gui ;die hauptgui bekam die Nachricht
    if $msg[0]=-3 then Exit ;prog beenden beenden
    endswitch

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

    for $i=1 to $anz
    $a=controlgetpos($gui,"Test",$button[$i])
    if $a[0]<10 then $x[$i]=-$x[$i]
    if $a[1]<10 then $y[$i]=-$y[$i]
    if $a[0]>490 then $x[$i]=-$x[$i]
    if $a[1]>490 then $y[$i]=-$y[$i]
    controlmove("Test","",$button[$i],$a[0]+$x[$i],$a[1]+$y[$i],$a[0]/10,$a[0]/10)
    next
    wend
    exit
    func _move()
    for $i=1 to $anz
    $x[$i]=random(-2,+2,1)
    $y[$i]=random(-2,+2,1)
    next
    _WinAPI_RedrawWindow($gui)
    endfunc

    [/autoit] [autoit][/autoit] [autoit][/autoit]
  • Geburtstag von peethebee und funkey

    • Andy
    • 4. Dezember 2009 um 11:59

    Einen glücklichen Herzwunsch euch beiden :thumbup:

  • Suche Neue Programmiersprache

    • Andy
    • 3. Dezember 2009 um 21:16
    Zitat

    aber wann verwende ich java, das is doch nur ein Browserprogramm oder?

    :rofl: made my Day....Ich verbeisse mir jetzt den Hinweis auf gidf.de ;)

  • Rechner leistung ?

    • Andy
    • 3. Dezember 2009 um 21:10

    Ganz ehrlich? Mit einem weiteren (oder 2) Gigabyte RAM ist das ein ganz ordentlicher Rechner. wieso auch nicht? Für "gängige" Anwendungen reicht die Performance locker, die einzige Herausforderung heutzutage sind Spiele. Selbst Video/Audio Transkodierung /Rekodierung ist damit sicher kein Thema, dann läuft das Ding halt mal eine Nacht durch....
    Die paar euro für den Speicher würde ich aber auf jeden Fall investieren, die verbesserte "Schwuppdizität" ist spürbar! Jedenfalls mehr als ein Prozessor mit 2,7 Ghz^^

  • Suche Neue Programmiersprache

    • Andy
    • 3. Dezember 2009 um 20:58

    Leviathan hats eigentlich auf den Punkt gebracht..

    Zitat

    man wählt sein Werkzeug passend zum Problem


    Aber leider ist es heutzutage meist so, daß jemand mit einer übervollen Werkzeugkiste da steht und keine Ahnung hat, wie er dem Problem zu Leibe rücken soll....warum soll das in der EDV-Branche anders sein?
    Wenn du also zzt. nicht unbedingt etwas lernen MUßT, dann versuche deine Nase überall da reinzustecken, wo kein "Mainstream" ist! Einige Sachen wurden ja schon genannt, einer meiner Kunden beklagte sich neulich, daß er trotz sehr guter Bezahlung kaum FORTRAN-Programmierer bekommt....das ist auch nicht soooo weit von Basic/AutoIt weg^^, auch wenn die Sprache schon über 50 Jahre auf dem Buckel hat.

  • ControlMove

    • Andy
    • 3. Dezember 2009 um 20:07

    @Ubuntu

    Zitat


    hab ich X( !!!


    NEIN, hast du NICHT! Du hast 5 Zeilen gepostet und als Fehlerbeschreibung "Das bewegen funktioniert Nicht".
    Komischerweise funktioniert das Bewegen einwandfrei! Dann muss es zwangsläufig an deinem Script liegen. Nur...welches Script?
    Wo ist das Problem in 5 Sätzen zu beschreiben was man gemacht hat, das Script zu posten und dann das Ziel bzw das Problem so zu beschreiben, daß man nicht erst nach zig-mal nachfragen mitbekommt um was es überhaupt geht!

    [autoit]

    #include <WinAPI.au3>

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

    $anz=10

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

    global $button[$anz+1],$x[$anz+1],$y[$anz+1]
    $gui=guicreate("Test",600,600)
    for $i=1 to $anz
    $button[$i]= guictrlcreatebutton($i,10+random(20,500,1),10+random(20,500,1),40,40)
    next
    guisetstate()

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

    adlibenable("_move",1000)

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

    while guigetmsg()<>-3
    for $i=1 to $anz
    $a=controlgetpos("Test","",$button[$i])
    if $a[0]<10 then $x[$i]=-$x[$i]
    if $a[1]<10 then $y[$i]=-$y[$i]
    if $a[0]>490 then $x[$i]=-$x[$i]
    if $a[1]>490 then $y[$i]=-$y[$i]
    controlmove("Test","",$button[$i],$a[0]+$x[$i],$a[1]+$y[$i],$a[0]/10,$a[0]/10)
    next
    ;_WinAPI_RedrawWindow($gui) ;hab nen langsamen Rechner ab 20 Controls wirds zu langsam,
    ;ggf kann man nur die Fläche der ontrols refreshen
    wend

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

    func _move()
    for $i=1 to $anz
    $x[$i]=random(-2,+2,1)
    $y[$i]=random(-2,+2,1)
    next
    endfunc

    [/autoit]

    Mal ein kleiner "Test" meinerseits zum Thema "flackern". Also bei mir flackert nix....

    /EDIT/ sry, du hast es heute abbekommen, hab mich wieder abgeregt!

  • ControlMove

    • Andy
    • 3. Dezember 2009 um 17:09

    was soll ich sagen....ausser RTFM! :cursing:

  • Registry auslesen, und schreiben

    • Andy
    • 3. Dezember 2009 um 17:00

    Hi,
    was ich mich gerade frage, was passiert mit deinstallierten Addins? Ich glaube kaum, daß die Addins die kompletten Einträge umschreiben wenn mittendrin eines der Addins deinstalliert wird. D.h. es könnten "Lücken" auftreten. Eigentlich kein Problem, aber da war ja noch die Frage nach dem ExcelWrapper.
    Also müsste es entweder zwei getrennte Schleifen geben, eine scannt nach dem ExcelWrapper und die andere danach nach der nächste "Lücke" oder man merkt sich die nächste Lücke und setzt ein Wrapperflag, daß ganz zum Schluß ausgewertet wird.

    [autoit]

    $openflag=-1
    $wrapperflag=-1

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

    For $i = 0 to 100 ;alle einträge prüfen
    If $i=0 then $i=""
    If RegRead("HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Excel\Options", "OPEN"&$i)="" then
    ;msgbox(0,0,"Open"&$i&" ist frei für den nächsten Wert!") ;auskommentieren wenn es funktioniert
    if $openflag=-1 then $openflag=$i ;die erste "Fundstelle" merken
    endif
    if StringInStr(Regenumval ("HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Excel\Options", $i), "ExcelWrapper ") <> 0 then $wrapperflag=1
    next

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

    if $wrapperflag=-1 then ;kei Wrapper vorhanden, dann Addin installieren an die erste gefundene "Lücke"
    ;installiere ADDIN mit Nummer $openflag
    msgbox(0,"Installiere Addin nach:","Open"&$openflag)
    Else
    consolewrite ("ExcelWrapper vorhanden!"& @CRLF )
    endif

    [/autoit][autoit][/autoit][autoit][/autoit]
  • Registry auslesen, und schreiben

    • Andy
    • 3. Dezember 2009 um 14:05

    Hab aktuell kein Excel, aber lt deiner Beschreibung sollte das so funktionieren

    [autoit]

    For $i = 0 to 100
    If $i=0 then $i=""
    If RegRead("HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Excel\Options", "OPEN"&$i)="" then
    msgbox(0,0,"Open"&$i&" ist frei für den nächsten Wert!") ;auskommentieren wenn es funktioniert
    ;hier das plugin installieren
    endif
    next

    [/autoit]
  • DeskLock

    • Andy
    • 3. Dezember 2009 um 10:33
    Zitat

    Tastatur blocken geht schlecht, da du sonst das Passwort nicht mehr eingeben könntest

    ach^^...denk da mal genau drüber nach.....das eine hat mit dem anderen nämlich nichts zu tun....

    Zitat

    Maus blocken Ebenfalls schlecht, wie soll man sonst das Passwort eingeben?

    s.o.

  • php Code in AutoIt verwandeln

    • Andy
    • 3. Dezember 2009 um 04:13

    Diesmal lag es wirklich nur an dem "falschen" Datentypen.
    Ein String kann 2147483647 Zeichen aufnehmen, das ist schon mal eine ganze Menge.
    Ein Integer (mit Vorzeichen) hat einen Wertebereich von +-268435457 (0xEFFFFFFF so wars doch, jedenfalls bei 32Bit?), das sind gerade mal 9 Zeichen....

    Bei Franzi´s Script sieht man auch sehr schön die interne Umwandlung der Datentypen. AutoIt findet garnichts dabei, eine Integerzahl als String zu behandeln ^^
    Wird aus dem $v aber ein string, dann kann dieser nun ellenlang sein

    [autoit]

    $v = "123456789012345678999899999999988888888889999999992893756928375692873562893756289356"
    For $i = 999999 To 999 Step -1
    $result1 = StringInStr($v, $i)
    $result2 = StringInStr($v, $i, "", 2)
    If $result1 <> 0 And $result2 <> 0 And $result2 > StringLen($i) + $result1 Then
    ConsoleWrite($i &@CRLF)
    EndIf
    Next

    [/autoit]
  • DeskLock

    • Andy
    • 2. Dezember 2009 um 23:02
    Zitat

    Somit sollte man auch immer die PID des "richtigen" DeskLock's haben,
    da nützt keine zweite Exe etwas

    Kann sein dass ich auf dem Schlauch stehe, aber wolltest du nicht einen DesktopLOCK machen?
    Wenn der Desktop gelockt ist, dann bleiben dir mehrere Möglichkeiten um als FREMDER das Lock auszuschalten (oder auch nicht^^)

    Tastatur (wird abgefangen, Taskmanager und alle neu startenden Tasks werden sofort beendet)
    Maus (wird in einer Endlosschleife auf Punkt 0,0 gezogen)
    Autorun per USB-Stick,CD/DVD (Prüfen der Taskliste, jeder neue Task wird sofort gekillt)

    Geht da noch was übers Netzwerk? Doch eigentlich nur, wenn der Prozess auf dem gelockten Rechner schon aktiv ist, jeder Neue wird ja vom Locker gekillt?!
    Wär wirklich mal was für nen Wettbewerb^^

  • Zahlenalgorithmus mit AutoIt herausfinden

    • Andy
    • 2. Dezember 2009 um 19:11

    fast linear...

    1. Koeffizient = 256 * x
    2. Koeffizient = 65536.2575 * x
    3. Koeffizient = 8192 *x

    also Näherungsweise 2^8, 2^13, 2^16
    plus das sog. "Offset" ;)

  • Zahlenalgorithmus mit AutoIt herausfinden

    • Andy
    • 2. Dezember 2009 um 18:16

    Erstelle ein Gleichungssystem, 4 Gleichungen mit 4 Unbekannten, die Lösung ist deine gesuchte Funktion. Da du sogar 7 Gleichungen aber nur 4 unbekannte hast, sollte das lösbar sein

  • Desktop mit AutoIT bereinigen

    • Andy
    • 2. Dezember 2009 um 17:58
    Zitat

    Die Funktionen die du wünscht klingt nach dem "Kiosk Modus" habe mal gegooglet

    Zitat

    Festplattenimage machen, und das bei jedem Start laden. So ist es am einfachsten.


    Problem (bzw. Vorteil) ist bei beiden, daß der Rechner von einem, ich nenn es mal "Administrator" auf dem neuesten Stand bzgl. Windows-Updates, Treiber, VirenScannerdateien usw. gehalten werden MUß!

    Ansonsten wäre eine Virtuelle Maschine auch einen Alternative (SnapShots)

  • Desktop mit AutoIT bereinigen

    • Andy
    • 2. Dezember 2009 um 16:55

    Hab meins noch mal bissl geändert^^ / verkürzt
    Aber SeuBo hat natürlich recht, mit seiner Variante testet man auch in den veränderten Verzeichnissen

  • Desktop mit AutoIT bereinigen

    • Andy
    • 2. Dezember 2009 um 16:40
    Zitat

    Weit gefehlt :P

    OK! :thumbup:

    Habe dein Script jetzt versucht zu durchschauen aber bin gescheitert^^
    Ich greife Oscars Ansatz mal an:

    Aufgabe:
    Der Desktop soll (bei jedem Start des Rechners?) denselben Desktopinhalt haben, bzw die seit dem letzten Scripstart veränderten (hinzugekommenen) Symbole sollen gelöscht werden.

    Lösung:
    Alle auf dem Desktop angeordneten Symbole bzw Verweise liegen im Verzeichnis

    [autoit]

    @desktopdir

    [/autoit]

    . Der Inhalt dieses Verzeichnisses gibt den "Desktop" wieder.
    Wenn man diese Dateien speichert und nachher mit den Daten des geänderten Desktops vergleicht, dann ist die Differenz die Menge der zu löschenden Daten.

    Also:
    Mit dem Script Savedesktopdata.au3 die aktuellen Desktopdaten speichern.
    Desktop verändern.
    Mit dem Script Restoredesktopdata.au3 die aktuellen Desktopdaten einlesen und mit den gespeicherten vergleichen und ggf löschen.


    Script Savedesktopdata.au3

    Spoiler anzeigen
    [autoit]

    #include <Array.au3>
    #include <File.au3>
    ;desktopdaten werden in die Datei "Desktopdata.dat" gespeichert

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

    $files = ""
    $aData = _filelisttoarray(@DesktopDir,"*") ;alle symbole auf dem desktop...
    _arraydelete($adata,0)

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

    For $symbol In $aData ;arraydaten splitten und abspeoichern
    $files &= $symbol & @CRLF ;jedes in eine Zeile
    Next
    filedelete("desktopdata.dat")
    FileWrite("desktopdata.dat", $files) ;und in eine Datei speichern

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

    Script Restoredesktopdata.au3

    Spoiler anzeigen
    [autoit]

    #include <Array.au3>
    #include <File.au3>
    ;desktopdaten werden aus der Datei "Desktopdata.dat" gelesen und mit den aktuellen verglichen

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

    $files = ""
    $aData = _filelisttoarray(@DesktopDir,"*") ;alle symbole auf dem desktop...
    _arraydelete($aData,0)
    dim $aSaved_data
    _FileReadToArray("Desktopdata.dat",$aSaved_data)

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

    ;arraycompare
    for $inhalt in $aData
    if _arraysearch($aSaved_data,$inhalt)=-1 then ;Symbol nicht in der gespeicherten Liste enthalten
    msgbox(0,"Info","Auf dem Desktop wurde seit dem letzten Speichern das Symbol "&$inhalt&" hinzugefügt!"&@crlf&"Das Symbol wird nun gelöscht!")
    FileDelete(@DesktopDir&"\"&$inhalt)
    EndIf
    next

    [/autoit]

    /*EDIT*/ :thumbup:

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™