arşiv

‘Pratik Çözümler’ kategorisi için arşiv

PowerPoint Eklentisinde Dosya İsmini Almak

Pazartesi, 15 Şub 2010 burakkanmaz yorum yok

imagePowerPoint eklen tisi yazarken açılan sunumun dosya yolunu almanız gerekebilir. Bu durumda aşağıdaki şekilde açılan sunumun yolunu alabilirsiniz.

string dosyaYolu = Application.ActivePresentation.FullName;

Ayrıca hazır öğrenmişken 1-2 kodu daha paylaşayım,

Environment.UserName; // Windows’ta oturum açmış kullanıcı adını alabiliyoruz

Environment.MachineName // Makine adını alabiliyoruz

Ayrıca PowerPoint eklentisinde sunumların açılıp kapanmasına göre kendi metotlarınızı çağırabilirsiniz. Bunun için aşağıdaki event handler komutlarını ThisAddInStartup altında belirtmelisiniz.

Application.PresentationOpen += new
Microsoft.Office.Interop.PowerPoint.EApplication_PresentationOpenEventHandler(Metot1);

Application.PresentationClose += new
EApplication_PresentationCloseEventHandler(Metot2);

Ve tabi ki metotlarınız bu event’lara uyumlu olmalıdır. Yani aşağıdaki gibi bir yapıda olmalıdır.

private void Metot1(Presentation p)

Windows 7′de Giriş Ekranını Değiştirmek

Perşembe, 11 Şub 2010 burakkanmaz 2 yorum

Windows XP kullananların 3.parti programlar ile çok sık yaptığı kullanıcı girişi ekranı resmini değiştirme işini Windows 7′de çok kolay bir şekilde yapabilirsiniz.

image

Kullanıcı giriş ekranındaki arka plan resmini değiştirmek için öncelikle buraya tıklayarak (portable) programcığımızı indirelim. Daha sonra programı açarak ayarlamak istediğiniz resmi seçin ve uygulayın. Saniyeler içerisinde uygulanmış olacaktır. Böylece daha güzel bir giriş ekranıyla karşılanacaksınız ;)

Bu faydalı bilgiyi bizimle paylaşan Alp‘e teşekkürler..

C# ile Outlook 2007 Üzerinde Randevu Oluşturma ve Okuma

Cumartesi, 06 Şub 2010 burakkanmaz 2 yorum

C# ile, ister Outlook Add-In ister normal bir Windows Form uygulaması yaparken eğer Outlook üzerindeki takvim verilerine (randevulara) erişmek ve yeni randevular oluşturmak kolaylıkla yapılabilmektedir. Bu amaçlar için oluşturduğum metotları beraber inceleyelim.

Öncelikle yeni bir randevu oluşturalım,

using Outlook = Microsoft.Office.Interop.Outlook;

public void CreateAppointment(string subject, string location, string body, DateTime startDate, DateTime endDate)
        {
            var outlookApp = new Outlook.Application();
            var oAppointment =
                (Outlook.AppointmentItem)outlookApp.CreateItem(Outlook.OlItemType.olAppointmentItem);
            oAppointment.Subject = subject;
            oAppointment.Location = location;
            oAppointment.Body = body;
            oAppointment.Start = startDate;
            oAppointment.End = endDate;
            oAppointment.ReminderSet = true;
            oAppointment.ReminderMinutesBeforeStart = 15;
            oAppointment.ReminderPlaySound = true;
            oAppointment.Importance = Outlook.OlImportance.olImportanceHigh;
            oAppointment.BusyStatus = Outlook.OlBusyStatus.olBusy;
            oAppointment.Save();
        }

Bu metod sırasıyla öncelikle Outlook’a bağlanıyor, ardından yeni bir Appointment (randevu) oluşturuyor.

Daha sonra bu randevunun Subject (Konu) kısmını, Location (Konum, Yer) kısmını, başlama ve bitiş tarihlerini metot tanımlamasından alarak yazıyoruz. Eğer dilersek bu randevuyu 15 dakika kalasıyla hatırlatmasını sağlıyoruz ve bu hatırlatmayı yaparken ses çalmasını da ayarlıyoruz. Diğer yüksek öncelikli ve durumu meşgule çevirme seçeneklerimizi de belirledikten sonra Save komutu ile bu randevuyu Outlook’a kaydediyoruz.

Outlook içerisinde ki tüm takvim öğelerini kullanmak için ise şu metodu kullanabiliriz.

public List<Outlook.AppointmentItem> GetAppointments()
        {
            var outLookApp = new Microsoft.Office.Interop.Outlook.Application();
            Outlook.NameSpace nms = outLookApp.GetNamespace("MAPI");
            Outlook.MAPIFolder mpiFolder = nms.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderCalendar);
            string body;
            var appItems = new List<Outlook.AppointmentItem>();
            foreach (Outlook.AppointmentItem task in mpiFolder.Items)
            {
                appItems.Add(task);
            }
            return appItems;
        }

Bu metot ile takvimdeki tüm öğeleri alacağız. Öncelikle Outlook’a bağlanmak için gerekli tanımımızı yapalım. Daha sonra MAPI klasörlerine erişmek için bir nesnemizi oluşturalım ve bu bağlantıyı Calendar ile ilişkili olarak başlatalım.

Ardından geri döndürmek için Outlook’un AppointmentItem nesne tipini tutacak bir liste oluşturalım. Daha sonra foreach ile MAPI klasöründe ki tüm takvim öğeleri arasında gezinerek listemize atalım. Son olarak listemizi geri döndürelim ve kullanalım.

İşte bu kadar basit bir şekilde Outlook Takvim öğelerine erişebilir ve yönetebilirsiniz. Bu metotları geliştirmek sizin elinizde ;)

Visual NDepend ile Kodlarınızı Analiz Edin

Cuma, 20 Kas 2009 burakkanmaz 2 yorum

Büyük boyutlu projelerle mi çalışıyorsunuz? Ya da yazdığınız kodları analiz etmekte sıkıntı mı çekiyorsunuz? Bu sorunlarla karşılaşan birisiyseniz Visual NDepend gerçekten hayatınızı kurtaracak özelliklere sahip.

Visual NDepend’i anlatmaya geçmezden önce bu aracı hazırlayan C# MVP’si Patrick Smacchia’ya bana gönderdiği bilgiler ve davetiye için tekrar teşekkür ederim.
// Thanks to Patrick Smacchia (C# MVP) for this tool and his helping..

Visual NDepend ile .NET ortamında (Ayrıca Java ve C++ için de uyumlu sürümleri mevcuttur) yazdığınız projeleri analiz edebilirsiniz. Aşağıdaki resimde ufak bir DLL dosyasının analizini görmektesiniz.

image

Bu ekranda açtığınız dosyadaki sınıflardan, o sınıflar ve sınıfların içerisindeki metotların boyutuna kadar her bilgiyi görebiliyorsunuz. Sağ yukarıda ki kısımda metotların üzerine tıkladığınızda o metotlar ilgili CQL (Code Query Language) sorgularını görebiliyorsunuz. Bu sorgular ile metodunuzun kod kalitesini, ölü kod olup olmadığını, ortalama performanslarını, olası açıkları ve .NET framework uyumluluğunu inceleyebiliyorsunuz.

Ben burada ufak bir dosyayı analiz ettim. Eğer elinizde Paint.NET gibi çok sağlam bir proje varsa, analiz ekranı aşağıdaki gibi harika bir görüntüye bürünecektir.

image

Ayrıca bir dosyayı analiz ettiğinizde karşınıza uzunca bir html sayfası geliyor ki, aslında bu sayfa o projenin her satırının incelenmesi sonucunda oluşan mükemmel bir raporu içeriyor.

image

Son olarak ise CQL kullanarak kodlarınız arasında sağlam bir arama yapabiliyorsunuz. Örnek olarak :

Hangi public metotlar 30 satırdan fazla kod içeriyor?
SELECT METHODS WHERE NbLinesOfCode > 30 AND IsPublic

Hangi sınıflar System.IDisposable’dan türetilmiş?
SELECT TYPES WHERE IsClass AND Implements “System.IDisposable”

Ayrıntılı bilgiye http://www.ndepend.com/ sayfasından erişebilirsiniz.
Ayrıca CQL ile ilgili detaylı bilgiye http://www.ndepend.com/CQL.htm adresinden erişebilirsiniz.

WL Messenger 2009’daki Görev Çubuğu Sorunu

Çarşamba, 11 Kas 2009 burakkanmaz 3 yorum

Windows Live Messenger 2009 (14.0) kullananlar bu sorunu yaşamaktadır. Sorun şu ki, WLW görev çubuğunda her zaman görünüyor ve sağ alttaki tray icon alanında görünmüyor. Bkz: Aşağıdaki resimdeki gibi. (Windows 7 kullanıcıları için böyle bir durum sözkonusu. Önceki sürümlerde durum nedir bilemiyorum)

image

Şimdi bu sorunu nasıl çözeceğinizden bahsedelim. Öncelikle WLW’nizin kısayoluna sağ tıklayın ve uyumluluk modundan Vista SP2’yi seçin. Aşağıdaki gibi,

image

Ardından Tamam’a tıklayın. Tadaaa :)

image

Artık tray icon alanında görebilecek veee görev çubuğunda gereksiz yere yer kaplamasını önlemiş olacaksınız.  Görev çubuğundaki pencereyi kapattığınız zaman tray icon alanına küçülecek.

Categories: Pratik Çözümler Tags: , ,

C# ve VB.NET Kodlarını Birbirine Çevirin

Pazar, 18 Eki 2009 burakkanmaz 3 yorum

CodeChanger isimli web sitesi online olarak sizin yazdığınız C# ve VB.NET kodlarını birbirine başarılı bir şekilde dönüştürüyor. Öyle ki çok büyük C# projelerinizi bile multiple convert kısmından VB.NET’e çevirebiliyorsunuz.

Siteyi şuradan ziyaret edebilirsiniz.

image

Visual Studio’da Daha Rahat Kod Yazmak

Pazar, 18 Eki 2009 burakkanmaz 3 yorum

Visual Studio’da daha rahat kod yazmak ve gözünüzün yorulmasını önlemek istiyorsanız size süper bir önerim var :) Visual Studio’ya yeni ayarları import ederek daha rahat kodlama yapabilirsiniz.

Öncelikle benim önerim olan JFlam ayarlarını indirmek için buraya tıklayın. İndirdiğiniz ayarları Visual Studio’da Tools–>Import & Export Settings ‘e girerek import edin. Ardından aşağıdaki şekilde ayarlarınız değişecektir.

image

Bu sayede hem gözünüz beyaz ışıktan dolayı uzun süreli çalışmalarda ağrımayacak, hem bilgisayarınız daha az enerji tüketecek :) hem de daha zevkli bir kodlama imkanınız olacak.

Bu temanın yanı sıra şu adreste de çok çeşitli ve farklı renklere sahip ayarlar bulunmaktadır.

C# ile Ping İsteği Göndermek

Cumartesi, 17 Eki 2009 burakkanmaz yorum yok

C#’ta uzaktaki bir sunucuya ping isteği göndermek çok kolaydır. Ayrıca ping komutunun yanı sıra istek yapılan adresin IP adresini ve diğer tüm bilgileri alabilirsiniz. Şimdi 3-4 satır ile paylaşayım bu söylediklerimi.

using System.Net.NetworkInformation;
// ^— Bunu kodunuzun en üstüne ekleyin

Ping
p = new Ping();
PingReply
reply = p.Send(www.burakkanmaz.net”);

reply.Address.ToString();
// ^—
İstek yapılan IP adresini verir
reply
.RoundtripTime.ToString();
// ^— İstek süresini milisaniye cinsinden verir. Ör: 45 (ms)

Bilgisayarınızdaki E-Mail Şifrelerinize Erişin

Salı, 12 May 2009 burakkanmaz 2 yorum

Outlook kullanıyorsunuz, ve şifrenizi unuttunuz :) Ne olacak şimdi? Şifre sıfırlama ile kim uğraşacak. İşte harika bir program, MailPassView. Benim imdadıma yetişen bir program :)

Bu kurulum gerektirmeyen mini minnacık yazılım sayesinde bilgisayara kayıtlı olan bütün e-mail şifrelerine erişebiliyorsunuz. Tabi ki bu erişimi kötü niyetle yapmayacağınızı bildiğim için sizlerle paylaşma da sorun görmüyorum :)

MailPassView programını indirmek için tıklayın.

TeamViewer

Salı, 21 Nis 2009 burakkanmaz 2 yorum

teamviewer

TeamViewer uzun zamandan beri var olsa da benim ilgimi henüz çekti ve çok beğendim :)

TeamViewer size, ID ve şifre ile uzaktaki bir bilgisayara tam erişimle bağlanmanızı ve teknik destek vermenizi sağlıyor. Ve bunu sadece 1-2 MB lık bir exe ile yapıyor. Kullanımını bugün öğrendim ve artık benden teknik destek isteyen herkese önce bu programı kurduracağım. Daha sonra uzaktan bağlanıp destek vereceğim :)

Programı indirmek için buraya tıklayın.