I reported the problem to Crystal Decisions. It's a known problem. Will look into it, but can not commit to fixing it. You should also report it.
I came up with the following work around. Not all of the code is mine, alot of it came from VBForum.
On the program main form unload event, I check to see if the os is xp. If it is, I delete all tmp files in the system root.
Hope this helps you.Code:'Used to determine what version of windows is being used. Private Declare Function GetVersionEx Lib "kernel32" Alias "GetVersionExA" (lpVersionInformation As OSVERSIONINFO) As Long Private Type OSVERSIONINFO dwOSVersionInfoSize As Long dwMajorVersion As Long dwMinorVersion As Long dwBuildNumber As Long dwPlatformId As Long szCSDVersion As String * 128 End Type 'Platform IDs Private Const WIN_ID_31 = 0 Private Const WIN_ID_95_98_ME = 1 Private Const WIN_ID_NT_2K_XP = 2 Public Function getOSVersion() As String Dim lVer As OSVERSIONINFO lVer.dwOSVersionInfoSize = Len(lVer) Call GetVersionEx(lVer) With lVer Select Case .dwPlatformId Case WIN_ID_31 getOSVersion = "Windows 3.x" Case WIN_ID_95_98_ME Select Case .dwMinorVersion Case 0: getOSVersion = "Windows 95" Case 10: getOSVersion = "Windows 98" Case 90: getOSVersion = "Windows Me" End Select Case WIN_ID_NT_2K_XP Select Case True Case (.dwMajorVersion < 5) getOSVersion = "Windows NT" Case (.dwMajorVersion = 5) Select Case .dwMinorVersion Case 0: getOSVersion = "Windows 2000" Case 1: getOSVersion = "Windows XP" End Select End Select End Select End With End Function Private Sub MDIForm_Unload(Cancel As Integer) If LCase(getOSVersion) = "windows xp" Then Call deleteCrystalTMPFiles End If End Sub Public Sub deleteCrystalTMPFiles() Dim strRoot As String Dim strTmpFiles As String strRoot = Left$(App.Path, InStr(1, App.Path, "\")) If Len(Dir$(strRoot, vbDirectory)) Then strTmpFiles = Dir$(strRoot & "*.tmp") Do While strTmpFiles < "" If FileLen(strRoot & strTmpFiles) = 0 Then Kill strRoot & strTmpFiles End If strTmpFiles = Dir Loop End If End Sub
Ken




Reply With Quote