c# etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
c# etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

14.11.12

Visual C# - Kodla Yönetici Olarak Çalıştırmak

Visual C# uygulamamızda bazen uygulamamızın yönetici olarak(administrator) çalıştırılması gerekir.

Örneğin Registry işlemleri yapan kodlarınız var. Bu kodlar Registry File'ın LocalMachine kısımlarında değişiklik yapıyorsa bu uygulamanızı açarken yönetici modda olmanız ya da uygulamanın ikonuna sağ tıklayıp ("Run as administrator") seçeneğini seçmeniz gerekir. Aksi halde registry'deki değerleri değiştiremezsiniz. Registry kodlarınız çalışmaz.

Bunu her defasında kullanıcıdan istemek çok da kullanıcı dostu değil.

Bu işi kullanıcıya bırakmadan kodla nasıl yapıyoruz, kısaca onu anlatacağız. (VS 2010, Framework 4)

Solution Explorer'dan projemize sağ tıklayıp Add diyoruz ve New Item'ı seçiyoruz. Tıpkı yeni bir class ekleyeceğimiz zaman yaptığımız gibi.

Ardından projemize "Application Manifest File" ekliyoruz.

Eklediğimiz dosyayı Sol. Ex. penceresinden üzerine tıklayarak açtığımızda default generate edilmiş



requestedExecutionLevel  level="asInvoker" uiAccess="false" >


satırını



   < requestedExecutionLevel level="requireAdministrator" uiAccess="false" >;


satırıyla değiştiriyoruz. Yani aşağıdaki duruma getiriyoruz.

Hepsi bu kadar. Faydalı olması dileğiyle.




C# ile GeckoFx Kullanımı - Projeye Ekleme

Uzun zaman sonra teknik bir yazı yazacağız. C# programlama dili ile ilgili.

Visual Studio'da biliyorsunuz webBrowser component'i var. Bu component ile kolayca browser ekleyebiliyoruz projemize.

VS'da default bulunan bu component İE'nin engine'ini kullanıyor. (O'nu da doğru düzgün kullanamıyor ya, o da bir sonraki yazının konusu. Son versiyonunu kullandırtmak için registry'de bir ayar yapmak gerekiyor, ona başka bir yazıda değineceğiz nasip olursa)

Evet, İnternet Explorer'ı beğenmeyenler, ya da uygulaması icabı başka bir browser altyapısı kullanmak isteyenler olabilir. Mesela Chrome altyapısı, Firefox altyapısı.

Evet., şimdi kısaca bunu nasıl yapacağınızı anlatacağız. (VS 2008'de, .NET Framework 3.5)

Bu iş için üretilmiş çeşitli opensource componentler var, biz GeckoFx'i anlatacağız. Bunun haricinde Webkit, CefSharp gibi alternatifler de var.


1. Projemize Referanslar bölümünden, internetten indirdiğimiz Skybound.GeckoFX.src.v1.9.1.0 dosyası içerisindeki bin klasöründe bulunan Skybound.Gecko.dll'i ekliyoruz.

2. Aynı dosyayı toolbox'a sürükle bırak yapıyoruz.(VS 2008'de Debug modda olmamaya dikkat edin ve Form'unuzun Design kısmındayken bu işlemi yapın.)(Not: VS 2010'da bu sürükle bırak işlemi yemiyor, orada sağ tıklayıp "Choose Item" diyorsun, sonra da çıkan pencerede "Browse" butonuna basıp yukarıda yolunu tarif ettiğim dll'i ekliyorsun)

3. İnternetten indirdiğimiz Skybound.GeckoFX.src.v1.9.1.0 dosyasındaki bi klasörünün içindekileri kopyalayıp projemizdeki Debug klasörü altına yapıştırıyoruz.

4. Evet, geldik önemli adıma. Şimdi internetten xulrunner-3.6.26.en-US.win32 dosyasını indiriyoruz, bu dosyanın yine bin klasörünün içini kopyalayıp(yaklaşık 25 MB) C dizini altında oluşturacağımız yeni bir klasöre kopyalıyoruz.

5. Oluşturduğumuz ve içini doldurduğumuz bu yeni klasörün path'ini, formumuzun constructer kısmında


  public Form1()
        {
            InitializeComponent();
          Skybound.Gecko.Xpcom.Initialize(@"C:\XulRunner\");
        }

şeklinde belirtiyoruz.

6. Sürükle bırak yöntemiyle Toolbox'daki Genco komponentimizi formumuza ekliyoruz.

7. Aşağıdaki kod ile url'yi verip uygulamamızı kullanabiliyoruz.

 geckoWebBrowser1.Navigate("http://kuran.diyanet.gov.tr/Kuran.aspx");


Hepsi bu kadar. Aslında basit. Sadece işlemler biraz uzun. Diğer fonksiyonları (refresh, go, stop, back, forward vb. rahatça bulabilirsiniz.)

Burada indirdiğiniz dosyaların versiyonları, birbirleriyle uyumu önemli. Buna dikkat ederek indirmeniz lazım. Benim yukarıda verdiklerim HTML5 uyumlu versiyon, eski versiyonlar da internette mevut, yanılıp da eski versiyonları indirirseniz birtakım uyum problemleri yaşayabilirsiniz.

Merak edenler için hemen söyleyelim, Gecko motorlu browserlardan bazıları : Firefox, Camino, Flock, Thunderbird, Seamonkey, Epiphany, NVU, Netscape, K-Meleon

Ayrıca şu adrese de bir göz atabilirsiniz:

http://smush143.wordpress.com/2010/12/28/embedding-webkit-and-gecko-in-vb-net-application/

Ancak dikkat edin verdiği sürüm sanırım eski.

Bu arada xulrunner kısmını atlarsanız hata alırsınız, onu da belirteyim.

Faydalı olması dileğiyle.


25.2.12

C#'da TextBox Kontrolüne Sadece Rakam Girişini Kabul Etmek

C# programlama dili ve windows formlarla çalışırken formunuzda bulunan bir textbox kontrolünün sadece rakam kabul etmesi gereken durumlar olabilir. Örneğin bir barkod okuyorsunuzdur, bu durumda rakamdan başka karakterin girişine izin vermemeniz gerekir. Bu işi aşağıdaki gibi bir event ile yapabilirsiniz.


   private void txt_barkod_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (char.IsDigit(e.KeyChar) || e.KeyChar == Convert.ToChar(Keys.Back))
            {
                e.Handled = false;
            }
            else
            {
                e.Handled = true;
            }
        }

Bu event ile textbox'a rakam harici karakter girisi engellenir. Sizin yapmanız gereken kontrolünüzün özelliklerinden events'e gelip KeyPress event'ine çift tıklayarak kod tarafında oluşmasını sağlamak. Daha sonra da oluşan fonksiyon içine 


 if (char.IsDigit(e.KeyChar) || e.KeyChar == Convert.ToChar(Keys.Back))
            {
                e.Handled = false;
            }
            else
            {
                e.Handled = true;
            }

kodlarını yazmak. Hepsi bu kadar.

Kolay gelsin..

31.1.12

DataTable Birleştirme C#

C#'da DataTable'ları birleştirmek için aşağıdaki metodu kullanabilirsiniz.

DataTable dt1;
DataTable dt2; 
// datatable'lara atama yapıldıktan sonra:
dt1.Merge(dt2);
// dt1'e dt'yi birleştirir ve sonuçta 2 tablo dt1'de saklanır.


Kaynak:
http://msdn.microsoft.com/en-us/library/wkk7s5zk.aspx

9.10.11

C# Setup Dosyası Oluşturmak

İnternette rastladığım iki güzel makalenin adresini paylaşmak istiyorum, birincisinde framework olayı güzel, ikincisinde ise şurası güzel burası güzel diyemeyeceğim, çünkü tamamı güzel. Bana faydalı oldu(HolyLive'ın setup'ını bunlardan bakarak oluşturdum), umarım sizin de işinize yarar.

http://www.csharpnedir.com/articles/read/?id=283

http://erhanncetinn.blogspot.com/2010/11/c-ile-setup-olusturma.html

1.10.11

KaabeLive Programı Geliştirme Çalışmaları -2- Icon Ekleme

Bu yazımda projemizde hem form'a (formun sol üst köşesinde gözüken icon), hem de exe'mize(masaüstünde ve taskbar'da gözükecek ikon ) ekleyeceğiz.

İnternette herhangi bir kabe ikonu yok. Bu nedenle ikonumuzu kendimiz oluşturacağız.

Şu konuda uyarayım, sadece 32'ye 32 bir image'i .ico uzantısı ile kaydederek oluşturduğumuz ikonları bazen VS kabul etmeyebiliyor. Ben bu sorunu çözerken 24 bit seçeneğini ile 128 x 128 pixel'lik bir ikon kullanarak çözdüm. IcoFX adlı bir program kullandım.


Solution Explorer'dan Form1.resx dosyasını açıyıruz(uzantıya dikkat). Üstteki ekran görüntüsünde solda gördüğünüz gibi icons'u seçip Add Existing File diyerek icon'umuzu yukluyoruz. Artık ikonumuz projemizin Resources klasörü altında listelenecektir. Daha sonra Programın Özelliklerine geliyoruz. 


Üstteki ekran görüntüsündeki gibi ikonumuzu seçip projemize ekliyoruz. Artık taskabarda ve exe ikonu olarak yuklediğimiz ikon görülür.

Şimdi bir de forma ikonumuzu ekleyelim.


Form'un properties'inden yukarıdaki ekran görüntüsündeki yeri tıklayarak ikonumuzu seçip ekliyoruz. (Not az önce projemizin resources'ına da iconu eklediğimizden proje dosyanız içinden de ikonunuza ulaşabilirsiniz.)

Projemizi açıp baktığınızda .exe uzantılı uygulamamızın ikonunun yüklediğimiz ikon olduğunu göreceksiniz. Artık exe dosyamızı copy paste ile masaüstümüze atabiliriz ve hemen programı kullanmaya başlayabiliriz. Ancak yayının alındığı siteden kaynaklanan ufak bir script sorunu var, bunu da çözdükten sonra kullanılabilir ve güzel bir ikonu olan bir programımız olmuş olacak.

Bir sonraki yazıda, inşallah, program kapatılırken oluşan ve yayının alındığı sayfadan kaynaklanan bir problemi nasıl çözdüğümüze değineceğim.

KaabeLive Programı Geliştirme Çalışmaları -1-

D.İ.B.'na Bir Öneri başlıklı yazımda bahsettiğim KaabeLive Programı'nın geliştirilme aşamalarını buradan paylaşmak istiyorum.


Visual Studio'yu açtık, sol üstten File->New->Project dedik.

Buradan Windows Forms Application'ı seçtik, projete KaabeLive ismini verdik ve Ok ile devam ettik.

Form karşımıza gelince Toolbox'dan WebBrowser nesnesini sürükle bırak yaparak formumuzun içine attık.

Formun üzerine çift tıklayarak (ya da F7'ye basarak) kod kısmına geçiyoruz. Burada form nesnesi oluşturulurken işletilecek kod bloğu olan constructor ' a formda göstermek istediğimiz web adresinin yolu ile webbrowser nesnesini bu adrese yönlendirecek olan kodu yazdık.

            webBrowser1.Navigate(new Uri("http://live.gph.gov.sa/mkch.html");

Tekrar Form[Design]'a geçtik (F7 ile) ve formun boyutlarını properties kısmından gelen görüntüye göre ayarladık. Formun boyutunun şimdilik kullanıcı tarafından değiştirilmesini istemiyoruz. Görüntü üzerinden fullscreen yapma özelligi zaten var. Bu doğrultuda gerekli özellik değişikliklerini özelliklerden yapıyoruz. Ben minimizebox ve maximizebox özelliklerini false yaptım, minimumsize ve maximumsize özelliklerine de aynı değerleri verdim. Bu şekilde form boyutu kullanıcı tarafından değiştirilemiyor.

Evet bu haliyle F5 yaptığımızda ana fonkisyonunu icra eden güzel bir uygulama, tek satır kod yazarak hayata geçirilmiş oldu. Uygulamanın bu halini kime gösterdiysem tek satır kodla yapılmış olduğunu duyunca çok şaşırdılar.

Bir sonraki yazıda forma'a ve projeye icon ekleyeceğiz.

10.10.10

C# Uygulamasında Google Earth Kullanmak

Joseph Armbruster adındaki vatandaşın yazdığı, hem kendi sitesine hem de codeproject'e koyduğu uygulamanın linkini veriyorum. Bu olay, c# da hazır kütüphaneleri kullanarak üç beş satır kodla browser yapmanın verdiği sahte ama güzel duyguyu insana verir. Az emekle çok iş yaptığında fazla havalara girmemek lazım, diğer taraftan da böyle güzel bir uygulama varken Amerika'yı yeniden keşfetmeye gerek yok.


Bazı uygulamalar için faydalı olabileceğini düşünüyorum. Örneğin bir araç takip sistemi yaptığınızda bedava olarak Google Earth'ü kullanabilirsiniz. Gprs ile aldığınız 2 byte'lık koordinat bilgisini haritanın üzerinde yanıp sönen kırmızı bir nokta olarak doğrudan basabilirsin. Bu bir bitirme projesi olabilir. 

Yok ben Amerika'yı yeniden keşfetmek istiyorum dersen raster formatlarından birini ve vector formatlarından(Bak. GIS file formats) birini çözmelisin, data satın almalısın ve baya bi kod yazmalısın. GIS diye aratırsan konu hakkında bilgi edinebilirsin. En basit uygulamayı yapmak en az 4 adam/aylık bir maaliyet gerektirir.
Related Posts Plugin for WordPress, Blogger...