Nine MVP's Blog

20/12/2006

question : เฝ้าระวัง Folder หากมีไฟล์ใดๆ เข้ามาให้โวยวาย. (FlashTaskBar)

Filed under: Computers and Internet — Nine MVP @ 5:21 pm

เฝ้าระวัง Folder หากมีไฟล์ใดๆ เข้ามาให้โวยวาย.

 

 
แนวความคิด
 
              มีโฟล์เดอร์หนึ่ง  (  \\computername\myfolder$\ )  หากมีไฟล์ใดๆเข้ามาที่โฟเดอร์ นี้
ให้โปรแกรมกระพริบ แป๊ป ๆๆๆๆๆ ที่ทากบาร์  (โปรแกรม ICQ ที่มีคนทัก  ครับผม)
ขอตัวอย่างด้วยนะครับ
 
 
——————————————–
 
ขอแสดงความนับถือทุกท่าน

 


Answer : เอา C# code ไปเลยนะ ทำ form กระพริบ

[DllImport("user32.dll")]

static extern Int16 FlashWindowEx(ref FLASHWINFO pwfi);

//Stop flashing. The system restores the window to its original state.

public const UInt32 FLASHW_STOP = 0;

//Flash the window caption.

public const UInt32 FLASHW_CAPTION = 1;

//Flash the taskbar button.

public const UInt32 FLASHW_TRAY = 2;

//Flash both the window caption and taskbar button.

//This is equivalent to setting the FLASHW_CAPTION | FLASHW_TRAY flags.

public const UInt32 FLASHW_ALL = 3;

//Flash continuously, until the FLASHW_STOP flag is set.

public const UInt32 FLASHW_TIMER = 4;

//Flash continuously until the window comes to the foreground.

public const UInt32 FLASHW_TIMERNOFG = 12;

 

[StructLayout(LayoutKind.Sequential)]

public struct FLASHWINFO

{

    public UInt16 cbSize;

    public IntPtr hwnd;

    public UInt32 dwFlags;

    public UInt16 uCount;

    public UInt32 dwTimeout;

}
 

public static bool FlashWindowEx(IntPtr hWnd)

{

    FLASHWINFO fInfo = new FLASHWINFO();

    fInfo.cbSize = (

ushort)Marshal.SizeOf(fInfo);

    fInfo.hwnd = hWnd;

    fInfo.dwFlags = FLASHW_ALL | FLASHW_TIMERNOFG | FLASHW_STOP | FLASHW_TIMER;

    fInfo.uCount =

UInt16.MaxValue;

    fInfo.dwTimeout = 0;

    return (FlashWindowEx(ref fInfo) == 0);

}
 
//เอา method นี้ไปใช้เมื่ออยากให้กระพริบที่ taskbar

private void form_blink()

{

    if (!FlashWindowEx(this.Handle)) { }

}

 
 

  

C# Code การใช้งานตามที่คุณ Jo’ ขอมา
ใช้ FileSystemWatcher + กับ ให้ Blink เตือนเมื่อมีการ Created / Modified / Deleted File ใน ShareFolder ที่ระบุไว้
พร้อมทั้งแจ้งใน show detail ต่าง ๆใน Textbox
 

public Form1()

{

    InitializeComponent();

    initFSW();

}
 

System.IO.FileSystemWatcher fileSystemWatcher1;

 

private void initFSW()

{

    fileSystemWatcher1 = new System.IO.FileSystemWatcher();

    fileSystemWatcher1.Path = "\\\\isdmcdev\\d$\\_Shared";

    fileSystemWatcher1.EnableRaisingEvents = true;

    fileSystemWatcher1.SynchronizingObject = this;

    fileSystemWatcher1.Created += new System.IO.FileSystemEventHandler(fileSystemWatcher1_Created);

    fileSystemWatcher1.Changed += new System.IO.FileSystemEventHandler(fileSystemWatcher1_Changed);

    fileSystemWatcher1.Deleted += new System.IO.FileSystemEventHandler(fileSystemWatcher1_Deleted);

}
 

void fileSystemWatcher1_Deleted(object sender, System.IO.FileSystemEventArgs e)

{

    textBox1.AppendText(e.Name + " deleted.\n");

    if (!FlashWindowEx(this.Handle))

    { }

}
 

private void fileSystemWatcher1_Created(object sender, System.IO.FileSystemEventArgs e)

{

    textBox1.AppendText(e.Name + " created.\n" );

    if (!FlashWindowEx(this.Handle))

    { }

}
 

private void fileSystemWatcher1_Changed(object sender, System.IO.FileSystemEventArgs e)

{

    textBox1.AppendText(e.Name + " modified.\n");

    if (!FlashWindowEx(this.Handle))

    { }

}


Leave a Comment »

No comments yet.

RSS feed for comments on this post. TrackBack URI

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Blog at WordPress.com.