Español
Fuente/ Codesnippets

Laufwerkserkennung Verzeichniswechsel

 

KompilierenMarcaSeparación
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


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

1.144 Views

Untitledvor 0 min.
Rainer Hoefs24.06.2023
Thomas Zielinski07.12.2021
Torben Nissen15.02.2019
AndreasS13.01.2019
Más...

Themeninformationen

Dieses Thema ha 1 subscriber:

unbekannt (1x)


Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie