static void Main() { #if RELEASE try { #endif // System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("ml-IN"); // System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("ml-IN"); // The application should be run in full trust mode; but just in case! System.Security.Permissions.EnvironmentPermission envPermission = new System.Security.Permissions.EnvironmentPermission(System.Security.Permissions.PermissionState.Unrestricted); envPermission.Demand(); LoadRuntimeData(); Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new MainForm()); #if RELEASE } catch (Exception ex) { System.Security.Permissions.FileIOPermission ioperm = new System.Security.Permissions.FileIOPermission(System.Security.Permissions.FileIOPermissionAccess.AllAccess, System.Security.AccessControl.AccessControlActions.Change, Utility.DEBUG_FILE_PATH); ioperm.Demand(); using (FileStream fs = new FileStream(Utility.DEBUG_FILE_PATH, FileMode.Append, FileAccess.Write, FileShare.None)) { string debugMessage = "-------------------------------------------" + Environment.NewLine; debugMessage += DateTime.UtcNow.ToLongDateString() + " " + DateTime.UtcNow.ToLongTimeString() + " UTC" + Environment.NewLine + Environment.NewLine; debugMessage += ex.Message + Environment.NewLine; debugMessage += ex.StackTrace + Environment.NewLine + Environment.NewLine; byte[] buffer = System.Text.UTF8Encoding.UTF8.GetBytes(debugMessage); fs.Write(buffer, 0, buffer.Length); fs.Flush(); } MessageBox.Show("An unhandled error has occured in SMOz. SMOz cannot continue.\n\nMore information is available in the file '" + Utility.DEBUG_FILE_PATH + "'. Please include the contents of that file when requesting support. Sorry about the inconvenience.", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error); } #endif }
private Boolean CanSystemAccessFile() { ////////////////////////////////////////// var perm = new System.Security.Permissions.FileIOPermission(System.Security.Permissions.FileIOPermissionAccess.Write | System.Security.Permissions.FileIOPermissionAccess.Read, _st_PathErrLog); // try { perm.Demand(); return(true); } catch (System.AccessViolationException ex_0) { return(false); } catch (IOException e) { if (IsSystemFileLocked(e)) { return(false); } else { return(true); } } catch (Exception ex_1) { return(false); } }
} // end checkForToSProcess internal static bool checkForToSDirectory(string tosRootDir) { bool ret = false; if (!string.IsNullOrEmpty(tosRootDir) && System.IO.Directory.Exists(tosRootDir)) { System.Security.Permissions.FileIOPermission fP = new System.Security.Permissions.FileIOPermission(System.Security.Permissions.FileIOPermissionAccess.Read, tosRootDir); fP.AddPathList(System.Security.Permissions.FileIOPermissionAccess.Write | System.Security.Permissions.FileIOPermissionAccess.Read, tosRootDir); try { fP.Demand(); ret = true; } catch (System.Security.SecurityException ex) { Common.showError("Invalid access to directory", ex); } } return(ret); } // end checkForToSDirectory
/// <summary>Determines whether a file is in use.</summary> ///<param name="filename">The path of the file.</param> /// <returns> /// Returns <c>true</c> if file is in use; otherwise, <c>false</c>. /// </returns> public static bool IsFileInUse(string filename) { { var perm = new System.Security.Permissions.FileIOPermission( System.Security.Permissions.FileIOPermissionAccess.Write | System.Security.Permissions.FileIOPermissionAccess.Read, filename); try { perm.Demand(); return(false); } catch { return(true); } } }
/// <summary>Determines whether a file is in use.</summary> ///<param name="filename">The path of the file.</param> /// <returns> /// Returns <c>true</c> if file is in use; otherwise, <c>false</c>. /// </returns> public static bool IsFileInUse(string filename) { { var perm = new System.Security.Permissions.FileIOPermission( System.Security.Permissions.FileIOPermissionAccess.Write | System.Security.Permissions.FileIOPermissionAccess.Read, filename); try { perm.Demand(); return false; } catch { return true; } } }