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

Beiträge von BugFix

  • Schreib Programm

    • BugFix
    • 1. Mai 2007 um 11:51
    [autoit]

    $wort = Inputbox("","")
    $buchstaben = StringSplit($wort,"")
    $Out = ""
    For $i = 1 To $buchstaben[0]
    $Out &= "Baum" & $buchstaben[$i]
    Next
    MsgBox(0,'',$Out)

    [/autoit]
  • SplashTextOn auslesen

    • BugFix
    • 30. April 2007 um 13:47
    Zitat

    Zitat Post1
    aus einer mit SplashTextOn erstellten Anwendung

    Zitat

    Zitat letzter Post
    Nun stell Dir mal vor, das die ControlID
    der Fremdanwendung nicht bekannt ist...

    Ja was denn nun - Fremdanwendung oder Autoit ?
    Wenn Fremdanwendung, wie kommst du dann auf eine Erstellung mit SplashTextOn.

  • Arbeitsfenster

    • BugFix
    • 30. April 2007 um 13:43

    Was möchtest du ? Eine GUI von der du Programme startest und nach Programmende dorthin zurückkehrst ?
    Dann ruf deine Proggis mit ShellExecuteWait() auf, das Script wartet dann bis das externe Programm beendet ist.

  • SplashTextOn auslesen

    • BugFix
    • 30. April 2007 um 13:39
    Zitat

    Um meine Experimentierfreude zu befriedigen, wollte
    ich nur wissen, ob oder wie man auf irgendeine Weise
    den erstellten Text auslesen kann.

    Experimentierfreude ist gut :) aber verbeiß dich nicht an Sachen, die ergo keinen Sinn ergeben.
    Denn: Wozu soll ich Werte abfragen, die ich selber dort ausgebe ? :irre:
    SplashText kommt ja nicht mal eben von alleine, sondern wird von mir mit Inhalt befüllt.

  • GUI Variable hilfe

    • BugFix
    • 30. April 2007 um 13:34

    Bsp.:

    Funktion:

    [autoit]

    Func APP_1()
    ; Code der Funktion
    EndFunc

    [/autoit]

    Aufruf:

    [autoit]

    APP_1()

    [/autoit]
  • Rekursive Dateisuche per Objekt

    • BugFix
    • 30. April 2007 um 13:23
    Zitat

    Ich habs mal so angepaßt (NICHT unbedingt besser!!!)

    Minimieren ist immer gut ;)

    Eins aber noch zur Ergänzung, sollte die gesuchte Datei mehrfach vorhanden sein, wird nur die erste gefundene Instanz zurückgegeben (war auch mein Anliegen um die Suchzeit zu minimieren).
    Kann natürlich abgeändert werden (Megas Änderung noch nicht enthalten):

    Spoiler anzeigen
    [autoit]


    #include <array.au3>
    Dim $Datei = "autoit3.exe"
    Dim $Ordner = @ProgramFilesDir
    Dim $Ret
    $Ret = _RecursiveFileSearch($Datei, $Ordner)
    If $Ret[0] > 1 Then
    _ArrayDisplay($Ret, "")
    Else
    MsgBox(0, '', $Ret[1] )
    EndIf

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

    ;--------------------------------------------------------------------------------------------------
    ; Funktion _RecursiveFileSearch($FILE, $SEARCHFOLDER)
    ;
    ; Beschreibung Sucht nach vorgegebener Datei in einem Ordner rekursiv
    ;
    ; Parameter $FILE: zu suchende Datei
    ; $SEARCHFOLDER: Ordner für Suchstart
    ;
    ; Rückgabe Erfolg: Array mit Pfad(en) der gesuchten Datei
    ; @error = 0
    ; Fehler: 1-kein Dateiname / 2-kein Ordnername übergeben (3-beides); 4-Datei nicht vorhanden
    ; @error = 1
    ;
    ; Autor BugFix ([email='bugfix@autoit.de'][/email])
    ;--------------------------------------------------------------------------------------------------
    Func _RecursiveFileSearch($FILE, $SEARCHFOLDER)
    Global $Out = "" ;$PathFound = ""
    Dim $Fehler = 0
    If $FILE = "" Then
    SetError(1)
    $Fehler += 1
    EndIf
    If $SEARCHFOLDER = "" Then
    SetError(1)
    $Fehler += 2
    EndIf
    If @error Then Return $Fehler
    $FSO = ObjCreate("Scripting.FileSystemObject")
    ShowSubfolders( $FSO.GetFolder($SEARCHFOLDER), $FILE )
    ;~ If $PathFound = "" Then
    If $Out = "" Then
    SetError(1)
    $Fehler = 4
    Return $Fehler
    Else
    SetError(0)
    EndIf
    $Out = StringSplit(StringTrimRight($Out, 1), "|")
    Return $Out
    ;~ Return $PathFound
    EndFunc
    Func ShowSubFolders($Folder, $FILE)
    For $Subfolder In $Folder.SubFolders
    If FileExists($Subfolder.Path & '\' & $FILE) Then
    $Out &= $Subfolder.Path & '\' & $FILE & "|"
    ; $PathFound = $Subfolder.Path & '\' & $FILE
    ; ExitLoop
    EndIf
    ShowSubFolders($Subfolder, $FILE)
    Next
    EndFunc
    ; ==>_RecursiveFileSearch

    [/autoit]

    Also von der Gesamtsuchzeit her ist glaub ich kein Zeitgewinn zu verzeichnen. Aber der Code ist einfacher zu handeln als die Strukturen mit 'FileFindFirstFile - FileFindNextFile'.

  • Rekursive Dateisuche per Objekt

    • BugFix
    • 30. April 2007 um 11:40

    Hier mal eine andere Variante zur Rekursiven Dateisuche. Diesmal mit Objekt gelöst.
    Konkret: Funktion um eine Datei rekursiv in einem Pfad zu suchen. Rückgabe - der Dateipfad.

    Spoiler anzeigen
    [autoit]

    Dim $Datei = "autoit3.exe"
    Dim $Ordner = @ProgramFilesDir
    MsgBox(0, '', _RecursiveFileSearch($Datei, $Ordner) )

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

    ;--------------------------------------------------------------------------------------------------
    ; Funktion _RecursiveFileSearch($FILE, $SEARCHFOLDER)
    ;
    ; Beschreibung Sucht nach vorgegebener Datei in einem Ordner rekursiv
    ;
    ; Parameter $FILE: zu suchende Datei
    ; $SEARCHFOLDER: Ordner für Suchstart
    ;
    ; Rückgabe Erfolg: Pfad der gesuchten Datei
    ; @error = 0
    ; Fehler: 1-kein Dateiname / 2-kein Ordnername übergeben (3-beides); 4-Datei nicht vorhanden
    ; @error = 1
    ;
    ; Autor BugFix ([email='bugfix@autoit.de'][/email])
    ;--------------------------------------------------------------------------------------------------
    Func _RecursiveFileSearch($FILE, $SEARCHFOLDER)
    Global $PathFound = ""
    Dim $Fehler = 0
    If $FILE = "" Then
    SetError(1)
    $Fehler += 1
    EndIf
    If $SEARCHFOLDER = "" Then
    SetError(1)
    $Fehler += 2
    EndIf
    If @error Then Return $Fehler
    $FSO = ObjCreate("Scripting.FileSystemObject")
    ShowSubfolders( $FSO.GetFolder($SEARCHFOLDER), $FILE )
    If $PathFound = "" Then
    SetError(1)
    $Fehler = 4
    Return $Fehler
    Else
    SetError(0)
    EndIf
    Return $PathFound
    EndFunc
    Func ShowSubFolders($Folder, $FILE)
    For $Subfolder in $Folder.SubFolders
    If FileExists($Subfolder.Path & "\" & $FILE) Then
    $PathFound = $Subfolder.Path & "\" & $FILE
    ExitLoop
    EndIf
    ShowSubFolders( $Subfolder, $FILE )
    Next
    EndFunc
    ; ==>_RecursiveFileSearch

    [/autoit]

    Dateien

    _RecursiveFileSearch.au3 1,44 kB – 1.251 Downloads
  • AutoIt.DE direkt unter <Start>

    • BugFix
    • 30. April 2007 um 10:51

    Erstelle das in einem Editor deiner Wahl :D und speichere es als z.B. "AutoitMenu.reg" ab. Dann darauf Doppelklick - das wars. Nach einem Neustart ist es verfügbar.

  • AutoIt.DE direkt unter <Start>

    • BugFix
    • 30. April 2007 um 10:22

    Für XP-Benutzer, die auch den XP-Style verwenden, hier eine Möglichkeit das Autoit-Forum (od. jede beliebige Anwendung) direkt bei <Start>, unterhalb der Schaltfläche <Ausführen>, einzubinden.

    So sieht es aus:
    [Blockierte Grafik: http://img-up.net/img/menuSgk.png]

    Dazu einfach einen Registry-Eintrag erstellen:

    Spoiler anzeigen
    Code
    Windows Registry Editor Version 5.00
    [HKEY_CLASSES_ROOT\CLSID\{2559a1f6-21d7-11d4-bdaf-00c04f60b9f0}]
    @="AutoIt.DE"
    [HKEY_CLASSES_ROOT\CLSID\{2559a1f6-21d7-11d4-bdaf-00c04f60b9f0}\DefaultIcon]
    @="autoit24x24.ico"
    00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,68,00,70,00,6c,00,69,00,\
    6e,00,6b,00,2e,00,69,00,63,00,6f,00,00,00
    [HKEY_CLASSES_ROOT\CLSID\{2559a1f6-21d7-11d4-bdaf-00c04f60b9f0}\InProcServer32]
    @=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\
    00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,73,00,68,00,\
    64,00,6f,00,63,00,76,00,77,00,2e,00,64,00,6c,00,6c,00,00,00
    "ThreadingModel"="Apartment"
    [HKEY_CLASSES_ROOT\CLSID\{2559a1f6-21d7-11d4-bdaf-00c04f60b9f0}\Instance]
    "CLSID"="{3f454f0e-42ae-4d7c-8ea3-328250d6e272}"
    [HKEY_CLASSES_ROOT\CLSID\{2559a1f6-21d7-11d4-bdaf-00c04f60b9f0}\Instance\InitPropertyBag]
    "CLSID"="{13709620-C279-11CE-A49E-444553540000}"
    "method"="ShellExecute"
    "Command"="AutoIt.DE"
    "Param1"="http://autoit.aufwaerts.de"
    [HKEY_CLASSES_ROOT\CLSID\{2559a1f6-21d7-11d4-bdaf-00c04f60b9f0}\shellex]
    [HKEY_CLASSES_ROOT\CLSID\{2559a1f6-21d7-11d4-bdaf-00c04f60b9f0}\shellex\ContextMenuHandlers]
    [HKEY_CLASSES_ROOT\CLSID\{2559a1f6-21d7-11d4-bdaf-00c04f60b9f0}\shellex\ContextMenuHandlers\{2559a1f6-21d7-11d4-bdaf-00c04f60b9f0}]
    @=""
    [HKEY_CLASSES_ROOT\CLSID\{2559a1f6-21d7-11d4-bdaf-00c04f60b9f0}\shellex\MayChangeDefaultMenu]
    @=""
    [HKEY_CLASSES_ROOT\CLSID\{2559a1f6-21d7-11d4-bdaf-00c04f60b9f0}\ShellFolder]
    "Attributes"=dword:00000000
    Alles anzeigen

    - Zeile 3 und 18 enthalten den Titel der Schaltfläche.
    - Zeile 19 enthält als Parameter den Aufruf: Webadresse oder Programmpfad.
    - Der Name des verwendeten Icons wird in Zeile 5 eingetragen. Das Icon muß 24 x 24 Pixel groß und im Ordner 'Windows' abgespeichert sein.

    Den Tipp hatte ich mal in einer PC-Zeitschrift gesehen, weiß aber nicht mehr welche das war - also Quelle: 'PC-Zeitschrift' ;)

  • n00b projekt die 2. action!

    • BugFix
    • 30. April 2007 um 09:29

    Organisation ist das Schwerste. ;)
    Vielleicht kann ich mit ein paar Anregungen helfen.

    Ein Gemeinschaftsprojekt hängt natürlich stark an der Möglichkeit auch zusammen zu arbeiten.
    Waluev: Da du gewissermaßen der 'Projektleiter' bist, solltest du das koordinieren - das geht aber leider nicht mit: Bitte morgen 17 Uhr alle im IRC.
    - Mach eine Liste mit Terminvorschlägen
    - Jeder Co-Worker äußert sich binnen 1 Woche per Post zu den Terminen und bringt ggf. eigene Terminvorschläge ein

    Dann sollte nach 2 Wo. ein gemeinsamer Termin für alle realisierbar sein.

    Zu diesem Termin sollten alle Fragen bezüglich der Arbeitsaufteilung geklärt werden. Denn Termine, an denen alle können sind nunmal rar.

    Stellt eure Scripte auf eine gemeinsame Plattformen, wo ihr alle drauf zugreifen könnt (File-Server od. gemeinsamer GoogleMail-Acc. ==> 2GB Speicherplatz gratis [hab noch ne Menge davon ;) ] )

    Alles andere per Post im Forum.


    Ich wünsche euch viel Erfolg und auf eure Fragen lauern wir schon ganz gierig. :]

  • GUI Variable hilfe

    • BugFix
    • 30. April 2007 um 09:04
    [autoit]

    $APP_CHKBOX[$i]

    [/autoit]

    Dieses Array enthält deine Checkboxen (Anzahl ermittelst du mit Ubound).

    Status ermitteln:

    [autoit]

    If GuiCtrlRead($APP_CHKBOX[$i]) = $GUI_CHECKED Then

    [/autoit]
  • Datei an (Brenn)-Programm senden

    • BugFix
    • 29. April 2007 um 23:58

    Hi, hiermit werden die CD/DVD-Laufwerke (alles was Type 'CDROM' hat) ausgegeben. Schließt auch virtuelle Laufwerke ein, die registrieren sich ebenfalls als CDROM.

    Spoiler anzeigen
    [autoit]

    ; Generated by AutoIt Scriptomatic
    $wbemFlagReturnImmediately = 0x10
    $wbemFlagForwardOnly = 0x20
    $colItems = ""
    $strComputer = "localhost"

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

    $Output=""
    $objWMIService = ObjGet("winmgmts:\\" & $strComputer & "\root\CIMV2")
    $colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_CDROMDrive", "WQL", _
    $wbemFlagReturnImmediately + $wbemFlagForwardOnly)

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

    If IsObj($colItems) then
    For $objItem In $colItems
    $Output = $Output & "Caption: " & $objItem.Caption & @CRLF
    $Output = $Output & "Drive: " & $objItem.Drive & @CRLF
    if Msgbox(1,"WMI Output",$Output) = 2 then ExitLoop
    $Output=""
    Next
    Else
    Msgbox(0,"WMI Output","No WMI Objects Found for class: " & "Win32_CDROMDrive" )
    Endif

    [/autoit]

    EDIT:
    Und hiermit kannst du rekursiv nach "nerocmd.exe" suchen:

    Spoiler anzeigen
    [autoit]

    Dim $file = "nerocmd.exe"
    Dim $SearchFolder = @ProgramFilesDir
    Dim $PathFound
    $FSO = ObjCreate("Scripting.FileSystemObject")
    ShowSubfolders( $FSO.GetFolder($SearchFolder) )
    MsgBox(0, '', "gefunden: " & $PathFound)

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

    Func ShowSubFolders($Folder)
    For $Subfolder in $Folder.SubFolders
    If FileExists($Subfolder.Path & "\" & $file) Then
    $PathFound = $Subfolder.Path & "\" & $file
    ExitLoop
    EndIf
    ShowSubFolders( $Subfolder )
    Next
    EndFunc

    [/autoit]
  • Schleife mit Abbruchbedingung Eingabe

    • BugFix
    • 29. April 2007 um 19:47

    Dann gib einfach die ersten Buchstaben ein:
    [Blockierte Grafik: http://img-up.net/img/ispressedwTC.PNG]

    Viel einfacher aber:
    Befehl in SciTE schreiben, markieren und dann F1 drücken.

  • Pause/Fortsetzen per Hotkey

    • BugFix
    • 29. April 2007 um 16:47

    hier, das funzt bei mir prima:

    Spoiler anzeigen
    [autoit]

    #include <Misc.au3>
    HotKeySet("{F9}", "_pause")
    HotKeySet("^e", "_end")
    $N = 0
    While 1
    $N += 1
    ToolTip($N)
    Sleep(500)
    WEnd

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

    Func _pause()
    Do
    Sleep(100)
    Until _IsPressed("79") ; F10
    EndFunc

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

    Func _end()
    Exit
    EndFunc

    [/autoit]

    Du kannst ja mal den Wert für Slep in der Pause-Funktion auf 10 runtersetzen.

  • Schleife mit Abbruchbedingung Eingabe

    • BugFix
    • 29. April 2007 um 16:39

    _IsPressed()

  • Pause/Fortsetzen per Hotkey

    • BugFix
    • 29. April 2007 um 14:50
    Zitat

    aber was bezweckst du mit

    While 1
    Sleep(100)
    ;programmcode
    WEnd

    Das sollte nur dein eigentliches Programm symbolisieren

  • Pause/Fortsetzen per Hotkey

    • BugFix
    • 29. April 2007 um 14:37

    Probier das mal (ungetestet), "F9" für Pause, "F10" für fortsetzen:

    [autoit]

    #include <Misc.au3>
    HotKeySet("{F9}", "_pause")
    While 1
    Sleep(100)
    ;programmcode
    WEnd

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

    Func _pause()
    Do
    Sleep(100)
    Until _IsPressed("79") ; F10
    EndFunc

    [/autoit]
  • Maus und Tastatur sperren

    • BugFix
    • 29. April 2007 um 13:52
    [autoit]

    HotKeySet("{F9}", "_block")
    While 1
    Sleep(100)
    WEnd
    Func _block()
    BlockInput(1)
    EndFunc

    [/autoit]

    Hiermit kannst du per "F9" sperren.
    Trotz Tastatur-und Maussperre arbeitet aber "Strg+Alt+Entf". Somit kannst du darüber die Sperre wieder entfernen.

  • User-Taste bei Logitech Tastatur

    • BugFix
    • 29. April 2007 um 11:11

    Für die "Sondertastenbelegung" startet i.A. beim Systemstart ein Tool, dass die Belegung durchführt (mal "msconfig" ausführen, ob es da auftaucht im autostart). Wenn du das Tool findest, deaktiviere es und du hast die Normalbelegung.

  • tv kaputt

    • BugFix
    • 28. April 2007 um 21:14

    Klingt nach Zeilentrafo. 40 € ist realistisch für den Trafo selbst, zzgl. Arbeitslohn für etwa 3/4 Stunde bist du bei 60 -100, je nach Region.
    Wenn das Teil sonst ein gutes Bild bringt und ein paar Features hat, würde ich aber zur Reparatur raten. Es läßt sich nicht gerade behaupten, dass die Qualität der Produkte sich im Laufe der Zeit zwingend verbessert hat. :) Gerade bei Bildröhren sind häufig ältere Produkte den neuen deutlich überlegen. Soweit zumindest meine Erfahrungen.
    Zur Reparatur nicht unbedingt eine Großwerkstatt auswählen. Der kleine Krauter um die Ecke in einem Kuhkaff ist häufig viel versierter.
    In unserem Nest (etwa 3000 Seelen) ist z.B. eine Werkstatt, deren Besitzer früher im Funkwerk gearbeitet hat. Dem kannst du 'ne alte Sardinendose hinbringen, da macht der nen Fernseher draus. :rofl:

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™