[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