باز هم سلام دوستان گل
من در برنامه ام چند فایل رو که در resource قرار دادم روی هارد کپی می کنم .
چطور میتونم روند و زمان کپی شدن رو توسط یک ProgressBar نمایش بدم ؟؟؟
شدیدا ظروری
باز هم سلام دوستان گل
من در برنامه ام چند فایل رو که در resource قرار دادم روی هارد کپی می کنم .
چطور میتونم روند و زمان کپی شدن رو توسط یک ProgressBar نمایش بدم ؟؟؟
شدیدا ظروری
فكر كنم بايد خصوصيت مكس ProgressBar رو برابر اندازه فايل مورد نظر بذاري !
'This program needs a Common Dialog Box, named CDBox.
' (To add the Common Dialog Box to your tools menu, go to Project->Components (or press CTRL-T)
' and select Microsoft Common Dialog control)
Private Type SHFILEOPSTRUCT
hWnd As Long
wFunc As Long
pFrom As String
pTo As String
fFlags As Integer
fAborted As Boolean
hNameMaps As Long
sProgress As String
End Type
Private Const FO_DELETE = &H3
Private Const FOF_ALLOWUNDO = &H40
Private Declare Function SHFileOperation Lib "shell32.dll" Alias "SHFileOperationA" (lpFileOp As SHFILEOPSTRUCT) As Long
Private Sub Form_Load()
'KPD-Team 1998
'URL: http://www.allapi.net/
'E-Mail: KPDTeam@Allapi.net
Dim SHFileOp As SHFILEOPSTRUCT
'Set the dialog's title
CDBox.DialogTitle = "Select a file to delete ..."
'Set the dialog's filter
CDBox.Filter = "All Files (*.*)|*.*"
'Show the 'Open File' dialog
CDBox.ShowOpen
With SHFileOp
'Delete the file
.wFunc = FO_DELETE
'Select the file
.pFrom = CDBox.filename
'Allow 'move to recycle bn'
.fFlags = FOF_ALLOWUNDO
End With
'perform file operation
SHFileOperation SHFileOp
MsgBox "The file '" + CDBox.filename + "' has been moved to your Recycling Bin !", vbInformation + vbOKOnly, App.Title
End Sub
این یک نمونه
ا اینکه فقط فایل رو پاک می کنه و روندی نشون نمی ده
majjjj عزیز میشه بگی این چیه ؟؟؟؟؟؟؟؟؟؟؟
miniator جان این راهش نیست .
لطفا کمممممممممممممممک کنید
دوستان گل واقعا راهی نداره ؟؟؟
ببخشید فکر کردم میخواهید یک فایل رو از روی هارد به یک جای دیگه روی هارد کپی کنید
برای این کاری که میخواهید انجام بدین اینجوری عمل کنید
ProgressBar رو تا موقعی که حجم فایل شما با حجم فایل کپی شده روی هارد یکی نشده توسط یک تایمر مقدار دهی کنید
Private Const OPEN_EXISTING = 3
Private Type FILETIME
dwLowDateTime As Long
dwHighDateTime As Long
End Type
Private Type BY_HANDLE_FILE_INFORMATION
dwFileAttributes As Long
ftCreationTime As FILETIME
ftLastAccessTime As FILETIME
ftLastWriteTime As FILETIME
dwVolumeSerialNumber As Long
nFileSizeHigh As Long
nFileSizeLow As Long
nNumberOfLinks As Long
nFileIndexHigh As Long
nFileIndexLow As Long
End Type
Private Declare Function GetFileInformationByHandle Lib "kernel32" (ByVal hFile As Long, lpFileInformation As BY_HANDLE_FILE_INFORMATION) As Long
Private Declare Function CreateFile Lib "kernel32" Alias "CreateFileA" (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, lpSecurityAttributes As Any, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Private Sub Form_Load()
'KPD-Team 2001
'URL: http://www.allapi.net/
'E-Mail: KPDTeam@allapi.net
Dim hFile As Long, FileInfo As BY_HANDLE_FILE_INFORMATION
'create a handle to the file 'c:\autoexec.bat'
hFile = CreateFile("c:\autoexec.bat", 0, 0, ByVal 0&, OPEN_EXISTING, 0, ByVal 0&)
'retrieve the file information
GetFileInformationByHandle hFile, FileInfo
'close the handle
CloseHandle hFile
'show the result
MsgBox "File size: " + CStr(FileInfo.nFileSizeLow), vbInformation
End Sub
این نمونه ای برای بدست اوردن حجم فایلتون هست ممکنه راه حل بهتری هم باشه ولی من چیز بهتری به نظرم نمیرسه
majjjj جان باید راه مطمئن تر و بهتر مثل توابع api وجود داشته باشهProgressBar رو تا موقعی که حجم فایل شما با حجم فایل کپی شده روی هارد یکی نشده توسط یک تایمر مقدار دهی کنید
بلاخره اینستال شیلد ، ستاپ فکتوری ، وایز اینستالر و ... از یه راهی استفاده می کنند
کارم بدجوری گیره لطفا کمک کنید
سلام !
تو اعماق هاردم اينو پيدا كردم ! بگير نگير داره ولي فكر كنم كارت راه بيفته !
فقط آدرس ها رو تغيير بده !
موفق باشيد !
miniator عزیز خیلی ممنون خودم این بلد بودم . ولی این چیزی نبود که من می خواستم .
عزیز دل من گفتم که فایل ها از Resource به هارد کپی میشن
واقعا انقدر سخته ؟؟؟؟؟؟؟؟؟؟؟
با توجه به تعداد و حجم فايلهاتون پروگرس بار رو افزايش بديد. نرم افزارهايي كه اسم برديد هم همين كارو مي كنند.
مي تونيد براي بهتر شدن و اطمينان از انجام كپي كامل فايل ها اين كارو انجام بديد.
الگوریتم هایی که تاریخچه خود را فراموش می کنند، محکوم به تکرار آن هستند.
با توجه به تعداد و حجم فايلهاتون پروگرس بار رو افزايش بديد. نرم افزارهايي كه اسم برديد هم همين كارو مي كنند.
مي تونيد براي بهتر شدن و اطمينان از انجام كپي كامل فايل ها اين كارو انجام بديد.
منظورت رو خوب نگرفتم
xxxxx_xxxxx عزیز میشه برام نمونه کدش رو بزارید .
از نظر من . فایل ها رو در Resource قرار ندین . مثل برنامه InstallShield فایل ها رو فشرده و کدگذاری کنید و در کنار فایل اجرایی قرار بدین . اینطوری امنیت رو هم رعایت کردین .
واسه کپی کردن همراه با ProgressBar هم که فکر می کنم دوستان راه حل رو گفتن .
میشه بگید چطوری باید این کار رو بکنم ؟؟از نظر من . فایل ها رو در Resource قرار ندین . مثل برنامه InstallShield فایل ها رو فشرده و کدگذاری کنید و در کنار فایل اجرایی قرار بدین . اینطوری امنیت رو هم رعایت کردین .
عزیز مطمئنی ؟؟؟؟واسه کپی کردن همراه با ProgressBar هم که فکر می کنم دوستان راه حل رو گفتن .