軟體設計深度挖掘(二)(僅針對windows平臺)實現雜談篇 (轉)
設計深度挖掘(二)(僅針對平臺)實現雜談篇
既然叫設計當然我們不能撇開它的可實現性了,上一節我說過,具體的
分析員應該具備的知識應該是錯綜百代,廣博精微的!如果說軟體的設計是
的積累,那麼這些技術實現就是其中最重要的一環,因為對於我們來講,技術的
遠遠超過了設計思想的更新。我們不能置基礎而不顧,設計空中樓閣。下面
我們就講一講這些放面的涉及範圍和解決方法。裡面可能不是最優但我想足以拋
磚引玉了。
現在圍繞在我們面前的技術問題很多,很雜。不像10年前那麼單純,實現一個
問題的途徑一般只有一兩種,現在的解決方法真是層出不窮,黑白道的方法都有了。
每次出現一個新版本的東西就要學很久,現在我們應該看清楚了,我們不可能永遠
走在浪尖,我們不能靠身體和知識搏鬥了,要靠思想。msdn有誰看完了呢,沒有!
有誰編寫過300萬行程式碼,也是沒有,你不可能來實踐所有的想法,因為你沒有時間。
你只能針對某一個問題進行研究,就象愛因斯坦不會做餃子一樣,我們都有各自的
領域。有時我們會發現某個人懂得真多,大家別信,大部分是想法,不是實踐。系統
分析員要求就是想法的正確率要非常高了而已。因此這才是真正的經驗,這個經驗
有可能完成一項創舉,也有可能埋葬一個工程。下面就我的經驗來談談windows
下的各種技術實現方法。
首先給大家一個例子:它完成的功能是將windows計算器的選單變成記事本的
選單:
HWND hWndC;
HWND hWndE;
HMENU hMenu;
hWndC = ::FindWindow("SciCalc",NULL);
hWndE = ::FindWindow("Notepad",NULL);
hMenu = ::GetMenu(hWndE);
::SetMenu(hWndC,hMenu);
將這段程式碼加入你的,一個按鈕,或者選單中,將計算器和記事本開啟(notepad)
就可以允許看效果了。這個原理可以用來動態改變選單,插入,刪除,修改視窗和選單的,也就是完全控制一個視窗是非常簡單的,哈哈不信,試試啊!
選單變化後不能響應事件了對吧,那時ID號不對了嘛,這裡僅僅做個示範,後面會詳細解釋的。從這個例子你應該可以理解到window的東西都是相通的,有很多原來認為很複雜的東西其實是非常簡單的,只是我們的經驗不足而已。不相信嗎?那麼我們再作個試驗:如果你正確了8.0 SDK的話將下面編譯成。(控制檯工程)
#include
void main(void)
{ //下面兩個東西一個是建立圖形用的類,一個是控制等操作的類(是介面)
IGraphBuilder *pGraph;
IMediaControl *pMediaControl;
//下面這個一定要有了,就是說我的程式裡面要用com的意思
CoInitialize(NULL);
// 找那個可以用的名稱(就是介面)
CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER,
IID_IGraphBuilder, (void **)&pGraph);
pGraph->QueryInterface(IID_IMediaControl, (void **)&pMediaControl);
// 下面的東西是播放函式了,其中"C:Example.avi"可以自己更改的
// 這個東西可以播放很多東西,不只是avi,不信試試,什麼影像,什麼視
// 頻都可以(誇張了一點)
pGraph->RenderFile(L"C:Example.avi", NULL);
pMediaControl->Run();
// 清楚原來使用的那個函式佔用的了
pMediaControl->Release();
pGraph->Release();
//告訴windows我們不用com元件了
CoUninitialize();
}
這個例子我們能體會到些什麼了吧,什麼顯示jpg,顯示mpeg了等等,我們有這麼
簡單的辦法,很不錯吧!
再隨便講一個多顯示器的東西,對於初學著來說好像很難啊,其實呢,
HMONITOR MonitorFromWindow( HWND hwnd, D dwFlags);
這個函式就搞定了,編寫多顯示器的函式一共才6個,一個回撥,一個列舉,一個info,下面就全是MonitorFrom×××了,覺得不可思議了吧!就這麼簡單.
其實這些都是快餐,什麼意思呢?別人沒有涉及到這個領域就不會清楚裡面的難易
程度,說一兩句就明白了,這種辦法很多也是靠經驗的積累,但這種辦法對於系統分析員來講是有點花拳繡腿了。
我們後面將會步入正題,進行我們的開發之路。比如影片,什麼語音通訊中心,vod,流的開發等等了,我會一一講解。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10748419/viewspace-1007723/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 雜篇:隨筆程式設計雜談錄–《隆中對》程式設計
- 針對Linux和Windows使用者的新型多平臺惡意軟體LinuxWindows
- SOLIDWORKS軟體不僅僅是三維機械設計軟體Solid
- 隨筆程式設計雜談錄–《隆中對》程式設計
- 領域驅動設計對軟體複雜度的應對複雜度
- 新型Windows惡意軟體正在針對Linux、macOS裝置WindowsLinuxMac
- 設計模式雜談設計模式
- 實驗一 二手平臺原型設計原型
- 如何設計實時資料平臺(技術篇)
- 微軟Windows Azure雲端計算平臺微軟Windows
- 億級流量實驗平臺設計與實現
- 自動化測試平臺設計與實現(二、自動化測試用例物件設計實現、關鍵字物件設計與實現)物件
- NLPIR平臺實現文字挖掘的一站式應用
- 實體平臺可以親臨現場實體的靠譜平臺18388858011
- 技術分享| 淺談排程平臺設計
- 直播平臺軟體開發,實現自定義標題欄
- McAfee針對GandCrab勒索軟體的分析
- ARCHICAD三維設計軟體Mac/WindowsMacWindows
- 程式設計雜談:從人類與軟體系統的根本矛盾說起程式設計
- 針對Java程式設計師的20個Spring MVC訪談問題Java程式設計師SpringMVC
- 面試——談談你對Java 平臺的理解面試Java
- 談談你對Java平臺的理解,你對Java平臺到底瞭解到了什麼程度?Java
- 微軟:正式釋出針對 .NET Core的 Winform 設計器微軟ORM
- 遊戲開發經驗談(二):對戰類全球服遊戲的設計與實現遊戲開發
- 自動化測試平臺設計與實現(一)
- 「windows平臺」IATHook&原理與實現(4)WindowsHook
- 淺談VueUse設計與實現Vue
- [轉]:多程式等待的跨平臺實現
- 架構雜談《二》架構
- 直播平臺原始碼,針對訊息對話方塊的實際應用效果原始碼
- 實踐篇 | DDD概念複雜難懂,實際落地如何設計程式碼實現模型?模型
- 【雜談】Remember-Me的實現REM
- 【雜談】從實現角度看ChannelFuture
- 破除軟體開發困局,基於容器平臺的DevOps轉型實踐dev
- 微軟稱發現針對烏克蘭的破壞性惡意軟體微軟
- 在複雜領域中設計軟體:領域驅動設計 - levelup
- kubernetes雜談之(二)Pod初談
- 微軟推出針對Windows的React Native開發專案微軟WindowsReact Native
- 【轉】Windows平臺執行Masscan和NmapWindows