C# İpuçları

0 402

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.


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;
}
Cevap bırakın

E-posta hesabınız yayımlanmayacak.

Bu web sitesi deneyiminizi geliştirmek için çerezleri kullanır. Bununla iyi olduğunuzu varsayacağız, ancak isterseniz vazgeçebilirsiniz. Kabul etmek Mesajları Oku