Italia
Fonte/ Codesnippets

Laufwerkserkennung Verzeichniswechsel

 

KompilierenMarkierenSeparieren
Source wurde am 15.07.2007 aus der MMJ-Quellcodesammlung (Dietmar Horn) in die Babyklappe auf XProfan.Com abgelegt:
Laufwerkserkennung und Verzeichniswechsel
selbstgebauter Verzeichnis-, Laufwerkswechsel
© Hans-Jürgen Trog, Berlin Mai 1998 (e-mail: sumatra@berlin.snafu.de)
Dieser Quelltext darf beliebig verwendet werden.
manche Routinen stammen auch von Tips aus dem Internet!
Ich bitte, weitere Verbesserungen an mich zu schicken
DANKE
lw$  =  Angabe des gewählten Laufwerks, z.B. c:
wahl$ = das ausgewählte Verzeichnis, z.B.   Kopie

PROC LW_INFO

    allgemeine Deklarationen
    declare _ende%
    declare _dlg%
    declare verz%,jetzt%
    declare ende%,wahl$
    declare l%,a%,zeile$, c%,pfad$,bild$
    declare edit%,endung$,endung%
    let bild$=
    zentrieren des Dialogfensters
    DEF @PosX(1) @Int(@Div(@Sub(%MaxX,@%(1)),2))
    DEF @PosY(1) @Int(@Div(@Sub(%MaxY,@%(1)),2))
    Laufwerke ermitteln
    def HoleLWKennung(2) ! KERNEL32.DLL,GetLogicalDriveStringsA
    declare MaxZeichen%         Max. Anzahl der Zeichen der Bereichsvariablen
    declare LWKennung#          Nimmt die Laufwerksbuchstaben auf
    declare LWInstall&          Anzahl der ermittelten Zeichen einschl. Null Byte
    Declare i%
    Let MaxZeichen%=104                26*4 Zeichen für LWKennung
    Dim LWkennung#,MaxZeichen%         Bereichsvariable dimensionieren
    declare LwAuswahl%
    declare lw$
    declare zahl%				zum Vergleich für Markierung Listeneintrag

    Proc  Laufwerkskennung

        Let LWInstall&=HoleLWKennung(MaxZeichen%,LWKennung#)
        Let I%=0
        let zahl%=-1

        whileNot equ(i%,LWInstall&)

            @AddChoice(LWAuswahl%,String$(Lwkennung#,i%))
            let pfad$=@Lower$(pfad$)			weil Pfad in Großbuchstaben ist
            inc zahl%

            if @equ$(String$(Lwkennung#,i%),pfad$)

                @SendMessage(LWAuswahl%,$014E,zahl%,0)		auf akt. Laufwerk setzen

            endif

            let I%=add(i%,4)  die nächste Adresse setzen

        wend

    endproc

    Proc Einlesen

        clearlist

        if @neq$(endung$,*.*)

            Addfiles *.*
            MoveListToList(verz%)

        endif

        let c%=5
        let a%=@GetCount(verz%)

        WHILE @GT(c%,0)

            let zeile$=@GetString$(verz%,a%)

            if @neq$(@left$(zeile$,1),[)

                @DeleteString(verz%,a%)

            endif

            if @equ$(@left$(zeile$,3),[.])

                @DeleteString(verz%,a%)

            endif

            dec a%

            if @lt(a%,0)

                let c%=0
                clearlist
                ab hier können beliebige Zusammenstellungen gebaut werden,
                die aber in DATEIENDUNGEN eingetragen werden müssen

                if @equ$(endung$, Bilder)

                    Addfiles *.BMP
                    Addfiles *.JPG
                    Addfiles *.GIF
                    Addfiles *.TGA
                    Addfiles *.PCX

                elseif @equ$(endung$, Profandateien)

                    Addfiles *.PRF
                    Addfiles *.PRC
                    Addfiles *.INC
                    Addfiles *.PRV

                elseif @equ$(endung$, Ausführbare)

                    Addfiles *.EXE
                    Addfiles *.COM
                    Addfiles *.BAT

                elseif @equ$(endung$, Texte)

                    Addfiles *.DOC
                    Addfiles *.DOK
                    Addfiles *.TXT
                    Addfiles *.BAK
                    Addfiles *.ASC

                else

                    Addfiles endung$

                endif

                MoveListToList(verz%)

            endif

        WEND

        Let Pfad$=@GetDir$(@)
        let pfad$=@upper$(pfad$)
        SetText jetzt%,pfad$

    endproc

    PROC DATEIENDUNGEN

        einlesen der verschiedenen Dateiendungen in die Auswahl
        Um die Textformen am Anfang zu haben, muß ein Leerzeichen
        vor den Text gesetzt werden
        in EINLESEN dann die Endungsformen einbauen
        @AddChoice(edit%, - ohne Dateien)   Schreibweise nicht ändern = 1. Eintrag
        @AddChoice(edit%,*.*)
        @AddChoice(edit%, Bilder)
        @AddChoice(edit%, Ausführbare)
        @AddChoice(edit%, Texte)
        @AddChoice(edit%, Profandateien)
        @AddChoice(edit%,*.EXE)
        @AddChoice(edit%,*.COM)
        @AddChoice(edit%,*.BAT)
        @AddChoice(edit%,*.SYS)
        @AddChoice(edit%,*.INI)
        @AddChoice(edit%,*.TXT)
        @AddChoice(edit%,*.DOC)
        @AddChoice(edit%,*.XLS)
        @AddChoice(edit%,*.MDB)
        @AddChoice(edit%,*.BAK)
        @AddChoice(edit%,*.PRF)
        @AddChoice(edit%,*.PRC)
        @AddChoice(edit%,*.INC)

    ENDPROC

    proc dialog

        SetDialogFont 1
        UseFont ARIAL,14,0,1,0,0
        let _dlg%=@createdialog(%Hwnd,Auswahl,@PosX(195),@PosY(370),230,370)
        let verz%=@createsortedlistbox(_dlg%,,15,30,193,155)
        let ende%=@createbutton(_dlg%,Ende,56,310,120,24)
        let jetzt%= @createtext(_dlg%,,15,10,400,16)
        Let edit%=@CreateChoiceBox(_dlg%,,100,210,110,100)
        Let LWAuswahl%=@CreateChoiceBox(_dlg%,,15,210,75,100)
        @CreateText(_dlg%, Laufwerk,15,190,80,20)
        @CreateText(_dlg%, Dateiendung,100,190,80,20)
        Let Pfad$=@GetDir$(@)
        Let Pfad$=@left$(pfad$,3)
        chdir pfad$
        LAUFWERKSKENNUNG
        EINLESEN
        DATEIENDUNGEN
        @SendMessage(edit%,$014E,0,0)		auf 1. Dateiendung setzen
        let _ende% = 0

        whilenot _ende%

            let wahl$=@GetString$(verz%,@GetCursel(verz%))
            let l%=@len(wahl$)
            let l%=@sub(l%,2)
            let wahl$=@mid$(wahl$,2,l%)
            chdir wahl$

            WHILE @GT(@GetCount(verz%),0)

                @DeleteString(verz%,0)

            WEND

            EINLESEN
            waitinput

            if @equ(%key,2)

                let _ende% = 1

            elseif @getfocus(LWAuswahl%)

                let lw$=@GetText$(LWAuswahl%)
                chdir lw$
                let endung$=@GetText$(edit%)
                EINLESEN

            elseif @getfocus(edit%)

                let endung$=@GetText$(edit%)
                EINLESEN

            elseif @getfocus(ende%)

                let _ende% = 1

            endif

        wend

        @destroywindow(_dlg%)

    endproc

    DIALOG
    die folgenden Zeilen bis ENDIF können entfallen.
    sie dienen nur der Anzeige für die Abfragemöglichkeiten

    if @equ$(lw$,)

        let lw$=pfad$
        @messagebox (lw$,gewähltes Verzeichnis,64)

    else

        @messagebox (@add$(lw$,wahl$),gewähltes Verzeichnis,64)

    endif

ENDPROC

Aufruf der Prozedur
WindowStyle $F0
w 0,0-0,0
LW_INFO
end
 
16.07.2007  
 



Zum Quelltext


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

1.137 Views

Untitledvor 0 min.
Rainer Hoefs24.06.2023
Thomas Zielinski07.12.2021
Torben Nissen15.02.2019
AndreasS13.01.2019
Di più...

Themeninformationen

Dieses Thema hat 1 subscriber:

unbekannt (1x)


Admins  |  AGB  |  Applications  |  Autori  |  Chat  |  Informativa sulla privacy  |  Download  |  Entrance  |  Aiuto  |  Merchantportal  |  Impronta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Giochi  |  Cerca  |  Support

Ein Projekt aller XProfaner, die es gibt!


Il mio XProfan
Private Notizie
Eigenes Ablageforum
Argomenti-Merkliste
Eigene Beiträge
Eigene Argomenti
Zwischenablage
Annullare
 Deutsch English Français Español Italia
Traduzioni

Informativa sulla privacy


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie