[DUG] Error message starting Delphi program on Vista
Richard Bullin
Richard at lowmanconsulting.com
Mon Nov 24 10:49:35 NZDT 2008
Hi John,
I've had customers report this same problem, I just ask them to put any
dvd into the drive and then it works. Our software doesnt even try to
access the dvd drives so it looks like a vista issue?
Regards
Richard Bullin
B.E.(Hons) - Mechatronics
Lowman Consulting Ltd
Ph +64 9 535 8647
Cell +64 21 053 6127
Skype Richard.Bullin
Web www.framecad.com <http://www.framecad.com/>
________________________________
From: delphi-bounces at delphi.org.nz [mailto:delphi-bounces at delphi.org.nz]
On Behalf Of John Bird
Sent: Friday, 21 November 2008 8:55 p.m.
To: NZ Borland Developers Group - Delphi List
Subject: [DUG] Error message starting Delphi program on Vista
Can anyone shed light on this?
I have one program that is prone to getting an exception dialog when it
starts on Vista.
The dialog is
Windows - No Disk
Exception processing Message 0xc0000013 Parameters 0x764292A0
0x00000004 0x764292A0 0x764292A0
I think its a Vista problem because the program does this whether inside
or outside the IDE, and it disappears if the PC is rebooted, and returns
later. Is it trying to access one of the other drive letters such as a
card reader (there is one on this PC)?
There are also references to this on the web, eg
http://forums.microsoft.com/TechNet/ShowPost.aspx?PostID=1621609&SiteID=
17
where people are just guessing, which suggests amongst others problems
with USB or removable disk drivers.
This program is checking free hard disk space on start up with code like
below:
(But I don't think its even getting this far - it is based on some code
I found on the net - and it gives the error message even if the code is
commented out)
procedure xcDiskStats(Drive: string; var aTotalDisk: real; var
aDiskUsed: Real; var aDiskFree: real; var aDiskPercentFree: integer; var
aStat: string);
var
ldisk: string;
ldiskchar: char;
lTotalDiskMB: Real;
lDiskFreeMB: Real;
begin
try
ldisk := uppercase(copy(Drive, 1, 1));
lDiskChar := Ldisk[1];
aDiskFree := DiskFree(Ord(ldiskChar) - 64);
aTotalDisk := DiskSize(Ord(ldiskChar) - 64);
aDiskUsed := ATotalDisk - ADiskFree;
finally
aStat:='';
end;
if aTotalDisk > 0 then
begin
aDiskPercentFree := round((aDiskFree / aTotalDisk) * 100);
end;
lTotalDiskMB := aTotalDisk / (1024 * 1024);
lDiskFreeMB := aDiskFree / (1024 * 1024);
aStat := 'Disk Total=' + trim(format('%10.2f', [lTotalDiskMB])) + 'MB'
+ ' Disk Free=' + trim(format('%10.2f', [lDiskFreeMB])) + 'MB'
+ ' Free=' + inttostr(aDiskPercentFree) + '%';
end;
John
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://listserver.123.net.nz/pipermail/delphi/attachments/20081124/6d34c77f/attachment.html
More information about the Delphi
mailing list