Deno Swiss Knife tools (Windows Only)
SwissKnife is a Deno module that allows you to do some useful tasks on Windows OS using NirCmd v2.86
Speaks the text your specify by using the Speech library (SAPI) that comes with Windows.
import * as swissKnife from "https://deno.land/x/swissKnife/mod.ts"
await swissKnife.speak("Hello from the other world")
Run your script file:
deno -A myfile.ts #Requires allow-run and allow-write permissions
You can also set the rate and the volume:
import * as swissKnife from "https://deno.land/x/swissKnife/mod.ts"
await swissKnife.speak("Hello from the other world", {rate: 3, volume: 80})
//rate: -10 -> 10
//volume: 0% -> 100%
import * as swissKnife from "https://deno.land/x/swissKnife/mod.ts"
//Set the volume
await swissKnife.setVolume(90) //value between 0 to 100
//mute the system sound
await swissKnife.mute()
//unmute the system sound
await swissKnife.unmute()
await swissKnife.beep(freq, duration)
The freq (Frequance) parameter specifies the freq in hertz, the duration parameter specifies the duration of the sound in milliseconds.
await swissKnife.beep(500, 1000) //play 500 hz for 1 sec.
Also you can play the Windows standard beep (notification sound)
await swissKnife.winBeep()
await swissKnife.playMp3(local_path)
Play local mp3 and WAIT untile the sound ends..
await swissKnife.playMp3("c:\\myFolder\\sound.mp3") //play 500 hz for 1 sec.
With swissKnife you can take a screenshot of the full screen, dual screen and active windows and save the png file to your hard disk.
//Save the primary screen image.
await swissKnife.screenshot("c:\\myfolder\\myfile.png")
Also you can specify Dual monitor:
//take a screenshot of both screens
await swissKnife.screenshot("c:\\myfolder\\myfile.png", "Dual")
Also you can specify the current active window:
//take a screenshot of both screens
await swissKnife.screenshot("c:\\myfolder\\myfile.png", "Window")
The third parameter allows you to specify the coordinates, width and height of the area:
//take a screenshot of both screens
await swissKnife.screenshot("c:\\myfolder\\myfile.png", "Single", {
x: 10,
y: 30,
width: 200,
height: 150
})
Display a notification with text, icon and duration:
swissKnife.notification(title, text, iconNumber, duration)
NB: Icon number is the icon id in shell32.dll
await swissKnife.notification("My Title", "Hello Notification", 77, 2000)
Display a dialog box with "OK" button:
await swissKnife.infoBox(title, text)
Question box is a dialog box with "yes/no" buttons that returns true if the user clicks on yes
let res = await swissKnife.questionBox("A Question", "Do you want to quite smoking?")
if (res) {
console.log("Great, keep trying!")
} else {
console.log("Not Great, but keep trying!")
}
This method allows you to hide, show, minimize, maximize, flush ... windows forms.
winAction(winTitle: string, find: Find, action: WinActions)
- winTitle: Window Title to send the command
- find: Find method (Contains, StartsWith, EndsWith and Equals)
- action: Close, Hide, Show, Activate, Flash, Max, Min, Normal and Center.
//flash any window with title containing 'untit'
await swissKnife.winAction("Untit", "Contains", "Flash")
This method allows you to Logoff, Power Off and Stand by the system.
power(mode:PowerMode)
- mode: Supported values Logoff, Power off and Standby
import * as swissKnife from "https://deno.land/x/swissKnife/mod.ts"
//Standby the system
await swissKnife.power("StandBy")