internal static void CaptureNow() { string filename; string timestamp; string name = "Unknown"; string path = RazorEnhanced.Settings.General.ReadString("CapPath"); string type = RazorEnhanced.Settings.General.ReadString("ImageFormat").ToLower(); if (World.Player != null) { name = World.Player.Name; } if (name == null || name.Trim() == "" || name.IndexOfAny(Path.GetInvalidPathChars()) != -1) { name = "Unknown"; } if (RazorEnhanced.Settings.General.ReadBool("CapTimeStamp")) { timestamp = String.Format("{0} ({1}) - {2}", name, World.ShardName, DateTime.Now.ToString(@"M/dd/yy - HH:mm:ss")); } else { timestamp = ""; } name = String.Format("{0}_{1}", name, DateTime.Now.ToString("M-d_HH.mm")); if (!Directory.Exists(path)) { path = Path.GetDirectoryName(Application.ExecutablePath); RazorEnhanced.Settings.General.WriteString("CapPath", path); Assistant.Engine.MainWindow.ScreenPath.Text = path; } int count = 0; do { filename = Path.Combine(path, String.Format("{0}{1}.{2}", name, count != 0 ? count.ToString() : "", type)); count--; // cause a - to be put in front of the number }while (File.Exists(filename)); try { IntPtr hBmp = ClientCommunication.CaptureScreen(RazorEnhanced.Settings.General.ReadBool("CapFullScreen"), timestamp); using (Image img = Image.FromHbitmap(hBmp)) img.Save(filename, GetFormat(type)); DeleteObject(hBmp); } catch { } Engine.MainWindow.ReloadScreenShotsList(); }
public static bool Record(int fps, double sizeFactor) { IntPtr hBmp = ClientCommunication.CaptureScreen(false, ""); using (Bitmap bmp = Bitmap.FromHbitmap(hBmp)) { m_ResX = (int)(bmp.Width * sizeFactor); m_ResY = (int)(bmp.Height * sizeFactor); } DeleteObject(hBmp); string filename; string name = "Unknown"; string path = Config.GetString("RecFolder"); if (World.Player != null) { name = World.Player.Name; } if (name == null || name.Trim() == "" || name.IndexOfAny(Path.GetInvalidPathChars()) != -1) { name = "Unknown"; } name = String.Format("{0}_{1}", name, DateTime.Now.ToString("M-d_HH.mm")); Engine.EnsureDirectory(path); int count = 0; do { filename = Path.Combine(path, String.Format("{0}{1}.avi", name, count != 0 ? count.ToString() : "")); count--; // cause a - to be put in front of the number }while (File.Exists(filename)); m_Avi = new AVIFile(); if (!m_Avi.Open(filename, fps, m_ResX, m_ResY)) { return(false); } UpdateFlip(); m_RecTimer = new RecordTimer(fps); m_RecTimer.Start(); return(true); }
protected override void OnTick() { if (!Recording) { return; } StringBuilder sb = new StringBuilder(); if (m_Avi.FrameCount < 15) { if (World.Player != null && World.Player.Name != null) { sb.Append(World.Player.Name); sb.Append(" "); } if (World.ShardName != null && World.ShardName != "") { sb.Append('('); sb.Append(World.ShardName); sb.Append(") "); } if (sb.Length > 0) { sb.Append("- "); } sb.Append(DateTime.Now.ToString(@"M/dd/yy - HH:mm:ss")); } bool ok = false; try { IntPtr hBmp = ClientCommunication.CaptureScreen(false, sb.ToString()); using (Bitmap bmp = Bitmap.FromHbitmap(hBmp)) { if (bmp.Width != m_ResX) { using (Bitmap copy = new Bitmap(bmp, m_ResX, m_ResY)) { copy.RotateFlip(m_Flip); ok = m_Avi.AddFrame(copy); } } else { bmp.RotateFlip(m_Flip); ok = m_Avi.AddFrame(bmp); } } DeleteObject(hBmp); } catch { ok = false; } if (!ok) { AVIRec.Stop(); throw new Exception("There was an error writing a frame."); } }
public static void CaptureNow() { string filename; string timestamp; string name = "Unknown"; string path = Config.GetString("CapPath"); string type = Config.GetString("ImageFormat").ToLower(); if (World.Player != null) { name = World.Player.Name; } if (name == null || name.Trim() == "" || name.IndexOfAny(Path.GetInvalidPathChars()) != -1) { name = "Unknown"; } if (Config.GetBool("CapTimeStamp")) { timestamp = String.Format("{0} ({1}) - {2}", name, World.ShardName, Engine.MistedDateTime.ToString(@"M/dd/yy - HH:mm:ss")); } else { timestamp = ""; } name = String.Format("{0}_{1}", name, Engine.MistedDateTime.ToString("M-d_HH.mm")); try { Engine.EnsureDirectory(path); } catch { try { path = Config.GetUserDirectory("ScreenShots"); Config.SetProperty("CapPath", path); } catch { path = ""; } } int count = 0; do { filename = Path.Combine(path, String.Format("{0}{1}.{2}", name, count != 0 ? count.ToString() : "", type)); count--; // cause a - to be put in front of the number }while (File.Exists(filename)); try { IntPtr hBmp = ClientCommunication.CaptureScreen(Config.GetBool("CapFullScreen"), timestamp); using (Image img = Image.FromHbitmap(hBmp)) img.Save(filename, GetFormat(type)); DeleteObject(hBmp); } catch { } Engine.MainWindow.ReloadScreenShotsList(); }