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

  • Fensteranordnung

    • BugFix
    • 26. Oktober 2006 um 18:20

    Hi,
    ich hab ein paar Probleme beim "Fenster'ln" :schild4:
    Also ich habe eine MainGUI mit Menü. Aus dem Menü (bzw. mit Hotkeys) kann ich verschiedene SubGUI's aufrufen (mit @SW_SHOW / @SW_HIDE).
    Die MainGUI ist maximiert, die SubGUI haben feste (kleinere) Größe und sind zentriert.
    Die MainGUI stellt nur die Menüleiste zur Verfügung und bildet den Hintergrund (keine weiteren Controls).

    Mein Problem:
    Wenn eine SubGUI aufgerufen ist und man klickt in den Bereich der MainGUI verschwindet die SubGUI sofort hinter der MainGUI. Mit ALT+TAB kann ich sie wieder hervorholen. Ich möchte aber, dass sie generell vorn bleibt oder anders herum, dass die MainGUI immer als hinterste liegt.
    Ich habe schon mit diversen Styles probiert aber noch nix gefunden, was diesen Effekt hat.
    Oder gibt es eine Möglichkeit eine Gruppierung für die verschiedenen GUI's festzulegen?

  • lesen von binären Dateien

    • BugFix
    • 26. Oktober 2006 um 09:54

    All you need is Larry ;)

    Wenn du was spezielles suchst, im englischen Forum wirst du häufig fündig. Und gerade Larry hat eine Menge cooler Lösungen erstellt.
    Binary File Read/Write findest du hier in der "APIFileReadWrite.au3".

  • autoit unlogisch??

    • BugFix
    • 23. Oktober 2006 um 22:54

    Wer wird denn da gleich das Kind mit dem Bade ausschütten?

    Zitat

    wenn nicht einmal so ne einfache prüfung klappt


    Die Prüfung funktioniert tadellos.
    Es werden auch nicht irgendwelche Quadrate, sondern korrekt "xy" eingetragen.
    Manchmal befindet sich das Problem nicht im sondern vorm Computer ...? ;)

    Nicht aufgeben - Autoit ist schon eine tolle Sprache. Und es ist erstaunlich was man damit alles realisieren kann.

  • Array aus Array neu sortiert

    • BugFix
    • 23. Oktober 2006 um 10:17

    Außer bei bestimmten Funktionen, wo die Anzahl der Elemente im $Array[0] bzw. $Array[0][0] hinterlegt wird, mußt du bei eigenen Array selbst einen Zähler führen, wenn du das möchtest.
    z.B.

    [autoit]

    $Array[0][0]=0
    For $i = 1 To $x
    ; Daten ermitteln
    $Array[1][$i] = $wert
    $Array[0][0] += 1 ; Zaehler um 1 erhöhen
    Next

    [/autoit]

    In deinem Beispiel sehe ich keine Wertzuweisung für "$KategoriesOrder[0][0]".

  • ALLE Erweiterungen anzeigen

    • BugFix
    • 22. Oktober 2006 um 16:11

    Hi,
    Ab Windows 98 existiert unter <Extras> <Ordneroptionen> (Windows 98: <Ansicht> <Ordneroptionen>) auf der Registerkarte <Ansicht> die Option "Erweiterung bei bekannten Dateitypen ausblenden"
    Eigentlich sollte Windows jetzt alle Extensionen zeigen.
    Die meisten Erweiterungen zeigt der Explorer auch.
    Jedoch für einige registrierte Dateitypen bleiben die Erweiterungen weiterhin unsichtbar.
    Aber natürlich kann man auch da Abhilfe schaffen. ;)
    Ich hab ein kleines Proggi gebastelt, dass alle ausgeblendeten Dateitypen auflistet. So ihr möchtet, könnt ihr mit einem Klick die markierte Erweiterung sichtbar machen.
    Ich häng mal zum Testen 2 selbst erzeugte Registry-Schlüssel an ('AAA.ext.reg' und 'AAA.TEST.reg'). Der erste Schlüssel trägt die Extension '.111' ein und der zweite Schlüssel bestimmt u. a. ob diese sichtbar ist oder nicht.

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    #Include <GuiListView.au3>
    #include <array.au3>
    Dim $i = 0, $j = 0, $msg = "", $RegKey = "HKEY_CLASSES_ROOT\", $Descrip = "", $Ext, $arAllExt[1], $arWert1[1], $arExt[1], $arDiscrip[1]
    Dim $Wert1, $Wert2, $Val, $Fehler1 = 0, $Fehler2 = 0, $Abbruch = 0
    $arAllExt[0] = 0
    $arWert1[0] = 0
    $arExt[0] = 0
    $arDiscrip[0] = 0

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

    $HKCR = GUICreate("Versteckte Dateitypen", 617, 384, 235, 250)
    $ListView1 = GUICtrlCreateListView("Registry-Schlüssel|Erweiterung|Beschreibung", 8, 40, 601, 336, BitOR($LVS_NOSORTHEADER, $LVS_SINGLESEL))
    _GUICtrlListViewSetColumnWidth(-1, 0, 258)
    _GUICtrlListViewSetColumnWidth(-1, 1, 70)
    _GUICtrlListViewSetColumnWidth(-1, 2, 268)
    $bEnde = GUICtrlCreateButton("Schließen", 509, 10, 100, 20, 0)
    $bShowExt = GUICtrlCreateButton("Erweiterung sichtbar machen", 198, 10, 170, 20, 0)
    $bShowHiddenExt = GUICtrlCreateButton("Zeige Versteckte Dateitypen", 8, 10, 170, 20, 0)

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

    $Busy = GUICreate("", 160, 110, -1, -1, $WS_POPUP)
    GUISetBkColor(0x708090)
    $label_busy = GUICtrlCreateLabel("Einen Moment bitte." & @LF & @LF & "Die notwendigen Daten" _
    & @LF & "werden ermittelt..", 20, 15, 120, 100, $SS_CENTER)
    GUICtrlSetFont(-1, 10, Default, 2)
    GUICtrlSetColor(-1, 0xF0E68C)

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

    GUISetState(@SW_SHOW, $HKCR)
    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE Or $msg = $bEnde
    ExitLoop
    Case $msg = $bShowHiddenExt
    GUISetState(@SW_SHOW, $Busy)
    _ReadReg()
    _ExtRead()
    GUISetState(@SW_HIDE, $Busy)
    _FillList()
    Case $msg = $bShowExt
    _ShowExtension()
    If $Abbruch = 0 Then _GUICtrlListViewDeleteItemsSelected($ListView1)
    EndSelect
    WEnd
    Exit

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

    Func _ReadReg()
    Do
    $i += 1
    $Wert1 = RegEnumKey($RegKey, $i)
    $Fehler1 = @error
    If $Fehler1 = 0 Then
    If StringLeft($Wert1, 1) = "." Then
    _ArrayAdd($arAllExt, $Wert1)
    $arAllExt[0] += 1
    EndIf
    RegRead($RegKey & $Wert1, "NeverShowExt")
    $Fehler2 = @error
    If $Fehler2 = 0 Then
    _ArrayAdd($arWert1, $Wert1)
    $arWert1[0] += 1
    $Descrip = RegRead($RegKey & $Wert1, "")
    _ArrayAdd($arDiscrip, $Descrip)
    $arDiscrip[0] += 1
    EndIf
    EndIf
    Until $Fehler1 <> 0
    EndFunc ;==>_ReadReg

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

    Func _ExtRead()
    For $i = 1 To $arWert1[0]
    For $j = 1 To $arAllExt[0]
    If RegRead($RegKey & $arAllExt[$j], "") = $arWert1[$i] Then
    $Ext = $arAllExt[$j]
    _ArrayAdd($arExt, $Ext)
    $arExt[0] += 1
    EndIf
    Next
    Next
    EndFunc ;==>_ExtRead

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

    Func _FillList()
    For $i = 1 To $arWert1[0]
    GUICtrlCreateListViewItem($RegKey & $arWert1[$i] & "|" & $arExt[$i] & "|" & $arDiscrip[$i], $ListView1)
    Next
    EndFunc ;==>_FillList

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

    Func _ShowExtension()
    If MsgBox(20, "Registry-Wert löschen", "Der gewählte Registry-Wert wird" & @LF & "unwiederruflich gelöscht" _
    & @LF & @LF & "Wollen Sie fortfahren ?") = 7 _
    Then
    $Abbruch = 1
    Return 0
    Else
    $item = _GUICtrlListViewGetItemText($ListView1, _GUICtrlListViewGetSelectedIndices($ListView1))
    If $item <> "" Then
    If StringInStr($item, ".lnk", 1) Then
    If MsgBox(20, ".lnk anzeigen", "Das Anzeigen von allen Verknüpfungen" & @LF & "führt zu einem Chaos auf dem Desktop!" _
    & @LF & @LF & "Wollen Sie trotzdem fortfahren ?") = 7 _
    Then
    $Abbruch = 1
    Return 0
    EndIf
    EndIf
    $key = StringLeft($item, StringInStr($item, "|", 0, 1) - 1)
    RegDelete($key, "NeverShowExt")
    EndIf
    $Abbruch = 0
    EndIf
    EndFunc ;==>_ShowExtension

    [/autoit]

    Dateien

    TestReg.zip 485 Byte – 276 Downloads ShowAllExtension.au3 3,46 kB – 291 Downloads
  • Suche Virtuelles Lw, Kommandozeilentauglich

    • BugFix
    • 21. Oktober 2006 um 19:04

    Danke,
    werde ich gleich mal testen.

    EDIT:

    So, wunderbar. Es macht, was ich will. ;)
    Warum hast du eigentlich ein Sleep( ) drin ? Ich habs jetzt so:

    [autoit]

    Opt("WinTitleMatchMode", 2)
    $path_img = '"F:\Master\CD Images\Image.nrg"'
    Run ('"E:\DAEMON Tools\daemon.exe" -mount 0,' & $path_img)
    WinWaitActive("DAEMON")
    Send("!j")

    [/autoit]
  • Suche Virtuelles Lw, Kommandozeilentauglich

    • BugFix
    • 21. Oktober 2006 um 17:03

    Hallo,
    Ich habe nun von allen Lernprogramm - CD's meiner Tochter ein Image erstellt und eine kleine Oberfläche erstellt mit Programmauswahl. Dort wird dann die zum Programm erforderliche (virtuelle) CD eingelegt und das Programm aufgerufen.
    Problem ist nur, mein Virtuelles Laufwerk (CloneCD) kann nicht per Kommandozeile angesprochen werden. Ich hab es mit MouseMouve/MouseClick realisiert. Ist aber nicht zufriedenstellend.

    Daher meine Frage:
    Kennt jemand ein Virtuelles Laufwerk, dass kommandozeilenfähig ist?
    z.B. "virtLw.exe /Imagedatei" zum Laden der Scheibe wäre super.

  • probleme mit javascript und zählschleife

    • BugFix
    • 21. Oktober 2006 um 10:46
    Zitat

    ich habe eine konstante die vorher vom user in der gui eingegeben wird z.b. 2 nun muss ich nach einem form-objekt suchen dass bei diesem user bei korrekter eingabe den namen "user_id2" dachte da so an "user_id".$KONSTANTE..


    Versuchs mal hiermit:

    [autoit]

    $ID = "user_id"
    $KONSTANTE = 2
    $value = "test"
    Assign($ID & "." & $KONSTANTE, $value)
    ; generiert Variable "$user_id.2" mit Inhalt $value
    ; der Punkt im Variablennamen widerspricht aber der Syntax
    ; daher kann Variable nur mit EVAL ausgelesen werden:
    MsgBox(0, "", Eval($ID & "." & $KONSTANTE))

    [/autoit]
  • Studium / Ausbildung / Sonstiges ?

    • BugFix
    • 20. Oktober 2006 um 18:55

    Auch wenn das bei mir schon etwas länger her ist (27 Jahre :rofl: ) kann ich dir empfehlen: Versuch etwas praxisnahes zu bekommen. In unserem Bundesland sind jetzt extra dafür Berufsbegleitende Studiengänge eingerichtet worden. Da bist du von vornherein bei einer Firma angestellt, die dich beim Studium begleitet. Interessante Variante, finde ich.

  • Dateibrowser frage

    • BugFix
    • 17. Oktober 2006 um 22:19

    Na gut,
    da dir die GUI Probleme bereitet, hab ich (bzw. Koda LOL ) sie mal erstellt.
    Den Anfangscode habe ich schon eingefügt - aber etwas mußt du schon noch selber tun. ;)

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    #Include <GuiList.au3>

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

    #Region ### START Koda GUI section ### Form=
    $Form2 = GUICreate("Datei Auswahl", 445, 326, 251, 121)
    $List_Auswahl = GUICtrlCreateList("", 8, 8, 428, 213)
    GUICtrlSetData(-1, "")
    $Button_Auswahl = GUICtrlCreateButton("Dateiwahl", 360, 225, 75, 25, 0)
    $Button_Start = GUICtrlCreateButton("Start", 360, 260, 75, 25, 0)
    $Button_Cancel = GUICtrlCreateButton("&Cancel", 360, 295, 75, 25, 0)
    $Group1 = GUICtrlCreateGroup("SUCH - String", 8, 220, 329, 48)
    $Input_Suche = GUICtrlCreateInput("", 17, 236, 310, 21)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group2 = GUICtrlCreateGroup("ERSETZ - String", 8, 272, 329, 48)
    $Input_Ersetze = GUICtrlCreateInput("", 17, 290, 310, 21)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button_Cancel
    Exit
    Case $Button_Start
    $anzahl = _GUICtrlListCount($List_Auswahl)
    $suche = GUICtrlRead($Input_Suche)
    $ersetze = GUICtrlRead($Input_Ersetze)
    If $anzahl > 0 And $suche <> "" And $ersetze <> "" Then
    For $i = 0 To $anzahl-1
    $pfad = _GUICtrlListGetText($List_Auswahl, $i)
    ; öffne Datei $pfad
    ; durchsuche nach $suche
    ; ersetze mit $ersetze
    Next
    Else
    MsgBox(0, 'ACHTUNG!', "Nicht alle notwendigen Angaben vorhanden")
    EndIf
    Case $Button_Auswahl
    $datei = FileOpenDialog("Auswahl Datei", @HomeDrive, "All (*.*)")
    If $datei <> "" Then GUICtrlSetData($List_Auswahl, $datei)
    EndSwitch
    WEnd

    [/autoit]
  • Application Luncher

    • BugFix
    • 17. Oktober 2006 um 11:45

    Ist das evtl. praktikabel:

    [autoit]

    ; ...
    Switch @UserName
    Case "NAME 1"
    $ProgrammMenu = $programme1
    Case "NAME 2"
    $ProgrammMenu = $programme2
    Case "NAME 3"
    $ProgrammMenu = $programme3
    ; .
    ; .
    EndSwitch
    ; ...

    [/autoit]


    Kannst hier natürlich auch Nutzer einer Gruppe zusammenlegen mit: Case "NAME 1" Or "NAME 2"

  • Dateien / Ordner rekursiv lesen

    • BugFix
    • 17. Oktober 2006 um 11:08

    Hab ich grad gestern überarbeitet. Ist mir selbst etwas zu unstrukturiert gewesen und hat, wie du siehst wohl noch ein paar Bugs gehabt.
    Ich stelle gleich mal die neue Version rein. Nur noch ein Momentchen :)

    Edit:
    So, die aktuelle Version ist geladen.
    Vielleicht hat ja auch jemand 'ne Idee für die "Eieruhr" (s. Edit 3, Beitrag 1) ?

  • Brauche hilfe bei GUI

    • BugFix
    • 17. Oktober 2006 um 10:17

    Sehr grundlegend :)

    Also...
    - die GUI selbst wird definiert in: Breite, Höhe, von Links, von Oben (für Links und oben -1 bedeutet zentriert, Werte sind relativ zum Gesamtscreen)
    - Controls werden relativ zur GUI-Größe definiert
    z.B. GUICtrlCreateButton("Bezeichnung", von Links, von Oben, Breite, Höhe)
    Links und Oben von den Kanten der GUI, die als 0 betrachtet werden

    In Scite hast du einen "GUI-Builder" (ALT+g) und "Koda-Formdesigner" (ALT+m). Erstell damit verschiedene GUI mit diversen Controls und betrachte im Code die Unterschiede.

  • Back Button

    • BugFix
    • 17. Oktober 2006 um 10:02

    Warum so umständlich :)

    [autoit]

    $pfad = "I:\DV\dv3\scripte\BrowseNet"
    $string = StringInStr($pfad, "\",0, -1) ; gibt dir die Position im String
    ;$output = StringTrimLeft($pfad, $string) ; brauchst du nicht
    ;$len = StringLen($output) ; brauchst du nicht
    ;$output2 = StringTrimRight($pfad, $len+1) ; stattdessen:
    ; Ergebnis = Zeichen von links aus String $pfad, Anzahl (= Position Backslash-1)
    $output = StringLeft($pfad, $string-1)
    MsgBox(16, "Ergebnis", $output)

    [/autoit]


    oder alles in einem:

    [autoit]

    $pfad = "I:\DV\dv3\scripte\BrowseNet"
    MsgBox(16, "Ergebnis",StringLeft($pfad, StringInStr($pfad, "\",0, -1)-1))

    [/autoit]
  • Back Button

    • BugFix
    • 17. Oktober 2006 um 09:32

    Also StringInString ermittelt eine Position im String.
    Um jetzt den Teil links von dieser Position auszugeben, hast du zwei Möglichkeiten:
    Bsp.

    [autoit]

    $text = "d:\abc\123\efg.exe"
    StringInString($text, "\",0,-1) ;ergibt den Wert: 11 (11. Zeichen von links)

    [/autoit]


    Der Stringteil rechts davon ist also: Gesamtstringlänge - 11

    [autoit]

    $AnzahlZeichenReststring = StringLen($text) - StringInStr($text, "\",0,-1)

    [/autoit]


    oder gesamt:

    [autoit]

    ; Variante 1
    $teilStringLinks = StringTrimRight($text, $AnzahlZeichenReststring) ; ="d:\abc\123\"
    ; Variante 2
    $teilStringLinks = StringLeft($text, StringInStr($text, "\",0,-1)) ; ="d:\abc\123\"

    [/autoit]
  • Server Dienst

    • BugFix
    • 17. Oktober 2006 um 09:11

    Schau mal hier nach. Vielleicht hilft das weiter.

  • Back Button

    • BugFix
    • 17. Oktober 2006 um 08:56
    [autoit]

    StringInStr ( "string", "substring" [, casesense [, occurrence]] )

    [/autoit]


    casesense = 0 (default) - nicht sensitiv / 1 - sensitiv (beachtet Groß- und Kleinschreibung)
    occurrence = 1 (default) - wievielte Übereinstimmung von links / bei negativer Zahl: Übereinstimmung von rechts

  • Application Luncher

    • BugFix
    • 16. Oktober 2006 um 16:06

    Ah, verstehe.
    Es geht nicht vordergründig um die Rechteverwaltung, sondern um ein Menü, dass jeweils die für den eingelogten User erlaubten Programme auf einer Oberfläche anbietet. Also eine Art DAU-Service (Ich weiß, ich bin böse ;) ).

  • Back Button

    • BugFix
    • 16. Oktober 2006 um 16:00
    [autoit]

    StringTrimRight($text,StringInStr($text,"\",0,-2)+1)

    [/autoit]


    Sorry, aber die Syntax ist falsch. So klappt es nur für genau diesen Fall .
    Richtig ist:

    [autoit]

    StringTrimRight($text,$Anzahl_Zeichen)
    ;also
    $text = "I:\DV\dv3\scripte"
    StringTrimRight($text,StringLen($text)-StringInStr($text,"\", 0, -1))

    [/autoit]
  • Application Luncher

    • BugFix
    • 16. Oktober 2006 um 15:40

    Also ich bin nun nicht der Netzwerkexperte, wir haben bei uns nur einen Windows2000-Server mit 5 Clients. Da muß ich nur ab und an mal eingreifen.
    Ich verstehe nur nicht so recht den Sinn eines Application-Launchers. Ich habe bei mir Benutzergruppen erstellt (bei mir nur 3 Kategorien). Je nachdem in welcher Gruppe der Benutzer Mitglied ist, hat er Zugriff auf bestimmte Programme.
    Nichts anderes würde doch dein Launcher machen. Oder hab ich irgendwas falsch verstanden?

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™