Windows 7-8에서 Java를 사용하여 wifi 핫스팟과 DHCP 서버를 만들어야합니다. 나는 사용자가 덜 관입적이고 단순 할 수있는 소프트웨어를 개발 중입니다.Java Windows 8에서 wifi 핫스팟 만들기
제 작품의 첫 번째 부분에서는 netsh를 사용하여 호스트 된 네트워크를 만들고 정적 IP를 설정하는 것으로 생각했습니다.
내 현재 코드는 이것이다 :
String[] command = { "cmd", };
Process p = Runtime.getRuntime().exec(command);
new Thread(new SyncPipe(p.getErrorStream(), System.err)).start();
new Thread(new SyncPipe(p.getInputStream(), System.out)).start();
PrintWriter stdin = new PrintWriter(p.getOutputStream());
//now I use the stdin.println for my shell commands
stdin.println("netsh wlan set hostednetwork mode=allow ssid=mynetwork key=mypassword");
stdin.println("netsh wlan start hostednetwork");
stdin.println("netsh interface ipv4 set address \"Wi-Fi\" static 192.168.1.2 255.255.255.0 192.168.1.254");
문제 : 내가 관리자에게 권한을 상승 할 필요가
1). "elevate.exe"http://jpassing.com/2007/12/08/launch-elevated-processes-from-the-command-line/ (다른 stackoverflow 질문에서 발견)을 사용해 보았습니다. 작동이 잘되었지만, 세 번 전화를하면 관리자 권한으로 명령을 실행하는 데 세 번 부탁합니다. 이것은 매우 사용자가 아닙니다 친한. 그렇지 않으면 내가 모든 활성 사용자를 검색하는 방법을 발견해야하는 관리자 사용자가 활성화 할 필요가 :
runas /noprofile /user:administrator netsh ......
그러나이 경우
문제가 있습니다 : 나는 "에서 runas"를 사용하는 것도 시도 관리 권한. 중독에서 runas 후에 나는 프롬프트와 상호 작용해야하며 비밀 번호를 써주세요.2) 마지막 netsh 명령에 대한 모든 wifi 인터페이스를 검사하는 방법이 있습니까?
을이 자바 5 이상이면,'Runtime.getRuntime()를 사용하지 말라 .exec()'; 'ProcessBuilder'를 사용하십시오. – gparyani