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

Beiträge von Flarkus

  • Klassifikation eines "removable device"

    • Flarkus
    • 3. Juli 2009 um 15:35

    Ah sorry hatte ihn nur noch mal überflogen weil ich nen Tag vorher in den Thread geschaut hatte und derweil die API gefunden hatte. Die Funktion DriveGetType ist wahrscheinlich mit der dll erstellt.

  • Ini in Array einlesen

    • Flarkus
    • 3. Juli 2009 um 15:31

    Hallo
    Du meinst sicherlich mehrdimensionale Arrays. Bei Dir würde ein 2dimensionales reichen. Dies sieht ungefähr so aus.

    [autoit]

    Dim $array[10][2]

    [/autoit]


    Damit hast du 2 Spalten (Spalte 0 und 1) und 10 Zeilen (Zeile 0-9)weil das Array null basiert ist.
    Gruß Ralf

  • Wie ändert man die Tabitem Hintergrundfarbe?

    • Flarkus
    • 2. Juli 2009 um 19:13

    Perfekt
    danke DIr funkey. es ist genau das was ich gesucht hab.
    Gruß Ralf

  • Klassifikation eines "removable device"

    • Flarkus
    • 2. Juli 2009 um 19:08

    Hallo
    Da ich leider mit den dll-aufruf noch nicht klar komme hier nur der Text den ich gefunden hab. Vielleicht können ja die Profis damit etwas anfangen. (gefunden in einer Windows API)
    Description
    The GetDriveType function determines whether a disk drive is a removable, fixed, CD-ROM, RAM disk, or network drive.
    Declaration
    Declare Function GetDriveType Lib "kernel32" Alias "GetDriveTypeA" (ByVal nDrive As String) As Long
    Parameters
    · lpRootPathName
    Points to a null-terminated string that specifies the root directory of the disk to return information about. If lpRootPathName is NULL, the function uses the root of the current directory.


    ReturnValue
    The return value specifies the type of drive. It can be one of the following values:
    DRIVE_UNKNOWN
    The drive type cannot be determined.

    DRIVE_NO_ROOT_DIR
    The root directory does not exist.

    DRIVE_REMOVABLE
    The disk can be removed from the drive.

    DRIVE_FIXED
    The disk cannot be removed from the drive.

    DRIVE_REMOTE
    The drive is a remote (network) drive.

    DRIVE_CDROM
    The drive is a CD-ROM drive.

    DRIVE_RAMDISK
    The drive is a RAM disk.


    Aufruf in C
    Private Declare Function GetDriveType Lib "kernel32" Alias "GetDriveTypeA" (ByVal nDrive As String) As Long
    Private Sub Form_Load()
    'KPD-Team 1998
    'URL: http://www.allapi.net/
    'E-Mail: KPDTeam@Allapi.net
    'Set the graphic mode to persistent
    Me.AutoRedraw = True
    'Get information about the C:\
    Select Case GetDriveType("C:\")
    Case 2
    Me.Print "Removable"
    Case 3
    Me.Print "Drive Fixed"
    Case Is = 4
    Me.Print "Remote"
    Case Is = 5
    Me.Print "Cd-Rom"
    Case Is = 6
    Me.Print "Ram disk"
    Case Else
    Me.Print "Unrecognized"
    End Select
    End Sub

    Gruß Ralf

  • Wie ändert man die Tabitem Hintergrundfarbe?

    • Flarkus
    • 2. Juli 2009 um 07:44

    Danke Dir Elodie
    Das geht zwar in die richtige Richtung nur wollte ich den ganzen Tab einfärben und nicht nur den Karteireiter oben. Werde bei Gelegenheit mir die Funktion mal genauer ansehen.
    Bis dann
    Gruß Ralf

  • Wie ändert man die Tabitem Hintergrundfarbe?

    • Flarkus
    • 1. Juli 2009 um 14:54

    Hallo

    habe ka Ahnung wie man die Hintergrundfarbe eines TabItems ändert. Es geht leider nicht mit der Funktion GUICtrlSetBkColor oder GUICtrlSetDefBkColor. Vielleicht kann mir jemand einen Tip geben!

    Gruß Ralf

  • Zahlenratespiel Rangliste integrieren

    • Flarkus
    • 24. Juni 2009 um 19:53

    Hallo
    zum Start des Programms liest Du die Ini mit inireadsection in ein 2 dimensionales Array ein. Danach kannst du das Spiel laufen lassen. Wenn die Punktezahl feststeht liest du mittels For Schleife die Punkte aus und vergleichst die Größe. Ist sie Größer mußt Du den Alten Wert in einer Zwischenvariabel mit Schlüßel zwischenspeichern und den neuen Schlüßel mit Wert eintragen. Danach das gleiche mit dem nächsten Schlüßel und Wert. Alternativ das Array mit REDIM vergrößern und anschließend mit _Arraysort neu sortieren und die IndexPosition nach dem sortieren ist dann der Rang.
    Gruß Ralf

  • Jüngste Datei finden unterordner einbeziehen.

    • Flarkus
    • 20. Juni 2009 um 01:00

    Hallo

    Ich hatte mir mal die Funktion Filefind vorgenommen und geändert. Allerdings müßtest Du noch die Funktion auf Herz und Nieren Überprüfen und die SetError Funktion noch richtig einarbeiten.

    [autoit]

    Func _Dateiliste( $sPath, $sFilter)

    Local $arrFilter, $arrPfad[2], $i, $x, $z, $hSearch, $sFile, $asFileList[1][2]

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

    ;Überprüfung der Parameter
    If Not FileExists($sPath) Then MsgBox( 0, "Fehler", "Ordner " & $spath & " existiert nicht! ");ob das Verzeichnis existiert
    If (StringInStr($sFilter, "\")) Or (StringInStr($sFilter, "/")) Or (StringInStr($sFilter, ":")) Or (StringInStr($sFilter, ">")) Or (StringInStr($sFilter, "<")) Or _
    (StringInStr($sFilter, "|")) Or (StringStripWS($sFilter, 8) = "") Then MsgBox( 0, "Fehler", "Fehler bei der Übergabe der Suchkriterien durch ein ungültiges Zeichen!") ;des Suchfilters auf ungültige Parameter
    If (StringMid($sPath, StringLen($sPath), 1) = "\") Then $sPath = StringTrimRight($sPath, 1) ;Wenn letztes Zeichen ein / ist wird es gelöscht benötigt für Win98 für x:\ root dir

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

    $arrFilter = StringSplit($sFilter, ';', 2)
    $arrPfad[0] = 1
    $arrPfad[1] = @ScriptDir & $sPath
    $z = 1 ;Zählvariabel für Ordnerarray
    $i = 1 ;Zählvariabel für Dateiarray

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

    Do
    ;Ordnersuche
    $hSearch = FileFindFirstFile($arrPfad[$x] & "\*")
    If $hSearch = -1 Then ;Return $asFileList;SetError(4, 4, "")
    Else
    Do
    $sFile = FileFindNextFile($hSearch)
    If $sFile = "" Then
    Else
    If StringInStr(FileGetAttrib($arrPfad[$x] & "\" & $sFile), "D") <> 0 Then
    $z += 1
    $arrPfad[0] = $z
    if UBound ($arrPfad) = $arrPfad[0] Then ReDim $arrPfad[UBound($arrPfad) * 2]
    $arrPfad[$z] = $arrPfad[$x] & "\" & $sFile
    EndIf
    EndIf
    Until $sFile = ""
    EndIf
    FileClose($hSearch)

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

    ;Dateisuche
    For $element In $arrFilter
    $hSearch = FileFindFirstFile($arrPfad[$x] & "\" & $element)
    If $hSearch = -1 Then
    Else
    Do
    $sFile = FileFindNextFile($hSearch)
    If $sFile = "" Then
    Else
    $asFileList[0][0] += 1
    If UBound($asFileList) <= $asFileList[0][0] Then ReDim $asFileList[UBound($asFileList) + 10][2]
    $asFileList[$i][0] = $sFile
    $asFileList[$i][1] = $arrPfad[$x]
    $i += 1
    EndIf
    Until $sFile = ""
    EndIf
    Next
    FileClose($hSearch)
    $x += 1
    Until $x = UBound($arrPfad) Or $arrPfad[$x] = ""
    ReDim $arrPfad[$arrPfad[0] +1]
    ReDim $asFileList[$asFileList[0][0] + 1] [2]
    ;~ _ArraySort($asFileList, 0)
    Return $asFileList
    EndFunc

    [/autoit]

    Vielleicht kannst Du damit was anfangen.

    Gruß Ralf

  • Listboxeintrag nach Mehrfachauswahl von OpenFile

    • Flarkus
    • 20. Juni 2009 um 00:27

    Hallo

    Am besten Du erstellst 2 Array's. Ins erste liest Du die Dateien aus dem OpenFile ein und ins 2. mittels StringTrim nur die Dateinamen, die Du im ListView anzeigen kannst. Da die Dateien den selben Index haben, kannst Du darüber auf die Dateipfade zugreifen.

    Gruß Ralf

    P.s.: habe mir gerade den Rückgabewert des FileOpenDialogs angesehen.
    Gibt den kompletten Pfad der ausgewählten Datei zurück. Rückgabe mehrerer Dateien wie folgt: "Verzeichnis|Datei1|Datei2|..."
    Um im Listview nur die Dateien anzuzeigen brauchst Du nur mittels StringSplit die Rückgabe in ein Array einlesen und im Listview alle bis aufs erste eintragen.

  • Rechte setzen auf Ordner

    • Flarkus
    • 8. Juni 2009 um 10:54

    Hallo
    Besuche mal bitte folgenden Thread: [ offen ] Ordner erstellen mit NTFS Berechtigung

    Gruß Ralf

  • Steuerelemente verrutschen...

    • Flarkus
    • 8. Juni 2009 um 09:14

    Hallo Elodie
    habe mich jetzt mal um die Formel gekümmert.
    Schrifthöhe in Pixel = Schriftgröße in Punkten* DPI \ 72
    Woraus folgt
    Schriftgröße in Punkten = Schrifthöhe in Pixel* 72 \ DPI


    $DPI = Regread("HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics", "AppliedDPI")
    $Schrifthoehe = 14.666666 (bei einer Fonthoehe von 11 und einer Auflösung von 72 DPI)
    $Schriftgroesse = $Schrifthoehe* 72 / $DPI

    GUISetFont($Schriftgroesse, "", "", "Arial",$gui)
    Da Windows die $Schriftgroesse rundet müßtest du die Formel bei verschiedenen DPI-Einstellungen überprüfen. Bei 96 oder 120 DPI scheint es jedenfalls zu funktionieren.

    Gruß Ralf

  • Steuerelemente verrutschen...

    • Flarkus
    • 7. Juni 2009 um 23:28

    Hallo Elodie
    Aufgrund der Hinweise mit der DPI-Einstellung konnte ich Dein Problem nachvollziehen. Unter Regread("HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics","AppliesDPI") kannst Du die aktuelle DPI-Einstellung des Monitors auslesen. Je höher der Wert ist, desto größer dann auch die dargestellte Schrift.
    Auf der Homepage http://www.eggheadcafe.com/conversation.aspx?messageid=32357478&threadid=32357456 findest Du einen Thread der das gleiche Problem unter VB behandelt. Ich hoffe der Link hilft Dir weiter.

    Gruß Ralf

  • SciLexer.au3

    • Flarkus
    • 5. Juni 2009 um 09:11

    Hallo
    Bei mir stürzte das Programm kurz nach dem Start mit einer Fehlermeldung ab. Variable nicht deklariert bevor sie benutzt wird. Nachdem ich
    #include WindowsConstants.au3
    eingfügt hatte startete das Programm ganz normal.

    Gruß Ralf

  • Steuerelemente verrutschen...

    • Flarkus
    • 5. Juni 2009 um 09:01

    Hallo
    Es könnte ev. daran liegen das Du $GUI_DOCKALL verwendet hast. Wenn Du das Programm auf beiden Pc's startest und mit dem Autoit Windo Info Tool die Werte der Labels und Buttons überprüfst, siehst du unter Control welche Werte die Labels zugewiesen bekommen haben. Wenn es nicht weiterhilft dann poste mal den Code für das Fenster und die Labels dann kann ich mal einige Werte durchprobieren.
    Gruß Ralf

  • DirCopy

    • Flarkus
    • 3. Juni 2009 um 20:57

    Hallo
    wenn in der Combobox der komplette Pfad gespeichert ist brauchst du nur noch das selektierte Verzeichnis mit GUICtrlRead ( controlID ) auslesen.
    Gruß Ralf

  • Cod4 Server Starten

    • Flarkus
    • 2. Juni 2009 um 20:36

    Hallo
    Shellexecute funktionierte, nur das Programm wurde unvollständig geladen. Habe heute auf Arbeit Zeit zum grübeln gehabt und jetzt weiß ich auch wozu "workingdir" ist. Nach dem ich Run(Pfad\cod4.exe, Pfad) eingegeben habe funktioniert der Aufruf. Auch mit Shellexecute und "workingdir" läßt es sich dann einwandfrei starten. Konnte ja nicht ahnen das "workingdir" so wichtig ist.
    Gruß Ralf

  • Cod4 Server Starten

    • Flarkus
    • 1. Juni 2009 um 21:10

    Danke für den fullscreen Befehl den hatte ich noch nicht.
    falls jemand interesse an den Prog hat, habe erst angefangen es zu erstellen und die Befehle müßen auch noch getestet werden. Für Hilfe und Anregungen wäre ich jedenfalls dankbar. Wenn Interesse besteht werde ich mal den Code soweit er existiert hier posten.
    mfg Ralf

  • Cod4 Server Starten

    • Flarkus
    • 1. Juni 2009 um 08:46

    Danke für die Antwort
    mit Shellexecute ging es leider nicht.
    Nach dem ich da tagelang rumprobiert habe ist mir heute morgen eingefallen das Autoit ja eigentlich zur Steuerung von Programmen da ist. Jetzt habe ich anstatt über Run oder @comspec das Programm zu starten einfach über send die Befehle "von Hand" (in Windows Ausführen) eingefügt! Was soll ich sagen es funktioniert.
    Manchmal sieht man halt den Wald vor lauter Bäumen nicht.
    Gruß Ralf

  • Cod4 Server Starten

    • Flarkus
    • 31. Mai 2009 um 23:10

    Hallo
    habe angefangen ein Skript zu erstellen mit dem man einfacher (ohne die Call Of Duty4 Server Befehle zu kennen) die Einstellungen für einen Server ändern kann. Sprich Map-Auswahl, Spielmodi, Waffenauswahl e.c.. Der Cod4 Server startet zwar mit dem Aufruf über Run oder aus dem Dos-Fenster heraus, jedoch bricht der Start mit einer Fehlermeldung ab. (Win_improper_quit_body) Der selbe Fehler tritt auch mit VisualBasic auf. Nur wenn ich den Serveraufruf von Hand eingebe (Windows Shell oder Dos-Fenster) startet der Server korrekt. Vielleicht kann mir jemand helfen.
    mfg Ralf

  • Func _FileListToArray geändert

    • Flarkus
    • 19. April 2009 um 20:37

    Hallo
    habe die Function _FileListToArray erweitert, um mehrere Suchkreterien gleichzeitig übergeben zu können und das zurückgegebene Array sortieren zu lassen. Nun hätte ich gern einige Meinungen dazu.


    [autoit]


    #Include
    #Include

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

    Dim $FileList

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

    Global $array
    Func _Dateiliste($sPath, $sFilter = "*", $iFlag = 0, $arrsort = 2)
    ;Variabeln
    Local $hSearch, $sFile, $asFileList[1], $x = 0, $array

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

    ;Überprüfung ob das Verzeichnis existiert
    If Not FileExists($sPath) Then Return SetError(1, 1, "")

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

    ;Überprüfung des Suchfilters auf üngültige Parameter
    If (StringInStr($sFilter, "\")) Or (StringInStr($sFilter, "/")) Or (StringInStr($sFilter, ":")) Or (StringInStr($sFilter, ">")) Or (StringInStr($sFilter, "<")) Or (StringInStr($sFilter, "|")) Or (StringStripWS($sFilter, 8) = "") Then Return SetError(2, 2, "")

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

    ;Überprüfung ob auch Ordner oder nur nach Dateien gesucht werden soll
    If Not ($iFlag = 0 Or $iFlag = 1 Or $iFlag = 2) Then Return SetError(3, 3, "")

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

    ;Wenn letztes Zeichen ein / ist wird es gelöscht
    If (StringMid($sPath, StringLen($sPath), 1) = "\") Then $sPath = StringTrimRight($sPath, 1) ; needed for Win98 for x:\ root dir

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

    $array = StringSplit($sFilter, ';', 2)

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

    For $element In $array
    ;Dateisuche
    $hSearch = FileFindFirstFile($sPath & "\" & $array[$x])
    If $hSearch = -1 Then Return SetError(4, 4, "")

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

    Do
    $sFile = FileFindNextFile($hSearch)
    If $sFile = "" Then
    Else
    If $iFlag = 1 And StringInStr(FileGetAttrib($sPath & "\" & $array[$x]), "D") <> 0 Then ContinueLoop
    If $iFlag = 2 And StringInStr(FileGetAttrib($sPath & "\" & $array[$x]), "D") = 0 Then ContinueLoop
    $asFileList[0] += 1
    If UBound($asFileList) <= $asFileList[0] Then ReDim $asFileList[UBound($asFileList) * 2]
    $asFileList[$asFileList[0]] = $sFile
    EndIf
    Until $sFile = ""

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

    $x = $x + 1
    Next
    FileClose($hSearch)
    ReDim $asFileList[$asFileList[0] + 1] ; Trim unused slots
    If $arrsort <> 2 Then _ArraySort($asFileList, $arrsort)
    Return $asFileList

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

    EndFunc
    $FileList = _Dateiliste("\Ordner", "*.txt;*.bmp", 0, 2) ; 0=aufsteigend 1=absteigend 2=nach Fundreihenfolge sortiert

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

    _ArrayDisplay($FileList, "$FileList ")

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


    Gruß Ralf

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™