2011年7月21日 星期四
2011年7月16日 星期六
看門貓∼
自動偵測指定目錄,當偵測到新增檔案時將檔案透過網際網路傳回中心主機上。
一、偵測檔案
>
> //偵測事件(觸發動作:備份、上傳、刪除)
> FileSystemWatcher fsw = new FileSystemWatcher(fpath);
> fsw.IncludeSubdirectories = false;//不監控指定目錄內的子目錄
> //fsw.Filter = "fer.txt"; //不支援使用多個篩選器,例如 "* txt|*.doc"。
> fsw.Created += new FileSystemEventHandler(fsw_Created);
> //fsw.Changed += new FileSystemEventHandler(fsw_Changed);
> fsw.EnableRaisingEvents = true;
> Console.Read();
>
> static void fsw_Created(object sender, FileSystemEventArgs e)
> {
> Console.WriteLine(SaveLog(string.Format("偵測到新增檔案:{0}", e.Name)));
> DoJob();
> }
二、FTP傳輸
> /// <summary>
> /// FTP上傳
> /// </summary>
> /// <param name="fName">檔名</param>
> /// <returns>成功/失敗</returns>
> private static bool PutFile(string fName)
> {
> SaveLog(string.Format("上傳檔案:{0}", fName));
> string ftpstr = string.Format("ftp://{0}:{1}/{2}{3}", ftp_url, ftp_port, ftp_path, fName);
> //Create FTP request
> FtpWebRequest request = (FtpWebRequest)FtpWebRequest.Create(ftpstr);
> request.Method = WebRequestMethods.Ftp.UploadFile;
> request.Credentials = new NetworkCredential(ftp_id, ftp_pw);
> request.UsePassive = true;
> request.UseBinary = true;
> request.KeepAlive = false;
>
> //讀入檔案
> FileStream stream = File.OpenRead(string.Format("{0}{1}", fpath, fName));
> byte[] buffer = new byte[stream.Length];
>
> stream.Read(buffer, 0, buffer.Length);
> stream.Close();
>
> //上傳
> try
> {
> Stream reqStream = request.GetRequestStream();
> reqStream.Write(buffer, 0, buffer.Length);
> reqStream.Close();
> }
> catch (Exception ex)
> {
> string exs = string.Format("例外狀況:{0}, Ftp string:{1}", ex.ToString(), ftpstr);
> Console.WriteLine(exs);
> SaveLog(exs);
> SendMail(exs);
> return false;
> }
> FtpWebResponse response = (FtpWebResponse)request.GetResponse();
> Console.WriteLine(SaveLog(string.Format("傳輸狀態:{0}", response.StatusDescription)));
> request.Abort();
> return true;
> }
>
三、Email發送
>
> /// <summary>
> /// 發送通知
> /// </summary>
> /// <param name="users">收件人</param>
> /// <param name="exmsg">例外訊息</param>
> /// <returns></returns>
> private static bool SendMail(string _body)
> {
> SmtpClient MySmtp = new SmtpClient(ssmtp, ssmtp_port);
> MailMessage Mms = new MailMessage();
> //MySmtp.Credentials = new NetworkCredential(mail_id, mail_pw);
> //MySmtp.EnableSsl = true;
>
> Mms.From = new MailAddress(mail_src);
> foreach (string _ms in mail_rec.Split(','))
> {
> if (!string.IsNullOrEmpty(_ms)) Mms.To.Add(_ms);
> }
> Mms.Subject = mail_sub;
> Mms.Body = _body;
>
> try
> {
> MySmtp.Send(Mms);
> Console.WriteLine(SaveLog(string.Format("派送訊息通知:{0}", Mms.To.ToString())));
> }
> catch (Exception ex)
> {
> Console.WriteLine(SaveLog(string.Format("SMTP發生例外狀況:{0}", ex.ToString())));
> return false;
> }
> return true;
> }
四、引用
> using System.IO;
> using System.Net;
> using System.Net.Mail;
> using System.Net.NetworkInformation;
--
看到、想到、說到、做到
能夠填平大海的誓言,也比不上邁出一步的價值
是以吾輩此生,再無任何誓言
一、偵測檔案
>
> //偵測事件(觸發動作:備份、上傳、刪除)
> FileSystemWatcher fsw = new FileSystemWatcher(fpath);
> fsw.IncludeSubdirectories = false;//不監控指定目錄內的子目錄
> //fsw.Filter = "fer.txt"; //不支援使用多個篩選器,例如 "* txt|*.doc"。
> fsw.Created += new FileSystemEventHandler(fsw_Created);
> //fsw.Changed += new FileSystemEventHandler(fsw_Changed);
> fsw.EnableRaisingEvents = true;
> Console.Read();
>
> static void fsw_Created(object sender, FileSystemEventArgs e)
> {
> Console.WriteLine(SaveLog(string.Format("偵測到新增檔案:{0}", e.Name)));
> DoJob();
> }
二、FTP傳輸
> /// <summary>
> /// FTP上傳
> /// </summary>
> /// <param name="fName">檔名</param>
> /// <returns>成功/失敗</returns>
> private static bool PutFile(string fName)
> {
> SaveLog(string.Format("上傳檔案:{0}", fName));
> string ftpstr = string.Format("ftp://{0}:{1}/{2}{3}", ftp_url, ftp_port, ftp_path, fName);
> //Create FTP request
> FtpWebRequest request = (FtpWebRequest)FtpWebRequest.Create(ftpstr);
> request.Method = WebRequestMethods.Ftp.UploadFile;
> request.Credentials = new NetworkCredential(ftp_id, ftp_pw);
> request.UsePassive = true;
> request.UseBinary = true;
> request.KeepAlive = false;
>
> //讀入檔案
> FileStream stream = File.OpenRead(string.Format("{0}{1}", fpath, fName));
> byte[] buffer = new byte[stream.Length];
>
> stream.Read(buffer, 0, buffer.Length);
> stream.Close();
>
> //上傳
> try
> {
> Stream reqStream = request.GetRequestStream();
> reqStream.Write(buffer, 0, buffer.Length);
> reqStream.Close();
> }
> catch (Exception ex)
> {
> string exs = string.Format("例外狀況:{0}, Ftp string:{1}", ex.ToString(), ftpstr);
> Console.WriteLine(exs);
> SaveLog(exs);
> SendMail(exs);
> return false;
> }
> FtpWebResponse response = (FtpWebResponse)request.GetResponse();
> Console.WriteLine(SaveLog(string.Format("傳輸狀態:{0}", response.StatusDescription)));
> request.Abort();
> return true;
> }
>
三、Email發送
>
> /// <summary>
> /// 發送通知
> /// </summary>
> /// <param name="users">收件人</param>
> /// <param name="exmsg">例外訊息</param>
> /// <returns></returns>
> private static bool SendMail(string _body)
> {
> SmtpClient MySmtp = new SmtpClient(ssmtp, ssmtp_port);
> MailMessage Mms = new MailMessage();
> //MySmtp.Credentials = new NetworkCredential(mail_id, mail_pw);
> //MySmtp.EnableSsl = true;
>
> Mms.From = new MailAddress(mail_src);
> foreach (string _ms in mail_rec.Split(','))
> {
> if (!string.IsNullOrEmpty(_ms)) Mms.To.Add(_ms);
> }
> Mms.Subject = mail_sub;
> Mms.Body = _body;
>
> try
> {
> MySmtp.Send(Mms);
> Console.WriteLine(SaveLog(string.Format("派送訊息通知:{0}", Mms.To.ToString())));
> }
> catch (Exception ex)
> {
> Console.WriteLine(SaveLog(string.Format("SMTP發生例外狀況:{0}", ex.ToString())));
> return false;
> }
> return true;
> }
四、引用
> using System.IO;
> using System.Net;
> using System.Net.Mail;
> using System.Net.NetworkInformation;
--
看到、想到、說到、做到
能夠填平大海的誓言,也比不上邁出一步的價值
是以吾輩此生,再無任何誓言
標籤:
步青山,
DotNET,
programmer,
tech
2011年7月14日 星期四
2011年7月3日 星期日
2011年6月21日 星期二
Fwd: 問題處理Memo-如何解決 Cleanthis 造成的問題
隔壁同事碰到了這個討厭的惡意軟體「Cleanthis」
電腦開啟的時候會出現Cleanthis的畫面,很像微軟的掃毒軟體。
他會讓你什麼是的無法做(連安全模式也淪陷)。
幫忙上網找了一下資料有網友提供以下步驟處理:
1. 在Cleanthis的畫面出現的時候, 請按 Safe Startup.
2. 在Scanner 的畫面出現的時候, 請按 OK 讓它做全系統掃描.
然後從上方的選單去按 Settings.然後勾選 "Allow unpotected startup"後, 按 "Save settings"
按 X 去結束Scanner, 如果沒有作用就多按幾次.
3. 開啟命令提示字元畫面, 執行以下指令去停止Cleanthis。
(在這裡你的工作管理員仍是無法使用的,必須用CMD處理)
taskkill /f /im gog.exe
4. 執行 regedit 去刪除以下機碼:
HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Winlogon
(像是:shell / xxx/gog.exe)
5. 刪除 Cleanthis的檔案, 位置如下(預設 Application Data 是隱藏的, 請記得設定顯示隱藏),
File name: star, install, gog, completescan
C:\Documents and Settings\[User Name]\Application Data\ (Windows XP/2000)
C:\Users\[User Name]\AppData\Roaming\ (Windows Vista/7)
收工~
--
看到、想到、說到、做到
能夠填平大海的誓言,也比不上邁出一步的價值
是以吾輩此生,再無任何誓言
電腦開啟的時候會出現Cleanthis的畫面,很像微軟的掃毒軟體。
他會讓你什麼是的無法做(連安全模式也淪陷)。
幫忙上網找了一下資料有網友提供以下步驟處理:
1. 在Cleanthis的畫面出現的時候, 請按 Safe Startup.
2. 在Scanner 的畫面出現的時候, 請按 OK 讓它做全系統掃描.
然後從上方的選單去按 Settings.然後勾選 "Allow unpotected startup"後, 按 "Save settings"
按 X 去結束Scanner, 如果沒有作用就多按幾次.
3. 開啟命令提示字元畫面, 執行以下指令去停止Cleanthis。
(在這裡你的工作管理員仍是無法使用的,必須用CMD處理)
taskkill /f /im gog.exe
4. 執行 regedit 去刪除以下機碼:
HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Winlogon
(像是:shell / xxx/gog.exe)
5. 刪除 Cleanthis的檔案, 位置如下(預設 Application Data 是隱藏的, 請記得設定顯示隱藏),
File name: star, install, gog, completescan
C:\Documents and Settings\[User Name]\Application Data\ (Windows XP/2000)
C:\Users\[User Name]\AppData\Roaming\ (Windows Vista/7)
收工~
--
看到、想到、說到、做到
能夠填平大海的誓言,也比不上邁出一步的價值
是以吾輩此生,再無任何誓言
訂閱:
文章 (Atom)