C# ile Ekran Görüntüsünü Alma(PrintScreen)

C# kodlarıyla printscreen işlemi ilk önce kulağa çok zor gelse de gayet basit bir yapısı var. Bir web form application ile bu işlemi gerçekleştirmeye çalışalım.

//Bütün sayfanın ekran görüntüsünü almak için kullanılan metod

private void PrintScreen()
{

Bitmap printscreen = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height);
Graphics graphics = Graphics.FromImage(printscreen as Image);

graphics.CopyFromScreen(0, 0, 0, 0, printscreen.Size);

printscreen.Save(@”C:\Print\printscreen2.jpg”, ImageFormat.Jpeg);

}

//Aktif olan formun ekran görüntüsünü almak için kullanılan metod

private Bitmap Snapshot()
{
// bitmap nesnesi oluştur
Bitmap Screenshot = new Bitmap(this.Width, this.Height);

// bitmapten grafik nesnesi oluştur
Graphics GFX = Graphics.FromImage(Screenshot);

// ekrandan programın bulunduğu konumun resmini alalım
GFX.CopyFromScreen(this.Left, this.Top, 0, 0, this.Size);
return Screenshot;
}

Yukarıdaki metodları çağırmak için ben formuma buton yerleştirdim. Butonun click kısmında da metodları çağırdım. O kodlar da aşağıda bulunmaktadır.

private void button1_Click(object sender, EventArgs e)
{
PrintScreen();
Snapshot().Save(@”C:\Print\program_goruntusu.jpg”);

}

Yukarıdaki kodları kullanırken dikkat edilmesi gereken önemli bir husus resmin nerede olmasını istiyorsanız o adresin pathini doğru vermeniz.

Bu işlemi gerçekleştirmek için yararlandığım kaynak linkler şunlardır:

http://kodzilla.wordpress.com/2012/09/09/c-ile-programin-ekran-goruntusunu-alma-snapshot/

http://social.msdn.microsoft.com/Forums/vstudio/en-US/79efecc4-fa6d-4078-afe4-bb1379bb968b/print-screen-in-c

http://monolara.blogspot.com/

Reklamlar

Asp.Net’te Mail Gönderme

.Net’te Mail gönderme işlemi çok sık kullanılan ve gayette kolay olan bir sistemdir.Hemen hemen bütün web sitelerinin hepsinde bu sistem kullanılır. Bu yüzden hemen projeyi yapmaya başlayalım.

Bu sistemi oluşturabilmek için ilk olarak Visual Studio’da bir Web Servis açmalısınız.

Daha sonra bu web servise aşağıdaki resimdeki gibi bir arayüz oluşturmalısınız. Ben bu arayüzü Html table,buton,label ve textArea kullanarak oluşturdum.

Image

Arayüzümüz hazır olduğuna göre artık kodlama kısmına geçebiliriz. Bu yüzden Send Message isimli butonumuzun Click eventine aşağıdaki kodları yapıştırıyoruz. Aşağıdaki kodların çalışması için ilk olarak

using System.Net;
using System.Net.Mail;

bu iki kütüphaneye dahil etmeniz gereklidir.

             MailMessage e_posta = new MailMessage();
            //yeni bir  mailmesage nesnesi tanımladık
            e_posta.From = new MailAddress("gamzepolat77@gmail.com");
            //from method'u mesajın kimden gönderilecegini
            e_posta.To.Add(email.Text);
            //mesaj gönderilecek kişilerin bilgilerini To.Add method'u saysinde ekledik bu birden fazlada olabilir
            e_posta.Subject = subject.Text;
            //Subject method'uyla konu ne olacagını atadık
            e_posta.Body = message.Text;
            // body method'u sayasinde icerik kısmının text öazelligine yazılan metni atamış olduk
            e_posta.IsBodyHtml = true;
            SmtpClient smtp = new SmtpClient("smtp.gmail.com");
            smtp.EnableSsl = true;
           smtp.UseDefaultCredentials = false;
            smtp.Credentials = new NetworkCredential("gamzepolat77@gmail.com", "12345");
           //gönderenin mail adresi ve şifresini girmiş olduk.
            smtp.Port = 587;
            try
            {
                smtp.Send(e_posta);
                Response.Write("// ");
            }
            catch(Exception exp)
            {
                Response.Write(exp);
                Response.Write("// ");
            }

Bu sistemi uyguladığınız da düzgün bir şekilde çalıştığını göreceksiniz.Eğer “the remote certificate is invalid according to the validation procedure” şeklinde bir hata alırsanız bunu da mail gönderme işlemi yapmadan önce

“//  ServicePointManager.ServerCertificateValidationCallback = delegate(object s, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) { return true; };”

yukarıdaki kodu yazarsanız çalışır.Ancak bu kod nerdeyse bütün güvenliği ortadan kaldırdığı için çok tavsiye edilen bir yöntem değildir.

“Cross-thread operation not valid: Control ‘progressBar1’ accessed from a thread other than the thread it was created on.” Hatası

Eğer Formunuzda Progressbar kullanırken böyle bir hatayla karşılaşıyorsanız Formun constructor kısmına 

“CheckForIllegalCrossThreadCalls = false;” yazmanız yeterlidir.

public Form1() {
CheckForIllegalCrossThreadCalls = false;
InitializeComponent();
}

Yukarıdaki kod parçasını yazdığınızda sorun ortadan kalkmış olacaktır.

LinqPad nedir?

Linq ile uğraşanlar için çok yardımcı olabilecek bir tooldur. Özellikle karmaşık linq sorgularını kod içerisinde değil de sadece linq sorgumuzun doğru olup olmadığını test etmek için kullanabileceğimiz yararlı bir araçtır. Linqpad’i kullanırken makinemizdeki veritabanlarını sisteme dahil edip onlar üzerinden gerekli sorgulamaları yapabiliriz.
Kurulumunun da gayet kolay olduğu toolu      http://www.linqpad.net/  adresinden kolayca indirebilirsiniz.

“unable to create a constant value of type ‘system.object’. only primitive types” Hatası

Eğer projenizde linq kullanırken “unable to create a constant value of type ‘system.object’. only primitive types” böyle bir hata alıyorsanız.Bu hatayı şu şekilde çözebiliriz.

Mesela aşağıdaki kod parçasını Equals yerine “==” şeklinde değiştirirseniz,sorunu halletmiş olacaksınız.

var query1 = from p in harmonyEntities.VDB_ASSET_INFORMATIONS
where p.PRM1.Equals(1) && p.GUID_PARENT.Equals(item.GUID) &&
p.GUID_TYPE.Equals(typeId)
select p;

Düzeltilmiş hali:

var query1 = from p in harmonyEntities.VDB_ASSET_INFORMATIONS
where p.PRM1==1 && p.GUID_PARENT==item.GUID &&
p.GUID_TYPE==typeId
select p;

Jira nedir??

 

Jira dediğimiz kavram tam olarak yazılımcıların elinden çıkmış olan ve Java platformunda çalışan,açık kaynak kodlu iş, istekhata takip ve yazılım proje yönetim aracıdır.

Başarısını kanıtlamış olan Jira hızlı proje yönetimi,kolay iş takibini, çalışan performans ölçümünü gerek grafiklerle gerekse de rakamlarla karşımıza çıkarır.Değiştirilebilir özel filtreler, ayarlanabilir iş takip grafikleri ve kullanıcıyı bilgilendiren otomatik bildiri e-postaları gibi özellikleri ile kullanıcılarına büyük fayda sağlıyor.

Hata takibini rahatça yapmamızı sağlayan Jira çok karmaşık hataları ve çözümleri ,düzenli bir şekilde bulmamızı kolaylaştırır. Düzeltilmesi gereken hataların kritiklik düzeyini bile görmemizi sağlar.

 

Daha detaylı bilgiyi http://jiraturkiye.com/ adresinden öğrenebilirsiniz..

Html5 nedir,ne değildir?

HTML5; html dili için yeni stratejiler ve hedefler ortaya koyan ve farklı web tarayıcıları için standardizasyonu amaçlayan yeni nesil bir sürüm olarak karşımıza çıkmaktadır. HTML5 ile html dilinin işlevselliği, programlama ve sunum gücü artmıştır. HTML5′e yeni eklenen yapısal elemanlar sayesinde fazla kod yazmadan sitenizin görsel tasarımını yapabilir, JavaScript ve CSS3 teknolojilerini daha etkin bir şekilde kullanabilirsiniz. HTML5 tasarımcıların web sayfalarında zengin medya içerikleri kullanmalarına ve interaktif web uygulamaları geliştirebilmelerine olanak sağlayan yeni elemanlar, özellikler ve teknolojiler barındırır.
HTML5 içinde bulunan tüm teknolojiler aslında HTML5 ile beraber yeni oluşturulan ve duyurulan teknolojiler değildir. W3C tarafından önceden oluşturulmuş ve modern web tarayıcıları tarafından kısmen desteklenen bir takım teknolojilerde (Örneğin; SVG-Scalable Vector Graphic) HTML5 içerisine dahil edilmiştir.
W3C, HTML5 dilini geliştirmeye devam etmekdetir bu açıdan ilerleyen zaman dilimlerinde dile yeni eklentilerin olması muhtemeldir. Ayarıca HTML5 dilinin diğer bir avantajı da, HTML dili içinde bulunmayan fakat HTML5′in duyurulması (kullanılması) ile beraber etkinliği (önemi) artan (artacak olan)diğer teknolojilerin de modern web tarayıcıları tarafından desteklenmeye başlamasıdır.

 

Html5 in Flash ve Silverlight yerine tercih edilmesinin sebebiyse herhangi bir plugin gerektirmiyor oluşudur.Günümüzde hemen her browser ve telefon tarafından desteklenen HTML5,web sayfalarında zengin medya içerikleri kullanmalarına ve interaktif web uygulamaları geliştirebilmelerine olanak sağlayan yeni elemanlar, özellikler ve teknolojiler barındırır.

HTML5 Ile Paralax Web Sitesi

CSS 3.0 ve Html5’in birleşmesiyle ortaya çıkan kaliteli işlerden bir tanesidir Paralax Web Siteleri.Zengin görsel şölen sunan,ziyaretçiye kullanıcı hissi yaratan web siteleridir.Büyük markalar özellikle araba ve ayakkabı markaları tarafından tercih edilir.

Paralax web sitesini kendi hikayesini anlatan web sitesi diye tanımlıyorlar.Gerçekten de bilgiyi görselliğe yerleştirmenin adı paralax olmuş 🙂

Paralax web sitesini daha iyi anlamanız için bir kaç link veriyorum.Ziyaret ederseniz çok daha iyi anlayacaksınız.

http://demo.gavick.com/joomla25/creative/
http://www.soleilnoir.net/believein/#/iOS
https://victoriabeckham.landrover.com/INT

 

HTML5 ile Responsive Web Sitesi

İnternetin hayatımızın büyük bir parçası haline geldiği bugünlerde, sadece bilgisayar  üzerinden internete ve sosyal paylaşım alanlarına ulaşmak yetersiz kalabiliyor. Bu nedenle de mobil internet yükselen bir trend  olarak seyrine devam ediyor. Bilgisayar ekranlarında  gördüğümüz internet sitelerine, cep telefonundan girince yaşanan zorlukları hepimiz biliyoruz. Menülerin yerleri karışır, resimlerin boyutları büyük olduğundan ya hata verir ya da hiç anlaşılmayacak şekilde görülür.

Tüm bu sorunlara çözüm olarak ortaya çıkmış bir tasarım şeklidir, duyarlı web tasarım

En genel anlamıyla, web sitelerin boyut ve çözünürlüklerinin internete bağlanılan araçlara göre şekillendirilmesi ve uyumlandırılması  işlemidir.

Responsive(duyarlı) web sitesine örnek ise;

http://www.microsoft.com/tr-tr/default.aspx

http://html5up.net/

 

Html5 ile yapılmış çok beğendiğim bir sitenin daha linkini veriyorum.Adamlar daha ne yapsın 🙂

http://workshop.chromeexperiments.com/stars/