2008年12月30日
There are two ways of rising in the world, either by your own industry or by the folly of others
成功之路有兩條:靠自己的努力或靠他人的愚蠢。
Don't part with your illusions.When they are gone you may still exist, but you have ceased to live.
不要放棄你的幻想。當幻想沒有了以后,你還可以生存,但是你生猶死。
Choose a life of action, not one of ostentation.
要選擇行動的一生,兒不是炫耀的一生。
If you have a great talents, industy will improve them; if you have but moderate abilities, industy will supply their deficiency.
如有你很有天賦,勤勉會使其更加完善;如果你能力一般,勤勉會補足其缺陷。
It is easier to fight for principles than to live up to them
為原則而斗爭比實踐該原則要容易。
The important thing in life is to have a great aim, and the determination to attain it.
人生的重要在于確立一個偉大的目標,并有決心使其實現。
Ideal is the beacon. Without ideal,there is no secure direction;without direction, there is no life
理想是指路明燈。沒有理想,就沒有堅定的方向;沒有方向,就沒有生活。
A man can succeed at almost anything for which he has unlimited enthusiam.
只要有無限的熱情,一個人幾乎可以在任何事情上取得成功。
If you would hit the mark, you must aim a little above it. Every arrow that flies feels the attraction of earth.
要想射中靶心,必須瞄準比靶略微高些,因為脫靶之箭都受到地心引力的影響。
If you doubt yourself, then indeed you stand on shaky ground.
如果你懷疑自己,那么你的立足點卻是不穩固了。
If a jewel falls into the mire, it remains as precious as befour; and though dust should ascend to heaven, its former worthlessness will not be altered.
寶石及時落在泥潭里,仍是一樣可貴;塵土縱然揚到天上,還是沒有價值。
There is no royal road to science, and only those who do not dread the fatiguing climb of its steep path have a chance of gaining its luminous summit.
在科學上沒有平坦大道,只有不畏勞苦沿著崎嶇之路攀登的人,才有希望大道光輝的頂點。
在一些安全相關領域,為了防止資料外泄也許會禁止U盤的使用,或者只允許從U盤如入,而禁止向U盤寫數據。這是怎么實現的呢?如果要從根本上禁止USB設備的使用,估計要用到USB hub的一些信息,對系統底層變成,禁止USB設備的使用,但對于一般人來說似乎沒有必要這么做。就目前來看有兩種簡單的方式來實現禁止U盤寫操作,具體方式如下:
(1)更改注冊表
打開注冊表 “HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control”,然后創建一個名為“StorageDevicePolicies”的新key ,之后在“StorageDevicePolicies”下創建一個名為“WriteProtect”的DWORD value。當WriteProtect值為1時,用戶將不能向USB設備寫數據;WriteProtect為0時,則可以向USB設備寫入數據。更改一下注冊表項就能實現對U盤的訪問策略,是不是很簡單?
但這種方法也有弊端,就是只能使用在XP SP2以上(包括SP2)或者VSTA系統上,對于其他操作系統而言或許不能正常工作。
(2)使用gpedit更改系統策略
這種方式配置起來稍微繁瑣一點兒,具體配置就不一一詳述,可參閱相關文檔。
以上兩種做法孰好孰壞,還請各位使用者自己掂量。個人更傾向于第一種,呵呵,簡單明了,對于做慣了開發的人來說比較實用。
Ultraedit,相信大部分開發人員都比較熟悉吧?各位在實用的過程中有沒有注意到ultraedit較強的關聯性呢?比如說,ultraedit已經打開了a.txt文件,此時在另外一個程序中對a.txt做了更改,ultraedit就能馬上提示a.txt已被其他應用程序改變,提示用戶是否需要重新載入。相信使用過ultraedit的人對這個印象比較深。這個功能是怎么實現的呢?在這里筆者略述一二。
要實現這樣的功能,其實很簡單,無怪乎調用系統函數,查看文件狀態,比較文件更改時間等等,但總不至于用一線程一直讀取文件狀態吧?其實可以使用文件系統的事件通知機制來實現。
(1)對于dotnet應用來說,可以通過使用fileSystemWatcher組件來實現,只需要設置Path,Filter等屬性,實現Changed,Created,deleted,renamed等事件即可。注意,Path指要監控的文件目錄,Filter指文件類型,在這里可以使用通配符,比如*.*等等
(2)對于非dotnet應用,可以使用系統的文件操作,通過FindFirstChangeNotification,FindNextChangeNotification ,FindCloseChangeNotification,以及相應的Wait Functions(包括 SignalObjectAndWait, WaitForSingleObject, and WaitForSingleObjectEx 以及 WaitForMultipleObjects, WaitForMultipleObjectsEx, MsgWaitForMultipleObjects, and MsgWaitForMultipleObjectsEx )來實現和fileSystemWatcher同樣的功能,具體使用方法請參閱MSDN
在一些涉及到文件處理的程序中如果也能加上這種關聯功能,則給用戶的印象就比較深,而且更容易為用戶所接受
2008年4月18日