Java setDropTarget () не работает, если я запускаю eclipse IDE / myapplication.exe от имени администратора - PullRequest
0 голосов
/ 25 апреля 2020

Я пытаюсь разработать приложение, которое создает локальных пользователей на ap c. В какой-то момент мне придется импортировать файл Excel, а затем получить имена пользователей для локальных пользователей из столбца. Для создания пользователей: - Я должен сделать это после запуска eclipse от имени администратора:

String s="cmd /c net user "+usernametext.getText()+" "+ pwdtext.getText()+" /ADD";
                    System.out.println(s);
                    Process process=Runtime.getRuntime().exec(s);

Но для импорта файла Excel я попытался реализовать перетаскивание в JTextArea: `

     // process files
    textArea.setDropTarget(new DropTarget() {
        public synchronized void drop(DropTargetDropEvent evt) {
            try {
                evt.acceptDrop(DnDConstants.ACTION_COPY);
                List<File> droppedFiles = (List<File>)
                    evt.getTransferable().getTransferData(DataFlavor.javaFileListFlavor);
                for (File file : droppedFiles) {
                    // process files
                    textArea.setText(file.getAbsolutePath());
                }
            } catch (Exception ex) {
                ex.printStackTrace();
            }
        }
    });
`

Но это не работает, когда я запускаю Eclipse от имени администратора. Мне придется запускать мой (.exe) после сборки в качестве администратора для системных вызовов Create User.

Есть ли другая альтернатива? Это вызовет проблемы после сборки или это просто глюк затмения? Заранее спасибо:)

РЕДАКТИРОВАТЬ: Далее я попытался создать исполняемый файл, а затем запустить его от имени администратора, Drop Fails. Что может быть другой альтернативой перетаскиванию Путь к файлу JSwing

...