123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- use std::io::{self, Read};
- #[cfg(windows)]
- use virtual_display;
- #[cfg(windows)]
- fn prompt_input() -> u8 {
- println!("Press key execute:");
- println!(" 1. 'q' 1. quit");
- println!(" 2. 'i' 2. install or update driver");
- println!(" 3. 'u' 3. uninstall driver");
- println!(" 4. 'c' 4. create device");
- println!(" 5. 'd' 5. destroy device");
- println!(" 6. '1' 6. plug in monitor 0,1,2");
- println!(" 7. '4' 7. plug out monitor 0,1,2");
- io::stdin()
- .bytes()
- .next()
- .and_then(|result| result.ok())
- .unwrap_or(0)
- }
- #[cfg(windows)]
- fn plug_in(monitor_index: u32) {
- println!("Plug in monitor begin");
- if let Err(e) = virtual_display::plug_in_monitor(monitor_index as _) {
- println!("{}", e);
- } else {
- println!("Plug in monitor done");
- }
- }
- #[cfg(windows)]
- fn plug_out(monitor_index: u32) {
- println!("Plug out monitor begin");
- if let Err(e) = virtual_display::plug_out_monitor(monitor_index as _) {
- println!("{}", e);
- } else {
- println!("Plug out monitor done");
- }
- }
- #[cfg(windows)]
- fn main() {
- loop {
- let chr = prompt_input();
- match chr as char {
- 'q' => break,
- 'i' => {
- println!("Install or update driver begin");
- let mut reboot_required = false;
- if let Err(e) = virtual_display::install_update_driver(&mut reboot_required) {
- println!("{}", e);
- } else {
- println!(
- "Install or update driver done, reboot is {} required",
- if reboot_required { "" } else { "not" }
- );
- }
- }
- 'u' => {
- println!("Uninstall driver begin");
- let mut reboot_required = false;
- if let Err(e) = virtual_display::uninstall_driver(&mut reboot_required) {
- println!("{}", e);
- } else {
- println!(
- "Uninstall driver done, reboot is {} required",
- if reboot_required { "" } else { "not" }
- );
- }
- }
- 'c' => {
- println!("Create device begin");
- if virtual_display::is_device_created() {
- println!("Device created before");
- continue;
- }
- if let Err(e) = virtual_display::create_device() {
- println!("{}", e);
- } else {
- println!("Create device done");
- }
- }
- 'd' => {
- println!("Close device begin");
- virtual_display::close_device();
- println!("Close device done");
- }
- '1' => plug_in(0),
- '2' => plug_in(1),
- '3' => plug_in(2),
- '4' => plug_out(0),
- '5' => plug_out(1),
- '6' => plug_out(2),
- _ => {}
- }
- }
- }
- #[cfg(not(windows))]
- fn main() {}
|