ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   API Function Call - GetFreeDiskSpace (https://www.excelbanter.com/excel-programming/337883-api-function-call-getfreediskspace.html)

bill_morgan

API Function Call - GetFreeDiskSpace
 
Friends,

I am running Excel 2000 on Win XP.

I created a VBA User Defined Function that references the follwing API
function:

Private Declare Function GetDiskFreeSpace Lib "kernel32" _
(ByVal lpRootPathName As String, lpSectorsPerCluster As _
Long, lpBytesPerSector As Long, lpNumberOfFreeClusters As _
Long, lpTotalNumberOfClusters As Long) As Long

Question: Code seems to be working okay (I have serveral other API calls in
the same module), but I am getting Runtime Error 453 "Can't Find DLL Entry
Point in Kernal 32"

Has the name of the DLL changed since Win 2000? How do I need to change the
above API function declaration so that it is referencing the right DLL?

Thanks for your help ...

Bill Morgan





sebastienm

API Function Call - GetFreeDiskSpace
 
Hi,
Maybe try to declare with the Alias "GetDiskFreeSpaceA":

Public Declare Function GetDiskFreeSpace Lib "kernel32" _
Alias "GetDiskFreeSpaceA" _
(ByVal lpRootPathName As String, _
lpSectorsPerCluster As Long, _
lpBytesPerSector As Long, _
lpNumberOfFreeClusters As Long, _
lpTtoalNumberOfClusters As Long) As Long
--
Regards,
Sébastien
<http://www.ondemandanalysis.com


"bill_morgan" wrote:

Friends,

I am running Excel 2000 on Win XP.

I created a VBA User Defined Function that references the follwing API
function:

Private Declare Function GetDiskFreeSpace Lib "kernel32" _
(ByVal lpRootPathName As String, lpSectorsPerCluster As _
Long, lpBytesPerSector As Long, lpNumberOfFreeClusters As _
Long, lpTotalNumberOfClusters As Long) As Long

Question: Code seems to be working okay (I have serveral other API calls in
the same module), but I am getting Runtime Error 453 "Can't Find DLL Entry
Point in Kernal 32"

Has the name of the DLL changed since Win 2000? How do I need to change the
above API function declaration so that it is referencing the right DLL?

Thanks for your help ...

Bill Morgan





bill_morgan

API Function Call - GetFreeDiskSpace
 
Perfect solution. Thank you ...

"sebastienm" wrote:

Hi,
Maybe try to declare with the Alias "GetDiskFreeSpaceA":

Public Declare Function GetDiskFreeSpace Lib "kernel32" _
Alias "GetDiskFreeSpaceA" _
(ByVal lpRootPathName As String, _
lpSectorsPerCluster As Long, _
lpBytesPerSector As Long, _
lpNumberOfFreeClusters As Long, _
lpTtoalNumberOfClusters As Long) As Long
--
Regards,
Sébastien
<http://www.ondemandanalysis.com


"bill_morgan" wrote:

Friends,

I am running Excel 2000 on Win XP.

I created a VBA User Defined Function that references the follwing API
function:

Private Declare Function GetDiskFreeSpace Lib "kernel32" _
(ByVal lpRootPathName As String, lpSectorsPerCluster As _
Long, lpBytesPerSector As Long, lpNumberOfFreeClusters As _
Long, lpTotalNumberOfClusters As Long) As Long

Question: Code seems to be working okay (I have serveral other API calls in
the same module), but I am getting Runtime Error 453 "Can't Find DLL Entry
Point in Kernal 32"

Has the name of the DLL changed since Win 2000? How do I need to change the
above API function declaration so that it is referencing the right DLL?

Thanks for your help ...

Bill Morgan





Dave Peterson

API Function Call - GetFreeDiskSpace
 
Another option:

Option Explicit
Sub testme()

Dim myDriveLetter As String


' With a reference (tools|references) to microsoft scripting runtime
' Dim FSO As Scripting.FileSystemObject
' Dim myDrive As Scripting.Drive
' Set FSO = New Scripting.FileSystemObject

' without that reference
Dim FSO As Object
Dim myDrive As Object
Set FSO = CreateObject("scripting.filesystemobject")

myDriveLetter = "C"
Set myDrive = FSO.GetDrive(myDriveLetter)
MsgBox Format(myDrive.freeSpace, "0,000")


End Sub

sub testme02()
'or just this:
Dim myDriveLetter As String

myDriveLetter = "C"
MsgBox CreateObject("scripting.filesystemobject") _
.GetDrive(myDriveLetter).freeSpace

end sub



bill_morgan wrote:

Friends,

I am running Excel 2000 on Win XP.

I created a VBA User Defined Function that references the follwing API
function:

Private Declare Function GetDiskFreeSpace Lib "kernel32" _
(ByVal lpRootPathName As String, lpSectorsPerCluster As _
Long, lpBytesPerSector As Long, lpNumberOfFreeClusters As _
Long, lpTotalNumberOfClusters As Long) As Long

Question: Code seems to be working okay (I have serveral other API calls in
the same module), but I am getting Runtime Error 453 "Can't Find DLL Entry
Point in Kernal 32"

Has the name of the DLL changed since Win 2000? How do I need to change the
above API function declaration so that it is referencing the right DLL?

Thanks for your help ...

Bill Morgan


--

Dave Peterson


All times are GMT +1. The time now is 01:02 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com