Avatar billede infojens Nybegynder
26. februar 2001 - 21:44 Der er 15 kommentarer og
1 løsning

Progress Bar

Er der nogle som har et eksempel på hvordan man kopiere en fil med progress bar fx:

filecopy \"C:\\test.mdb\", \"D:\\\"


Avatar billede sjh Nybegynder
26. februar 2001 - 23:47 #1
Kun den windows bruger når du kopier filer eller flytter filer??
Avatar billede infojens Nybegynder
26. februar 2001 - 23:50 #2
Ja...
Avatar billede sjh Nybegynder
26. februar 2001 - 23:51 #3
Skal lige finde den :-)
Avatar billede infojens Nybegynder
26. februar 2001 - 23:55 #4
Jeg har kikket i PSC(planet-source-code) hvis det var det du tænkte på ...  ;0)
Avatar billede sjh Nybegynder
27. februar 2001 - 00:00 #5
Nej jeg har den her:


\'-------------------------------- Module1 --------------------------------
Public Declare Function SHFileOperation Lib _
\"shell32.dll\" Alias \"SHFileOperationA\" _
(lpFileOp As Any) As Long

Public Declare Sub SHFreeNameMappings Lib _
\"shell32.dll\" (ByVal hNameMappings As Long)

Public Declare Sub CopyMemory Lib \"KERNEL32\" _
Alias \"RtlMoveMemory\" (hpvDest As Any, hpvSource _
As Any, ByVal cbCopy As Long)

Public Type SHFILEOPSTRUCT
hwnd As Long
wFunc As FO_Functions
pFrom As String
pTo As String
fFlags As FOF_Flags
fAnyOperationsAborted As Long
hNameMappings As Long
lpszProgressTitle As String
End Type

Public Enum FO_Functions
FO_MOVE = &H1
FO_COPY = &H2
FO_DELETE = &H3
FO_RENAME = &H4
End Enum

Public Enum FOF_Flags
FOF_MULTIDESTFILES = &H1
FOF_CONFIRMMOUSE = &H2
FOF_SILENT = &H4
FOF_RENAMEONCOLLISION = &H8
FOF_NOCONFIRMATION = &H10
FOF_WANTMAPPINGHANDLE = &H20
FOF_ALLOWUNDO = &H40
FOF_FILESONLY = &H80
FOF_SIMPLEPROGRESS = &H100
FOF_NOCONFIRMMKDIR = &H200
FOF_NOERRORUI = &H400
FOF_NOCOPYSECURITYATTRIBS = &H800
FOF_NORECURSION = &H1000
FOF_NO_CONNECTED_ELEMENTS = &H2000
FOF_WANTNUKEWARNING = &H4000
End Enum

Public Type SHNAMEMAPPING
pszOldPath As String
pszNewPath As String
cchOldPath As Long
cchNewPath As Long
End Type

Public Function SHFileOP(ByRef lpFileOp As SHFILEOPSTRUCT) As Long
Dim result As Long
Dim lenFileop As Long
Dim foBuf() As Byte

lenFileop = LenB(lpFileOp)
ReDim foBuf(1 To lenFileop)

Call CopyMemory(foBuf(1), lpFileOp, lenFileop)

Call CopyMemory(foBuf(19), foBuf(21), 12)
result = SHFileOperation(foBuf(1))

SHFileOP = result
End Function


Public Function sCopy(sFile1, sFile2) \'Kopier filer eller mapper
Dim lret As Long
Dim fileop As SHFILEOPSTRUCT

With fileop
.hwnd = 0
.wFunc = FO_COPY
.pFrom = sFile1
.pTo = sFile2

.lpszProgressTitle = \"Fra: \" & sFile1 & \" Til: \" & sFile2

.fFlags = FOF_SIMPLEPROGRESS Or FOF_RENAMEONCOLLISION
End With

lret = SHFileOP(fileop)

If result <> 0 Then
MsgBox Err.LastDllError
Else
If fileop.fAnyOperationsAborted <> 0 Then
MsgBox \"Operation Failed\"
End If
End If
End Function

Public Function sDelete(sFile) \'Slette filer eller mapper
Dim lret As Long
Dim fileop As SHFILEOPSTRUCT

With fileop
.hwnd = 0
.wFunc = FO_DELETE
.pFrom = sFile
.lpszProgressTitle = sFile1
.fFlags = FOF_SIMPLEPROGRESS Or FOF_ALLOWUNDO
End With

lret = SHFileOP(fileop)

If result <> 0 Then
MsgBox Err.LastDllError
Else
If fileop.fAnyOperationsAborted <> 0 Then
MsgBox \"Operation Failed\"
End If
End If
End Function

Public Function sRename(sFile1, sFile2) \'Omdøbe filer eller mapper
Dim lret As Long
Dim fileop As SHFILEOPSTRUCT

With fileop
.hwnd = 0
.wFunc = FO_RENAME
.pFrom = sFile1
.pTo = sFile2
.lpszProgressTitle = \"Fra: \" & sFile1 & \" Til: \" & sFile2
.fFlags = FOF_SIMPLEPROGRESS Or FOF_ALLOWUNDO
End With

lret = SHFileOP(fileop)

If result <> 0 Then
MsgBox Err.LastDllError
Else
If fileop.fAnyOperationsAborted <> 0 Then
MsgBox \"Operation Failed\"
End If
End If
End Function

Public Function sMove(sFile1, sFile2) \'Flytte filer eller mapper
Dim lret As Long
Dim fileop As SHFILEOPSTRUCT

With fileop
.hwnd = 0
.wFunc = FO_MOVE
.pFrom = sFile1
.pTo = sFile2
.lpszProgressTitle = \"Fra: \" & sFile1 & \" Til: \" & sFile2
.fFlags = FOF_SIMPLEPROGRESS Or FOF_ALLOWUNDO
End With

lret = SHFileOP(fileop)

If result <> 0 Then
MsgBox Err.LastDllError
Else
If fileop.fAnyOperationsAborted <> 0 Then
MsgBox \"Operation Failed\"
End If
End If
End Function
\'-------------------------------- Module1 --------------------------------


\'--------------------------------- Form1 ---------------------------------

Private Sub Command1_Click()
\'sMove \"C:\\Temp\\TestFile.txt\", \"C:\\\"
sMove \"C:\\TestMappe\", \"C:\\Temp\"
End Sub

Private Sub Command3_Click()
\'sCopy \"D:\\TestFile.txt\", \"C:\\\"
sCopy \"C:\\TestMappe\", \"C:\\Temp\"
End Sub

Private Sub Command4_Click()
\'sDelete \"C:\\TestFile.txt\"
sDelete \"C:\\TestMappe\"
End Sub

Private Sub Command5_Click()
\'sRename \"C:\\Ejay_se.zip\", \"C:\\Ejay_se.zip_\"
sRename \"C:\\TestMappe\", \"C:\\TestMappe2\"
End Sub

\'-------------------------- hvis du skal kopier flere filer --------------------------
\'sCopy \"D:\\ser.htm\" & vbNullChar & \"D:\\test.htm\", \"C:\\\"
\'-------------------------- hvis du skal kopier flere filer --------------------------

\'--------------------------------- Form1 ---------------------------------
Avatar billede infojens Nybegynder
27. februar 2001 - 00:08 #6

Jeg haved tænke mig at lave et program som skulle kopiere en hel CD ind på H-disk...

Kan man ikke bruge *.* ????

Eller hvordan gør man så....??

Jeg kan godt skrue point op til 60 hvis det passer bedere til spørsmålet...
Avatar billede sjh Nybegynder
27. februar 2001 - 00:15 #7
Brug den sådan F:\\ er din CD-ROM
sCopy \"F:\\*.*\", \"C:\\Temp\\Test\"
Avatar billede infojens Nybegynder
27. februar 2001 - 00:17 #8

Prøver på liv og løs....

Hvad skal min Bar hedde ???

Avatar billede sjh Nybegynder
27. februar 2001 - 00:20 #9
(Hvad skal min Bar hedde) hvad mener du????????
Avatar billede infojens Nybegynder
27. februar 2001 - 00:24 #10

min progress bar ....

Når man sætter den ind på formen hedder den

Navn :  ProgressBar1


Avatar billede sjh Nybegynder
27. februar 2001 - 00:28 #11
du skal ikke bruge nogle ProgressBar1
windows har selv en.
som jeg skræv: Kun den windows bruger når du kopier filer eller flytter filer
Avatar billede infojens Nybegynder
27. februar 2001 - 00:35 #12
Nååå så det var derfor du spurte sådan

Jeg var helt sikker på at man selv skulle komme en ind.......der følger jo en med i VB og det var den som jeg troede du ville bruge....



Avatar billede sjh Nybegynder
27. februar 2001 - 00:43 #13
Den bruger du jo ikke når du kopier filer eller flytter filer.

Den kode har jeg ikke :-)

så kan du godt skrue point op til 250 eller mere. ;)
Avatar billede infojens Nybegynder
27. februar 2001 - 00:48 #14

Din virker...;0)

Venter lige og ser om andre kan den anden metode....

Jeg kan jo lige hæve og dele ud så du for dine 30 point...for det ser da meget godt ud det du har lavet....;0)...
Avatar billede sjh Nybegynder
27. februar 2001 - 00:49 #15
Mange Tak..
Avatar billede razersedge Nybegynder
22. april 2001 - 22:42 #16
nu i snakker om progress bars, jeg kan ikke finde mit ikon for progress baren, sltså jeg ANER ikke hvordan jeg \"adder\" en progress bar til min form.

Ved i hvor jeg kan finde den/enable den??
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester