C# İpuçları
Bugün C# ile ilgili bir kaç ipucu yazacağım. Bilenler için basit bilmeyenler için aranıp bulunması lazım olan şeyler. Bunlar c sharp ile bilgisayarı kapatmak, yine c sharp ile ekran görüntüsü kaydetmek ve değiştirmek. Umarım faydalı olur.
İçerik Tablosu
1. Bilgisayarı kapatmak.
using System.Management; void Shutdown() { ManagementBaseObject mboShutdown = null; ManagementClass mcWin32 = new ManagementClass("Win32_OperatingSystem"); mcWin32.Get(); // You can't shutdown without security privileges mcWin32.Scope.Options.EnablePrivileges = true; ManagementBaseObject mboShutdownParams = mcWin32.GetMethodParameters("Win32Shutdown"); // Flag 1 means we want to shut down the system. Use "2" to reboot. mboShutdownParams["Flags"] = "1"; mboShutdownParams["Reserved"] = "0"; foreach (ManagementObject manObj in mcWin32.GetInstances()) { mboShutdown = manObj.InvokeMethod("Win32Shutdown", mboShutdownParams, null); } }
veya kısaca;
using System.Diagnostics; void Shutdown() { Process.Start("shutdown.exe", "-s -t 00"); }
2. Arkaplan Resmini Değiştirmek İçin :
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Runtime.InteropServices; using System.Windows.Forms; namespace wallpaper { public partial class Form1 : Form { [DllImport("user32.dll", CharSet = CharSet.Auto)] private static extern Int32 SystemParametersInfo(UInt32 uiAction, UInt32 uiParam, String pvParam, UInt32 fWinIni); private static UInt32 SPI_SETDESKWALLPAPER = 30; private static UInt32 SPIF_UPDATEINIFILE = 0x1; private String imageFileName = @"E:\photos\DSC01680.bmp"; public Form1() { InitializeComponent(); } public void button1_Click(object sender, EventArgs e) { string wall = imageFileName; //+ "DSC0180.bmp"; Form1 wallset = new Form1(); wallset.SetImage(wall); } public void SetImage(string filename) { SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, filename, SPIF_UPDATEINIFILE); } } }
3. Ekran görüntüsü Almak İçin:
[DllImport ("user32.dll")] private extern static IntPtr GetDesktopWindow (); [DllImport ("user32.dll")] static extern IntPtr FindWindowEx (IntPtr hwndParent, IntPtr hwndChildAfter, string lpszClass, string lpszWindow); [DllImport ("user32.dll")] static extern bool PrintWindow (IntPtr hwnd, IntPtr hDC, uint nFlags); private void GrabDesktop () { // get the desktop window IntPtr hDesktop = (IntPtr) GetDesktopWindow (); // get the Program Manager IntPtr hWnd = FindWindowEx (hDesktop, IntPtr.Zero, "Progman", "Program Manager"); Bitmap bmp =new Bitmap (Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height); Graphics g = Graphics.FromImage (bmp); PrintWindow (hWnd, g.GetHdc (), 0); g.ReleaseHdc (); // do whatever you want with your bitmap bmp.Save (@"c:\test\grab.bmp"); }
4. C# İpucları Host Adını IP Adresine Çevirme
Yeni bir sunucu uygulaması geliştirdiniz ve kullanıcılar ip adresi ile sisteme bağlanıyorlar, fakat kullanıcılar sürekli olarak IP adresini unutuyorlar veya yanlış giriyorlar? O zaman aşağıdaki küçük uygulama ile bırakın onlar sadece host adını yazsınlar siz IP olarak çevirin..
İşte size örnek:
using System.Net; public string GetIPAddress(string sHostName) { IPHostEntry ipEntry = Dns.GetHostByName(sHostName); IPAddress [] addr = ipEntry.AddressList; string sIPAddress = addr[0].ToString(); return sIPAddress; }