這幾天,菜鳥d一直在搞自定義控制項(都是經理的錯),前幾天被設計介面的載入出錯整的相當慘,好在找到了解決辦法。就在今天,同事無意中提到的乙個問題,讓菜鳥d折騰了一天。
「你知道嗎?自定義控制項往設計器介面裡拖的時候,會執行自定義控制項的某些方法。」
「當然知道,我重寫自定義控制項的寬度屬性,可以讓自定義控制項的寬度改變時,內部控制項的定位也隨之發生變化。」
「來看看這個...」
「我x,你這怎麼做到的?我懂了...」
經過這幾天的折騰,發現了「自定義控制項在設計器介面也會執行一些**,甚至都不需要程式執行」的特點。然後就實現了拖到窗體上乙個自定義控制項,關閉設計介面後再次開啟,窗體的寬度逐漸縮減的效果。心裡一猥瑣:能不能開個執行緒,把目標的c盤格了,感覺告訴我這是可行的。
先說一下怎麼實現的,直接上**:
//自定義控制項--這是所有控制項拖到窗體上一定會觸發的事件
private void uctest_visiblechanged(object sender, eventargs e)
//窗體寬度縮減
private void test111()}}
//10次彈窗而已
private void test222()
在自定義控制項中找乙個在設計介面就會執行的方法,如visiblechanged事件(還有很多,這裡只舉一例),然後把想要執行的**寫進去,生成。最好寫乙個執行緒,執行緒容易偽裝嘛。然後當自定義控制項被拖到設計介面的窗體上時,「崩——嚇老子一跳!」也許什麼事也沒發生,也許效果已經很明顯了。如果什麼也沒發生,關掉設計器介面再開啟一次,這次一定會執行。
如果你寫的**殺意太強,把自己電腦弄崩了,呵呵,自己作死怨不了別人。然後試想一下,定義乙個自定義控制項,如上方法注入攻擊(開個執行緒,**硬碟上的資料等等,你懂得),用混淆器混淆一下**,放到網上免費使用,然後別人往程式裡一拖,哈哈中招了吧...
其實,這東西也不可能當病毒來用,這種方式的傳播範圍很窄,幾乎沒什麼傳播的範圍,程式猿也不一定到網上找什麼自定義控制項,所以幾乎不會被傳播(程式猿在廣大網民中的比例還是不高的)。殺傷力再高有毛用,再說要到網上查傳播源也是很容易的,一不小心家裡的水表就被抄了。
自定義控制項 自定義鐘錶
private context mcontext 畫筆 private paint mpaint 控制項的寬 private int mwidth x方向的圓心座標 private int center 鐘錶的半徑 private int mradio 圓環的寬 private int stroke...
自定義控制項
首先是以下這幾項,attribute defaultproperty指定元件的預設屬性,toolboxdata指定當從ide工具中的 工具箱中拖動自定義控制項時為它生成的預設標記 defaultproperty text toolboxdata mycontrol runat server 上面這些...
自定義控制項
新聞管理 using system using system.collections.generic using system.linq using system.web using system.web.ui using system.web.ui.webcontrols namespace ne...