我是使用:Microsoft Visual Studio 2008
1.using System.Windows.Forms //這一行有問題
2.public partial class Form1 : Form //Form錯誤,不知道是什麼意思


程式碼:
using System;
using System.Windows.Forms;
using System.Runtime.InteropServices;
using System.Net.Mail; // MailMessage
namespace GetDiskFreeSpaceApp
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
label1.Text = "Sending...";
string drive = "D:\\"; // 要查詢剩餘空間的磁碟
ulong FreeBytesAvailable;
ulong TotalNumberOfBytes;
ulong TotalNumberOfFreeBytes;
bool success = GetDiskFreeSpaceEx(drive, out FreeBytesAvailable, out TotalNumberOfBytes, out TotalNumberOfFreeBytes);
if (!success)
throw new System.ComponentModel.Win32Exception();
double free_kilobytes = (double)(Int64)TotalNumberOfFreeBytes / 1024.0;
double free_megabytes = free_kilobytes / 1024.0;
double free_gigabytes = free_megabytes / 1024.0;
//MessageBox.Show(drive + " 剩餘 " + free_gigabytes.ToString() + " GB");
string FreeSpace = free_gigabytes.ToString() + " GB";
// ------- 寄信 --------------------------------------------
// 本程式是針對發信郵件為 Gmail 撰寫 (收件者可以不是 Gmail 信箱)
// 若使用其他 Mail Server 發信,要依據實際情況作修改
// Gmail Email 帳號請自己去申請
// 帳號、密碼請自己替換
System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage();
///msg.To.Add("帳號1@abc.org.tw"); // 收件者1
//msg.To.Add("帳號2@def.org.tw"); // 收件者2
msg.To.Add("收件者帳號1@mail2000.com.tw"); // 收件者2
msg.To.Add("收件者帳號2@gmail.org.tw"); // 收件者2
string FromEmail = "寄件者帳號@gmail.com"; // 寄件者帳號
string FromEmailPassword = "寄件者密碼"; // 寄件者密碼
msg.From = new MailAddress(FromEmail, FromEmail, System.Text.Encoding.UTF8);
msg.Subject = "磁碟剩餘空間" ;
msg.SubjectEncoding = System.Text.Encoding.UTF8;
msg.Body = "磁碟剩餘空間 : " + FreeSpace;
msg.BodyEncoding = System.Text.Encoding.UTF8;
msg.IsBodyHtml = false;
msg.Priority = MailPriority.High;
SmtpClient client = new SmtpClient();
client.Credentials = new System.Net.NetworkCredential(FromEmail, FromEmailPassword);
//client.Port = 587;//Gmail Port, Success
//client.Port = 465;//Gmail Port, Failed
client.Port = 25;//Gmail Port, Success
client.Host = "smtp.gmail.com";
client.EnableSsl = true; // by SSL
object userState = msg;
try
{
// SendAsync Failed
//client.SendAsync(msg, userState);
client.Send(msg);
//MessageBox.Show("Send OK");
label1.Text = "Send Ok";
}
catch (System.Net.Mail.SmtpException ex)
{
//MessageBox.Show(ex.Message, "Failed");
label1.Text = ex.Message;
}
}
[DllImport("kernel32.dll", SetLastError = true, CharSet = CharSet.Auto)]
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool GetDiskFreeSpaceEx(string lpDirectoryName,
out ulong lpFreeBytesAvailable,
out ulong lpTotalNumberOfBytes,
out ulong lpTotalNumberOfFreeBytes);
}
}






























































































