Screenshot | Engin Polat\'ın Windows 8 , Windows Phone 8 ve C# içerikli programcılık sitesi

Arşiv

Etiketlenen yazılar screenshot

Universal App içerisinde ScreenShot özelliğini devre dışı bırakmak

28 August 2014 Yorum yapılmamış

Windows Phone 8.1 kullanıcıları [POWER] ve [VOLUME UP] tuşlarına aynı anda basarak o anda kullanmakta oldukları uygulamanın ekran görüntüsünü çekebilirler.

Eğer uygulamanızın ekran görüntüsünün çekilmesini istemiyorsanız, Universal App projenizde ilgili ekranın açılışına aşağıdaki kod parçasını ekleyebilir ve ekran görüntüsü çekme özelliğini devre dışı bırakabilirsiniz;

ApplicationView.GetForCurrentView().IsScreenCaptureEnabled = false;

Böylece ilgili ekranın görüntüsü alınmak istendiği zaman aşağıda görebileceğiniz gibi Cannot capture protected content mesajı kullanıcıya gösterilecek ve ekran görüntüsü alınmayacaktır.

Bu kodu Windows Phone Emulator içerisinde test etmek için uygulamanız emulator içerisinde açıkken F9 ve F12 tuşlarına aynı anda basın.

Bazı önemli emulator kısayolları;

F2 : START
F3 : SEARCH
F6 : CAMERA HALF
F7 : CAMERA FULL
F9 : VOLUME UP
F10 : VOLUME DOWN
F12 : POWER

Windows Phone uygulaması ile ekran görüntüsü almak

25 May 2014 Yorum yapılmamış

Bazı durumlarda Windows Phone için geliştirdiğimiz uygulamanın o andaki ekran görüntüsünü almamız gerekebilir, örneğin bir hata oluştuğu andaki ekran görüntüsü ilgili alanlara girilmiş verileri görebilmeyi sağlayacağı için çok kullanışlı olacaktır.

Aşağıdaki CaptureScreen() method’u her çağırıldığında ekran görüntüsü alınacak ve ekrangoruntuleri dizinine o anın dosya adı ile kaydedilecek;

private void CaptureScreen()
{
	var tt = new TranslateTransform();
	var rv = Application.Current.RootVisual;
	var wb = new WriteableBitmap(rv, tt);
	wb.Render(rv, tt);

	var stream = new MemoryStream();
	wb.SaveJpeg(stream, wb.PixelWidth, wb.PixelHeight, 0, 100);
	var b = stream.ToArray();
	stream.Close();

	using (var isf = IsolatedStorageFile.GetUserStoreForApplication())
	{
		if (!isf.DirectoryExists("ekrangoruntuleri"))
		{
			isf.CreateDirectory("ekrangoruntuleri");
		}

		using (var st = isf.CreateFile("ekrangoruntuleri\\" + DateTime.Now.Ticks + ".jpg"))
		{
			st.Write(b, 0, b.Length);
		}
	}
}

İlk olarak TranslateTransform sınıfından yeni bir değişken oluşturuyoruz.

Ekran görüntüsü alacağımız nesneyi belirlediğimiz ikinci satırda Application.Current.RootVisual özelliğini kullanarak ekranın tamamının görüntüsünün alınmasını sağlıyoruz.

Öncelikle bir WritableBitmap değişkeni oluşturuyoruz ve RootVisual özelliği sayesinde tüm ekranın bu değişkene Render edilmesini sağlıyoruz.

MemoryStream tipinde yeni bir değişken oluşturarak WriteableBitmap değişkenimizin içeriğini hafızaya taşıyoruz.

IsolatedStorageFile sınıfının GetUserStoreForApplication() methodunu kullanarak uygulamamıza ait olan disk alanına erişiyoruz ve ekrangoruntuleri isminde bir dizin olup/olmadığını DirectoryExists() methodu ile kontrol ediyoruz.

Eğer dizini bulamazsak CreateDirectory() methodunu kullanarak ilgili dizini oluşturuyoruz.

Son olarak CreateFile() methodu ile ekrangoruntuleri dizininde yeni bir dosya oluşturuyoruz ve MemoryStream değişkenindeki görüntüyü kaydediyoruz.

Windows Phone 7 (WP7) Emulator Özellikleri

20 June 2012 Yorum yapılmamış

Windows Phone 7 (WP7) ile programlamaya başlangıç makalesi ile başladığımız Windows Phone 7 serisine Windows Phone Emülatör özellikleri ile devam ediyoruz.

Visual Studio 2010 ile New Project dialog penceresini açalım, Installed Templates kısmında yer alan proje şablon gruplarından Silverlight for Windows Phone‘u seçelim.

Sağ tarafa gelen proje şablonlarından Windows Phone Application‘ı seçip, projeye bir isim verelim ve OK butonuna tıklayarak projenin oluşturulmasını sağlayalım.

Proje oluşturulması sırasında Windows Phone 7 ve Windows Phone 7.1 (Mango) arasında seçim yapabileceğimiz bir dialog kutusu görmemiz lazım,

Proje oluşturulduktan sonra çalıştıracak olursak eğer, ilk olarak Windows Phone Emulator yüklenecek, ardından uygulamamız ekranda belirecektir.


Emulator penceresinin üzerine geldiğimizde beliren dikey toolbox‘ta çift ok butonuna tıklarsak eğer Additional Tools penceresi açılır;

Bu pencerede Accelerometer, Location ve Screenshot tablarına ulaşabiliriz. Accelerometer tab’ında, telefonun farklı şekillerde tutulduğu durumlarda uygulamanın nasıl gözükeceğini test edebiliriz.

Orientation kutusunda telefonun yatay veya dikey (Portrait Standing, Landscape Standing, Portrait Flat, Landscape Flat) duracağına karar verebiliriz.

Recorded Data kutusundan ise, telefonun sallanmasını simüle ettirebiliriz.

Ayrıca telefonun tam ortasında gözüken turuncu noktayı, sağa-sola-yukarı-aşağı oynatarak, telefonun farklı şekillerde tutulmasını da simüle ettirebiliriz.

Location tab’ında, uygulamanın GPS kullanımını test edebiliriz. Harita üzerinde birden fazla noktaya tıklayarak, telefonun sırası ile bu lokasyonlar arasında geziliyormuş durumunu simüle etmesini sağlayabiliriz.

Son olarak, Screenshot tab’ında uygulamanın o anda ekran görüntüsünü alabiliriz. Özellikle uygulamayı Marketplace‘e gönderirken birden fazla ekran görüntüsünün alınmasında fayda var.