軟體設計深度挖掘(二)(僅針對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
- 針對Excel表格檔案操作的程式設計實現 (轉)Excel程式設計
- 軟體專案計劃-估算雜談
- 平臺+外掛軟體設計思想原始碼說明 (轉)原始碼
- Windows Phone惡意軟體率僅0.3% 成為最安全手機平臺Windows
- 軟體的效能設計(二) 臨時物件對軟體效能的影響 (轉)物件
- 軟體深度挖掘(零)絕學無憂所引出的 (轉)
- SOLIDWORKS軟體不僅僅是三維機械設計軟體Solid
- 領域驅動設計對軟體複雜度的應對複雜度
- 隨筆程式設計雜談錄–《隆中對》程式設計
- Google向Linux移植軟體 轉換平臺對抗微軟(轉)GoLinux微軟
- c#實現的破解程式--針對軟體使用時間限制C#
- 軟體設計的複雜度複雜度
- 軟體的效能設計(一)介面設計對軟體效能的影響 (轉)
- 設計模式雜談設計模式
- 雜談設計工具
- 如何設計實時資料平臺(技術篇)
- Windows平臺Node.js實現文字轉語音TTSWindowsNode.jsTTS
- 新型Windows惡意軟體正在針對Linux、macOS裝置WindowsLinuxMac
- 軟體專案計劃編制方針 (轉)
- 億級流量實驗平臺設計與實現
- linux與windows軟體對照(轉)LinuxWindows
- 規範設計Windows應用軟體選單 (轉)Windows
- windows平臺下完全解除安裝oracle軟體WindowsOracle
- C++程式設計雜談:物件導向 (轉)C++程式設計物件
- [譯] 針對失敗者的體驗設計
- 軟體工程實踐(二) (轉)軟體工程
- 小米深度學習平臺架構與實現深度學習架構
- ORACLE同步軟體技術實現對比(轉載)Oracle
- 編寫可以在所有WINDOWS平臺上執行的應用軟體 (轉)Windows
- 直播平臺軟體開發,實現自定義標題欄
- 軟體系統的設計和實現
- 面試——談談你對Java 平臺的理解面試Java
- NLPIR平臺實現文字挖掘的一站式應用