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

  • backup mit ordner erstellung

    • BugFix
    • 13. Dezember 2006 um 23:14

    Und hier noch ne Variante, falls die *.txt unterhalb eines Startpfades in diversen Ordnern liegen, also rekursiv gesucht werden müssen.

    Spoiler anzeigen
    [autoit]

    Dim $Pfad_txt = "C:\Files" ; Startpfad für rekursive Suche nach TXT-Files
    Dim $Pfad_Backup = "C:\Backup\" ; Wurzelpfad für Sicherungen
    Dim $SaveDir
    Dim $arTXT ; Array mit den ermittelten TXT-Files

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

    $arTXT = _GetFileList($Pfad_txt, "*.txt")
    If IsArray($arTXT) Then
    $SaveDir = DirCreate($Pfad_Backup & @YEAR & "-" & @MON & "-" & @MDAY)
    For $i = 1 To $arTXT[0]
    $var = StringSplit($arTXT[$i], "\")
    FileMove($arTXT[$i], $SaveDir & "\" & $var[$var[0]]) ; Datei in Backupordner verschieben
    Next
    EndIf

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

    ; AutoIt Version: 3.0
    ; Language: English
    ; Platform: Win9x/NT/XP
    ; Author: jos van der Zande
    ;
    ; Find files in directory and subdirectories and return it in an Array, all coded in Autoit3
    ;
    ; _GetFileList($DIR, $FILEMASK, 1) ; _GetFileList($DIR, $FILEMASK [, Flag]) Flag GetFile(Default) = 0 , GetDirOnly = 1
    ;********************************************************************************
    ;Recursive search for filemask
    ;********************************************************************************

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

    Func _GetFileList($T_DIR,$T_MASK,$DIR_ONLY=0)
    Dim $N_DIRNAMES[200000] ; max number of directories that can be scanned
    Local $N_DIRCOUNT = 0
    Local $N_FILE
    Local $N_SEARCH
    Local $N_TFILE
    Local $N_OFILE
    Local $T_FILENAMES
    Local $T_FILECOUNT
    Local $T_DIRCOUNT = 1
    Local $FILEMASK
    ; check Filemask \ for empty File-Array by GetDirOnly
    If $FILEMASK = "n" Then $FILEMASK = "*.no"
    ; remove the end \ If specified
    If StringRight($T_DIR,1) = "\" Then $T_DIR = StringTrimRight($T_DIR,1)
    $N_DIRNAMES[$T_DIRCOUNT] = $T_DIR
    ; Exit if base dir doesn't exists
    If Not FileExists($T_DIR) Then Return 0
    ; keep on looping until all directories are scanned
    While $T_DIRCOUNT > $N_DIRCOUNT
    $N_DIRCOUNT = $N_DIRCOUNT + 1
    ; find all subdirs in this directory and save them in a array
    $N_SEARCH = FileFindFirstFile($N_DIRNAMES[$N_DIRCOUNT] & "\*.*")
    While 1
    $N_FILE = FileFindNextFile($N_SEARCH)
    If @error Then ExitLoop
    ; skip these references
    If $N_FILE = "." Or $N_FILE = ".." Then ContinueLoop
    $N_TFILE = $N_DIRNAMES[$N_DIRCOUNT] & "\" & $N_FILE
    ; if Directory than add to the list of directories to be processed
    If StringInStr(FileGetAttrib( $N_TFILE ),"D") > 0 Then
    $T_DIRCOUNT = $T_DIRCOUNT + 1
    $N_DIRNAMES[$T_DIRCOUNT] = $N_TFILE
    EndIf
    Wend
    FileClose($N_SEARCH) ; find all Files that mtach the MASK
    $N_SEARCH = FileFindFirstFile($N_DIRNAMES[$N_DIRCOUNT] & "\" & $T_MASK )
    If $N_SEARCH = -1 Then ContinueLoop
    While 1
    $N_FILE = FileFindNextFile($N_SEARCH)
    If @error Then ExitLoop
    ; skip these references
    If $N_FILE = "." Or $N_FILE = ".." Then ContinueLoop
    $N_TFILE = $N_DIRNAMES[$N_DIRCOUNT] & "\" & $N_FILE
    ; if Directory than add to the list of directories to be processed
    If StringInStr(FileGetAttrib( $N_TFILE ),"D") = 0 Then
    $T_FILENAMES = $T_FILENAMES & $N_TFILE & @CR
    $T_FILECOUNT = $T_FILECOUNT + 1
    ;MsgBox(0,'filecount ' & $T_FILECOUNT ,$N_TFILE)
    EndIf
    Wend
    FileClose($N_SEARCH)
    Wend
    If $DIR_ONLY = 0 Then
    $T_FILENAMES = StringTrimRight($T_FILENAMES,1)
    $N_OFILE = StringSplit($T_FILENAMES,@CR)
    Return( $N_OFILE )
    Else
    ReDim $N_DIRNAMES[$N_DIRCOUNT+1]
    $N_DIRNAMES[0] = $N_DIRCOUNT
    Return $N_DIRNAMES
    EndIf
    EndFunc ;==>_GetFileList

    [/autoit]

    EDIT:
    Man soll nicht unbedingt nach 12 Std. Arbeit versuchen Programmierprobleme zu lösen ;) , da war ich etwas unaufmerksam und ein Fehler hat sich eingeschlichen.
    Hab ihn hiermit geBugFixt :rofl:

  • mehrere ToolTip anzeigen

    • BugFix
    • 11. Dezember 2006 um 22:56

    Du machst nichts falsch - ist wie beim Highlander: Es kann nur einen geben!
    Wieso möchtest du zeitgleich 4 Tooltipps anzeigen?


    Edit:
    Egal warum, Lösungsvorschlag - 4 Popupwindows, die kannst du zeitgleich positionieren, mit OnTop-Style sind sie auch garantiert im Vordergrund.

  • Werbung die 2e

    • BugFix
    • 8. Dezember 2006 um 23:31
    Zitat

    Wenn man einmal weiß was es ist klickt man nicht mehr hin...
    Was für einen SINN hat die Werbung, wenn KEINER VON UNS draufklickt?

    Naja, ich habe ein bischen Probleme mit deiner Einstellung zur Werbung bzw. mehr damit, wie du sie verkaufen willst.

    Nachdem, was du schreibst, hört sich das so an, als ob du User auf die Werbelinks locken willst! Und das ist tiefstes Bildzeitungsniveau.

    Ich denke, jeder Mensch soll bewusst handeln und nicht manipuliert werden. Soviel Achtung und Würde hat jeder verdient.


    zu deiner Abstimmung:
    [X] Ich bevorzuge die Variante mit der Box
    [] Ich bevorzuge die Zwischen-Posts
    [] Ich hasse Werbung, weg damit!
    [] kann beides bleiben!

  • Werbung?

    • BugFix
    • 8. Dezember 2006 um 22:44
    Zitat

    Was hast du dagegen dass die Admins etwas bekommen

    Woraus schlussfolgerst du das?

    Ich habe nichts gegen Werbung, wenn sie unaufdringlich ist. Unaufdringlich sehe ich so: etwas, dass mir nicht sofort ins Auge springt. Sowas finde ich akzeptabel.

    Aber da werden die Meinungen sicher immer auseinander gehen.

    EDIT: Wow, die Werbeecke gefällt mir. Das hat was. Super Idee find ich.

  • Werbung?

    • BugFix
    • 8. Dezember 2006 um 22:18

    Also mal meine ganz bescheidene Meinung:
    Mit der Werbung das ist Schei...!!
    Hatte, die Mehrzahl nicht abgestimmt, ja - wenn sie NICHT aufdringlich ist ???
    Ist diese Werbeform etwa unaufdringlich????

  • Windows und S-ATA

    • BugFix
    • 8. Dezember 2006 um 22:08

    Also ich muss einfach mal etwas Dampf ablassen. Und vielleicht ist euch meine Erfahrung von Nutzen.
    Also Folgendes:
    Ich habe einige Laptops für die Firma gekauft (Compaq nx6310). Die werden nur als Ferneinstellung genutzt, also keine besonderen Anforderungen. Nun waren die ohne Betriebssystem bzw. mit FreeDos. Das ist ja normalerweise kein Problem - schließlich habe ich schon bei zig Rechnern Windows installiert.
    Also Windows-CD rein und los. Aber dann: Windows konnte keine Festplatte erkennen. Hmm Mist! ?(
    Na irgendwann kam dann die Erleuchtung - da ist 'ne S-ATA Platte drin, da muss ich zusätzliche Treiber installieren. Also auf die Web-Site von HP und die Treiber für S-ATA runtergeladen. D.h. man bekommt dort keine Treiber, sondern eine exe, die eine Treiber"Diskette" erstellt. OK - also hab ich die Diskette erstellt und anschließend den Inhalt auf CD gebrannt (das Laptop hat nunmal kein Diskettenlaufwerk).
    Zweiter Versuch: Start von CD, "Für Installation von zusätzlichen Treibern drücken Sie F6" - klar, mach ich! - Nun werden alle Treiber installiert und dann: "Wenn Sie zusätzliche Treiber installieren wollen drücken Sie Z!" - na aber sicher mach ich das!
    "Legen Sie die Diskette mit den Treibern in Laufwerk A:" - Häh? - Diskette? - Laufwerk A: ? ?(
    Da installiert man Windoof von CD aber zusätzliche Treiber soll man von Diskette laden auch wenn der Computer gar kein Disk-Lw hat!! Oh man, wie blöd sind die in Redmond!!
    -Vielleicht nimmt er ja doch die CD? - Install-CD raus, Treiber-CD rein, ENTER --> Mist, nix passiert! ;(
    Sowieso krank, dass WinXP Pro SP2 keine Ahnung von der Existenz von S-ATA Platten hat!
    - Weiter in meinem Martyrium. Auf zum Elektronikmarkt - USB-Disketten-Lw gekauft und das ganze von vorn.
    - Siehe da, mit Lw A: funktioniert das Ganze endlich! :]
    Unangenehm war nur noch, dass HP generell keine Treiber-CD ihren Produkten beilegt (wie mir der Supportmitarbeiter sagte, ist das Philosophie bei HP - auch ziemlich krank), man braucht also zwingend einen zweiten PC um einen HP-PC zu installieren -> :rofl:

    Was mich jedoch am meisten ärgert - das ganze darf ich jetzt noch 5-mal machen, da die Boot-CD meiner Image-Software ebenfalls keine S-ATA Platten kennt.

  • Fenster angeblich geöffnet

    • BugFix
    • 6. Dezember 2006 um 20:12

    Vorschlag:
    Lass doch so ablaufen wenn du weg musst
    - alle Pozesse auflisten

    [autoit]

    $list = ProcessList()

    [/autoit]


    - alle Prozesse (ausser den Systemprozessen ;) und QIP) beenden

    [autoit]

    ProcessClose("prozess_X_Y.exe")

    [/autoit]


    - Fenster QIP aktivieren
    - wenn du jetzt deine Nachricht und STRG+w sendest, geht das an QIP
    - das ganze n-mal und dann shutdown

  • Fenster angeblich geöffnet

    • BugFix
    • 6. Dezember 2006 um 18:35

    Wieviele Gesprächsfenster hast du max. offen 10, 15 ?
    Laß doch einfach eine zählergesteurte Schleife laufen.
    Sende z.B. 10x "Tschüß, muss weg" STRG+w und anschließend fährst du den PC runter.
    Sicher nicht der eleganteste Weg - aber wenn sonst nichts geht ist es besser als nix. ;)

  • Alles Gute, jonk

    • BugFix
    • 6. Dezember 2006 um 00:48

    Hallo Jonk,
    auch von mir herzliche Geburtstagsgrüße (ist das nicht nervig zusammen mit Nikolaus ;) ).
    Ich wünsch dir alle Gute, immer reichlich Kohle in der Tasche und Spaß am Leben. :musik2:
    Und denk an das Wichtige im Leben: Hauptsache Man(n) ist gesund und Frau hat Arbeit. :rofl:

  • Alarm auf Handy?

    • BugFix
    • 6. Dezember 2006 um 00:37

    Nur mal als Gedanke (obs tatsächlich geht weiß ich nicht). Ich glaube gelesen zu haben, dass man mit Skype auch ins öffentliche Telefonnetz einwählen kann (auch ins Handynetz ??). Dazu muss man sich wohl einen Account zumindest mit einem Sockelbetrag aufladen. Aber wenn keine Verbindung zustande kommt (anklingeln), wird der ja nicht aufgebraucht.
    Wenn das tatsächlich technisch möglich ist, wäre das vermutlich die einfachste Lösung -Skype hast du ja sowieso drauf ;) .

  • Fenster angeblich geöffnet

    • BugFix
    • 5. Dezember 2006 um 22:44

    Also mit WinGetState() bekommst du keine Rückmeldung?
    Wenn ich richtig verstanden habe, werden mit Strg+W die einzelnen Gesprächsfenster beendet und somit zum Schluss auch die Anwendung.
    Dann versuch doch mal folgendes:

    [autoit]

    $process = "qip.exe" ; musst mal schauen,welcher Prozeßname das ist
    While ProcessExists($process)
    #cs So könnte deine Abmeldung aussehen
    Send("Muss DRINGEND weg!")
    Send("{ENTER}") ; ich nehme an, dass auch bei QIP mit ENTER abgesendet wird
    #ce
    Send("^w")
    WEnd
    Shutdown(9)

    [/autoit]

    Edit: Shutdown fehlte noch ;)

  • Fenster angeblich geöffnet

    • BugFix
    • 4. Dezember 2006 um 21:36

    Manno, RTFM

    da steht doch alles ganz klar:

    Zitat

    1 = Window exists
    2 = Window is visible
    4 = Windows is enabled
    8 = Window is active

    Also:
    13 = 8 + 4 + 1 (Window exist AND Window enable AND Window active)
    5 = 4 + 1 (Window exist AND Window enable)

    Also machs mal so:

    [autoit]

    $state = WinGetState("[XXX-XXX-XXX] - Messaging Window") ; wenns nicht existiert = 0
    If $state <> 0 Then
    Do
    Send("^w")
    $state = WinGetState("[XXX-XXX-XXX] - Messaging Window")
    MsgBox(1, "baum baum", $state)
    Until $state = 0
    EndIf

    [/autoit]

    Aber verrate mir mal, warum das "Send("^w")" in der Do - Until -Schleife laufen soll. Soll doch das Fenster beenden - und klappt das nicht immer, dass es in der Schleife ggf. wiederholt werden muss?

  • Fenster angeblich geöffnet

    • BugFix
    • 4. Dezember 2006 um 21:12

    Verwende WinGetState()
    Damit klappt das problemlos.

  • Fenster angeblich geöffnet

    • BugFix
    • 4. Dezember 2006 um 20:56

    WinActive gibt bei Erfolg 1 zurück. Darum muß ja auch beim erstenmal das Fenster als existent gemeldet werden:

    [autoit]

    WinActivate ( "[XXX-XXX-XXX] - Messaging Window") ; Fenster wird aktiviert

    $active = WinActive ("[XXX-XXX-XXX] - Messaging Window") ; da Fenster aktiv, $active = 1

    MsgBox(1, "baum baum", $active)

    [/autoit]
  • Windows-Sicherheit Fenster aufrufen??

    • BugFix
    • 4. Dezember 2006 um 20:27

    Auszug aus der Hilfe:

    Zitat

    Windows does not allow the simulation of the "CTRL-ALT-DEL" combination!


    Erklärt doch alles - oder?

  • Glückwunsch zum Geburtstag peethebee

    • BugFix
    • 4. Dezember 2006 um 20:17

    Hallo Pee,
    auch ich möchte mich dem Kreise der Gratulanten anschließen und wünsche Dir alles Gute im "Erwachsenen"-Leben. :klatschen:
    Heute bist du endlich voll (jährig) :rofl:
    Genieße den neuen Lebensabschnitt und
    Let's have a party!! :party:

  • Kundenliste nach Alphabet in INI-Datei sortieren

    • BugFix
    • 4. Dezember 2006 um 00:10

    Also ich denke, die INI ist denkbar ungeeignet für deine Zwecke.
    Da du wahrscheinlich keine sehr große Anzahl an Kunden hast, würde ich eine Verwaltung in einer Textdatei vorschlagen.
    Kunden.txt Könnte so aussehen:
    Position|Label|Button|Filename|Workingdir
    1|Meier, Hans|Meier|Meier\Kunde.exe|Meier\
    Mit:

    [autoit]

    _FileReadToArray("Kunden.txt",$arKunden)

    [/autoit]

    kannst du dann die Daten beim Start in das Array laden. Neue Daten dem Array hinzufügen oder Daten entfernen, Daten sortieren.
    Beim Programmende schreibst du die Daten wieder in die Datei.
    Schau mal hier rein. Da hab ich das auch so gelöst.

  • Kundenliste nach Alphabet in INI-Datei sortieren

    • BugFix
    • 2. Dezember 2006 um 23:44

    Ich hab dir mal 'ne Lösung erstellt. :)

    Spoiler anzeigen
    [autoit]

    #include <array.au3>
    ; Nehmen wir mal an, deine Daten werden erfaßt oder ausgelesen oder was auch immer.
    ; Die Anbindung daran bekommst du bestimmt hin ;)
    ; Habe hier einfach ein paar Musterdaten erfunden
    Dim $INI_Pfad = @ScriptDir & "\Kunden.INI"
    Dim $Pos, $Name
    Dim $arKunden[6]
    $arKunden[0] = "Meier, Bernd" ; z.B. aus Inputfeld: _ArrayAdd($arKunden, GUICtrlRead($Inputfeld))
    $arKunden[1] = "Zeiger, Maria" ; oder aus Feld Name u. VName: _ArrayAdd($arKunden, GUICtrlRead($InName) & ", " & GUICtrlRead($InVName))
    $arKunden[2] = "Kaufmann, Ulrike"
    $arKunden[3] = "Bertel, Lutz"
    $arKunden[4] = "Weber, Alfred"
    $arKunden[5] = "Ullrich, Jan"

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

    ;Array sortieren
    _ArraySort($arKunden)

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

    ; INI schreiben
    For $i = 0 To UBound($arKunden)-1
    $Pos = $i +1
    $Name = StringLeft($arKunden[$i], StringInStr($arKunden[$i], ",") -1)
    IniWrite($INI_Pfad, $Pos, "Position", $Pos)
    IniWrite($INI_Pfad, $Pos, "Label", $arKunden[$i])
    IniWrite($INI_Pfad, $Pos, "Button", $Name)
    IniWrite($INI_Pfad, $Pos, "Filename", $Name & "\Kunde.exe")
    IniWrite($INI_Pfad, $Pos, "Workingdir", $Name & "\")
    Next

    [/autoit]


    Falls schon eine INI existiert:

    [autoit]

    #include <array.au3>
    ; hab dein Bsp. so verstanden, dass "Position" = [Section]
    ; falls die INI schon existiert und diese sortiert werden soll:
    Dim $INI_Pfad_r = @ScriptDir & "\Kunden.INI"
    Dim $INI_Pfad_w = @ScriptDir & "\Kunden1.INI"
    Dim $Pos, $Name, $arSection
    Dim $arKunden[1]

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

    $arSection = IniReadSectionNames($INI_Pfad_r)
    For $i = 1 To $arSection[0]
    _ArrayAdd($arKunden, IniRead($INI_Pfad_r, $arSection[$i], "Label", ""))
    Next

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

    ;Array sortieren
    _ArraySort($arKunden)

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

    ; INI schreiben
    For $i = 1 To UBound($arKunden)-1
    $Pos = $i
    $Name = StringLeft($arKunden[$i], StringInStr($arKunden[$i], ",") -1)
    IniWrite($INI_Pfad_w, $Pos, "Position", $Pos)
    IniWrite($INI_Pfad_w, $Pos, "Label", $arKunden[$i])
    IniWrite($INI_Pfad_w, $Pos, "Button", $Name)
    IniWrite($INI_Pfad_w, $Pos, "Filename", $Name & "\Kunde.exe")
    IniWrite($INI_Pfad_w, $Pos, "Workingdir", $Name & "\")
    Next

    [/autoit]
  • autoit unter linux

    • BugFix
    • 2. Dezember 2006 um 14:57

    Also in der Form, wie bei AutoIt (Scriptsprache UND GUI-Entwicklung) ist mir momentan nichts bekannt.
    Für GUI-Entwicklung gibt es z.B. "lesstif".
    Als Sriptsprachen finden sich dort z.B. "Perl", "Python", "PHP", "Tcl/Tk".
    Vielleicht gibt es innerhalb der einzelnen Distributionen noch ganz spezifische Anwendungen. Aber ich bin da nicht auf dem Laufenden. ;)

  • Installation IE 7.0 per Autoupdate - verhindern

    • BugFix
    • 2. Dezember 2006 um 02:12

    Hab das grad bei Heise online entdeckt:
    http://www.heise.de/security/artikel/79554

    Ich hab den notwendigen Reg-Schlüssel schon mal erstellt.
    Wer will, kann ihn verwenden um die automatische Installation zu verhindern.

    Dateien

    Not_Allowed_IE70.zip 321 Byte – 368 Downloads

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™