Windows API調用外部程式之圖片查看

來源:互聯網
上載者:User

標籤:子彈   api   tle   外部程式   filename   圖片查看   opencv   格式   sage   

最近順手接了一個小活,任務目標是將一組映像依次顯示出來。環境就是XP中,代碼嵌入到一個MFC工程裡,圖片是未經處理的可能是JPEG2000格式的j2c,也可能是bitmap。當然還可能沒有任何的檔案頭,這個最後看實際情況再添加吧。

主要就是調用外部程式(j2c可以用網上的ivanview或kakadu,bmp就用Windows的圖片查看工具),開啟/關閉這兩個功能。檔案便利可以用CFileFind類,這裡用的FindFirstFile和FindNextFile。

開啟可以使用system(),還可以用ShellExecuteA();關閉的話可以向視窗發送一個關閉的訊息,需要事先獲得視窗的控制代碼,也可以用system("taskkill")。思路就是這樣,下面是代碼。

 1     HWND hDisplay; 2     HANDLE finder; 3     WIN32_FIND_DATA findFileData;     4     BOOL isOK=TRUE; 5     CString path("C:\\vs_p\\testopencv\\testopencv\\Debug\\"); 6     CString title(" - Windows 圖片和傳真查看器"); 7     finder=FindFirstFile(path+_T("*.bmp"),&findFileData); 8     while((finder!=NULL) && (isOK)) 9     {10         ShellExecute(NULL,L"open",(path+findFileData.cFileName),NULL,NULL, SW_SHOWNORMAL);    //開啟檔案11         Sleep(5000);                                                                        //讓子彈飛一會            12         CString fulltitle=findFileData.cFileName+title;13         hDisplay=::FindWindow(NULL,fulltitle);14         ::PostMessage(hDisplay ,WM_CLOSE,0,0);                                                //發送關閉視窗的訊息15         isOK=FindNextFile(finder,&findFileData);16     }17     //system("C:\\vs_p\\testopencv\\testopencv\\Debug\\a.bmp");//通過預設應用開啟某檔案18     //system("\"C:\\Program Files\\IvanView\\ivanview.exe\" C:\\1336.pdf.asan.47.376.jp2");//通過指定應用開啟某檔案

我的工作不是程式員,寫這幾行代碼就是個興趣愛好,留個記錄。

Windows API調用外部程式之圖片查看

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.