public void startScreenShare() throws Exception { log.info("启动共享桌面"); try { List<MemberDto> members = (List<MemberDto>) ControllerFacade.execute("mainController", "getOpenfireMemberList"); String[] targetusers = new String[members.size()]; for (int i = 0; i < members.size(); i++) { MemberDto memberDto = members.get(i); targetusers[i] = memberDto.getName(); } MainFrame mainFrame = ViewManager.getComponent(MainFrame.class); mainFrame .getShareDesktopButton() .setText(StringUtil.getUIString("DockingLayoutMeetingPanel.stopScreenShareMI.text")); mainFrame.getShareDesktopButton().setEnabled(false); boolean processExists = com.lorent.common.util.ProcessUtil.getInstance().processExists("winvnc.exe"); if (!processExists) { /* Double osVersion = PlatformUtil.getOSVersion(); if ( osVersion >= 6.0f) { Process startScreenShareProcess = services.getScreenShareService().startScreenShareProcess(); DataUtil.setValue(DataUtil.Key.ScreenShareProcess, startScreenShareProcess); } else{ services.getScreenShareService().installScreenShareService(); } */ Process startScreenShareProcess = services.getScreenShareService().startScreenShareProcess(); DataUtil.setValue(DataUtil.Key.ScreenShareProcess, startScreenShareProcess); } screenshareflag = true; services.getScreenShareService().getRepeaterIDsFromServer(targetusers); new Thread() { @Override public void run() { try { Thread.sleep(10000); MainFrame mainFrame = ViewManager.getComponent(MainFrame.class); if (screenshareflag && !mainFrame.getShareDesktopButton().isEnabled()) { log.info("启动共享桌面超时"); mainFrame .getShareDesktopButton() .setText( StringUtil.getUIString("DockingLayoutMeetingPanel.screenShareMenu.text")); mainFrame.getShareDesktopButton().setEnabled(true); screenshareflag = false; } } catch (Exception e) { e.printStackTrace(); log.error("startScreenShare", e); } } }.start(); } catch (Exception ex) { log.error("startScreenShare", ex); } }