1. <ul id="0c1fb"></ul>

      <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
      <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区

      RELATEED CONSULTING
      相關(guān)咨詢
      選擇下列產(chǎn)品馬上在線溝通
      服務(wù)時(shí)間:8:30-17:00
      你可能遇到了下面的問(wèn)題
      關(guān)閉右側(cè)工具欄

      新聞中心

      這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
      SWT程序中怎么嵌入第三方程序的窗口

      本篇內(nèi)容主要講解“SWT程序中怎么嵌入第三方程序的窗口”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“SWT程序中怎么嵌入第三方程序的窗口”吧!

      建湖網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián)公司,建湖網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為建湖近千家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設(shè)公司要多少錢(qián),請(qǐng)找那個(gè)售后服務(wù)好的建湖做網(wǎng)站的公司定做!

             在開(kāi)發(fā)系統(tǒng)的時(shí)候經(jīng)常需要嵌入外部的程序,比如將企業(yè)原有的系統(tǒng)集成到我們的系統(tǒng)中,而且要求看起 來(lái)像和我們的程序一樣嵌入到我們的系統(tǒng)中,這時(shí)就要借助于Win32了。在以前使用VC、Delphi、C#開(kāi)發(fā)的 使用的時(shí)候可以直接調(diào)用Win32的API來(lái)操作,好在SWT中提供了Win32API的封裝,而且封裝的比較好,大部 分都在org.eclipse.swt.internal.win32.OS這個(gè)類中。核心原理就是調(diào)用SetParent這個(gè)API將我們的程序中的某個(gè)控件設(shè)置為被嵌套程序的父窗口。 

         核心代碼如下:  

         private void execute(String fileName) throws Exception  {   

      int hHeap = OS.GetProcessHeap ();    

      TCHAR buffer = new TCHAR (0, fileName, true);    

      int byteCount = buffer.length () * TCHAR.sizeof;    

      int lpFile = OS.HeapAlloc (hHeap, OS.HEAP_ZERO_MEMORY, byteCount);    

      OS.MoveMemory (lpFile, buffer, byteCount);    

      SHELLEXECUTEINFO info = new SHELLEXECUTEINFO ();    

      info.cbSize = SHELLEXECUTEINFO.sizeof;  

      //隱藏啟動(dòng) 

      info.lpFile = lpFile;      

      info.nShow = OS.SW_HIDE;    

      boolean result = OS.ShellExecuteEx (info);    

      if (lpFile != 0) {

      OS.HeapFree (hHeap, 0, lpFile);   

              }

      if(result==false){    

      throw new Exception("啟動(dòng)失敗!");

              }

      }    

      protected void startThirdExe() throws Exception {   

      //"notepad.exe"為待啟動(dòng)的程序名   

      execute("notepad.exe");

      //等待NotePad.exe啟動(dòng)并且初始化完畢,需要根據(jù)實(shí)際情況調(diào)整sleep的時(shí)間

      Thread.sleep(1000);

      //"Notepad"為被嵌套程序窗口的ClassName(Win32級(jí)別),可以使用Spy++等工具查看   

      int notepadHwnd = OS.FindWindow(new TCHAR(0,"Notepad",true),null);

      //&~WS_BORDER去掉內(nèi)嵌程序邊框,這樣看起來(lái)更像一個(gè)內(nèi)嵌的程序。如果需要顯示邊框,則將這兩行代 碼刪除   

      int oldStyle = OS.GetWindowLong(notepadHwnd, OS.GWL_STYLE);

      OS.SetWindowLong(notepadHwnd, OS.GWL_STYLE, oldStyle&~OS.WS_BORDER);

      //composite為承載被啟動(dòng)程序的控件   

      OS.SetParent(notepadHwnd, composite.handle);      

      //窗口最大化   

      OS.SendMessage(notepadHwnd, OS.WM_SYSCOMMAND, OS.SC_MAXIMIZE, 0);   

      }  

      SWT程序中怎么嵌入第三方程序的窗口

      到此,相信大家對(duì)“SWT程序中怎么嵌入第三方程序的窗口”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!


      文章題目:SWT程序中怎么嵌入第三方程序的窗口
      瀏覽地址:http://www.ef60e0e.cn/article/jgggpc.html
      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区
      1. <ul id="0c1fb"></ul>

        <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
        <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

        老河口市| 集安市| 基隆市| 牡丹江市| 安仁县| 武清区| 信宜市| 罗平县| 光泽县| 玉山县| 盐池县| 运城市| 大同县| 上犹县| 卫辉市| 库车县| 信丰县| 西乌珠穆沁旗| 聂拉木县| 堆龙德庆县| 宜兰县| 阿鲁科尔沁旗| 闸北区| 蓬溪县| 伊通| 石家庄市| 南城县| 灵川县| 大英县| 晴隆县| 西乌| 弥渡县| 临猗县| 遂川县| 河间市| 巴塘县| 闽侯县| 若羌县| 历史| 丰台区| 赣州市|