zapínaní wifi jedním tlačítkem
na mém notebooku jsem míval originální wifinu od IBM, u které jsem vyřešil zapínání přes tlačítko ThinkPad. jenže jsem si nedávno pořídil novou a lepší wifi, kterou jsem po menších peripetiích rozchodil, ale už na ní byl krátkej program od IBM na zapínání jedním tlačítkem.
první myšlenka se zrodila po objevení této možnosti:
jenže dopátrat se jak nějak elegantně měnit tuto hodnotu byl úkol téměř nadlidský, ale zjistil jsem, že fígl je v ukládání hodnoty 0, nebo 1 do registrů.
po několika radách se zkušenějšími kodéry mi ID NYCKER poradil tento skript, který vlastně pouze invertuje hodnotu v klíči HKLM\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325–11CE-BFC1–08002bE10318}\013radioEnable a ja připsal message boxy 🙂
RegKey = "HKLM\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002bE10318}\013radioEnable" Set WSHShell = CreateObject("WScript.Shell") KeyValue = WSHShell.RegRead(RegKey) If KeyValue = 1 Then KeyValue = 0 msgBox "Wi-Fi Disabled", vbInformation, "Wi-Fi" Else KeyValue = 1 msgBox "Wi-Fi Enabled", vbInformation, "Wi-Fi" End If WSHShell.RegWrite Regkey, KeyValue WScript.Quit
skript uložený s příponou .vbs opravdu funguje a hodnotu v registrech mění, tlačítkem ThinkPad ale spustit nešel, dokud jsem ho nepřevedl do .exe souboru. poté sice šel spouštět tlačítkem, a hodnotu v registrech měnil na jedničku (a na nulu 🙂 ), ale na ovládání wifi to nakonec nebylo ono…
další myšlenka se tedy uprala k prostému povolování/zakazování zařízení. samozdřejmě nějak one-click 😉
když už jsem to vzdával, objevil jsem na jednom foru zpitvořeny skript, který v sobě skrýval nebývalý potenciál. po opravení několika chybek, byl na světě .bat soubor, který je stejně úžasný jako ten pro automatický upload souborů na zaheslované FTP 😀
:: source: https://community.intel.com:443/plugins/common/feature/samlss/doauth/post?lang=en&redirectreason=permissiondenied&referer=https%3A%2F%2Fcommunity.intel.com%2Ft5%2FSoftware%2Fct-p%2Fsoftware-products :: devcon: https://learn.microsoft.com/en-us/windows-hardware/drivers/devtest/devcon @ECHO OFF CLS ECHO Checking Wireless Adapter..... :: In this section I ran a status check on my wireless adapter :: then PRINTED it to a txt file devcon status PCIVEN_168C > c:wireless.txt :: Here it checks for any errors when attempting to run devcon, :: if it finds one it sends you down to "Q" where it informs you of the problem :: and asks to send you to the MS website... IF ERRORLEVEL ==1 GOTO Q :: here it searches for the string "Disabled." in the txt file, :: and it what the file above will say if it is there. If it finds "Disabled." find /c "disabled." c:wireless.txt CLS ECHO Checking Wireless Adapter..... IF ERRORLEVEL==1 GOTO E :: then is sends to "ENABLE" where it enables the device. :: If not found it send to "DISABLE" where it disables the device. GOTO F :DISABLE ECHO Disabing Wireless card..... devcon disable PCIVEN_168C GOTO Z :Q CLS ECHO Error: ECHO You must first download DevCon command-line utility from Microsoft's website ECHO then place it in your windows\system32 folder. set choice= set /p choice=TO go there now, press the "1" Key, or press any other key to exit... if not '%choice%'=='' set choice=%choice:~0,1% if '%choice%'=='1' GOTO IE GOTO Z :IE START /MAX c:\progra~1\intern~1\iexplore.exe https://learn.microsoft.com/en-us/windows-hardware/drivers/devtest/devcon GOTO Z :ENABLE ECHO Enabing Wireless card..... devcon enable PCIVEN_168C :Z del /Q c:wireless.txt ECHO Done.
zbývalo ho jen přechroupnut vynikajícím programem Bat_To_Exe_Converter.exe do .exe (s použitím volby Ghost aby proběh bez hlášek na pozadí) a bylo hotovo!