能不能控制电脑USB供电开关
能不能控制电脑USB供电开关? 不能,想什么呢! 你不会是在说用油猴吧 王一之 发表于 2024-4-30 14:45你不会是在说用油猴吧
哥哥,爱开玩笑 359375198 发表于 2024-4-30 15:20
哥哥,爱开玩笑
油猴是做不到,没那个权限
不过应该有其它的可以做到,这就是知识盲区了 本帖最后由 tfsn20 于 2024-5-2 19:31 编辑
试试WebUSB API,不过这些都需要一次用户手动点击。
以下代码可以连接小米手机(设备管理器里面查看设备id:USB\VID_2717&PID_FF88&REV_0223&MI_02,根据VID(vendorId)和PID,确定设备的具体型号和功能需要查询相应的数据库或官方文档。)
```
navigator.usb
.requestDevice({ filters: [{ vendorId: 2717 }] })
.then((device) => {
console.log(device.productName);
console.log(device.manufacturerName);
})
.catch((error) => {
console.error(error);
});
```
本帖最后由 s0919756 于 2024-5-6 01:33 编辑
// ==UserScript==
// @name 簡易USB設備操作腳本
// @namespace simple-usb-device-operation-script
// @version 1
// @description用於與USB設備進行簡單的交互操作。
// @author 腳本貓特色腳本前台USB控制~
// @match *://*/*
// @grant none
// ==/UserScript==
// 設置一個標誌來檢查是否已經請求過USB設備
let usbDeviceRequested = false;
// 標記已經請求過USB設備
usbDeviceRequested = true;
// 當腳本加載時,自動彈出請求USB設備的對話框
navigator.usb.requestDevice({ filters: [] }) // filters: [] 表示不過濾任何設備
.then(device => {
// 這裡可以添加您想要對USB設備進行的操作
console.log('USB設備已連接:', device);
})
.catch(error => {
// 如果用戶拒絕訪問或發生其他錯誤,將在控制台中顯示錯誤信息
console.error('USB設備連接錯誤:', error);
}); 後台腳本 ~~// ==UserScript==
// @name 高階後台腳本USB
// @namespace advanced-backend-support
// @version 0.1
// @description提供高級數據處理支援,用於輔助前台腳本
// @author me
// @background
// @match *://*/*
// @grant none
// ==/UserScript==
// 此函數用於在網頁上下文中執行JavaScript代碼。
function contentEval(source) {
// 如果源代碼是函數,將其轉換為立即執行函數表達式(IIFE)
if (typeof source === 'function') {
source = `(${source})();`;
}
// 創建一個script元素並將源代碼設置為其內容
const script = document.createElement('script');
script.setAttribute('type', 'application/javascript');
script.textContent = source;
// 將script元素添加到文檔中,然後立即移除,以執行源代碼
document.body.appendChild(script);
document.body.removeChild(script);
}
// 此函數根據URL路徑識別廣播者信息,用於頁面定位和操作。
function getBroadcaster() {
// 分割URL路徑
const pathArray = window.location.pathname.split('/');
// 檢查路徑格式並返回廣播者名稱
if (pathArray.length === 3 && pathArray === '' && pathArray !== '' && pathArray === '') {
return pathArray;
} else if (pathArray.length === 4 && pathArray === '' && pathArray === 'b' && pathArray !== '' && pathArray === '') {
return pathArray;
}
return null;
}
// 監聽前台腳本發送的消息。
window.addEventListener('message', async (event) => {
// 確保回應來自我們信任的來源
if (event.origin !== '您後台腳本的來源') return;
// 處理ping請求
if (event.data.type === 'pingRequest') {
// 使用fetch API發送網絡請求
fetch(event.data.url).then(response => response.text()).then(result => {
// 將結果發送回前台腳本
event.source.postMessage({ type: 'pingResponse', result: result }, event.origin);
}).catch(error => {
// 處理錯誤並發送糾正後的數據
const correctedData = `根據錯誤信息糾正的數據: ${error.message}`;
event.source.postMessage({ type: 'correctedDataResponse', result: correctedData }, event.origin);
});
}
});
// 全局錯誤狀態追蹤變量
let globalErrorStatus = {
hasError: false, // 是否有錯誤發生
errorMessage: '' // 錯誤信息
};
// 檢查是否支持WebUSB API
if ("usb" in navigator) {
// WebUSB API被支持
navigator.usb.requestDevice({ filters: [] })
.then(() => {
// 處理USB設備
})
.catch(error => {
// 處理錯誤
console.log("There was an error: " + error);
}); 你試試看~~我測試是OK~但要注意你有沒有其他腳本或擴展會禁止彈出視窗~WEBAPI USB目前只支持https:.........而某些瀏覽器本身更新後就有BUG這方面要等官方修正~而你的系統安全設定也要設置為USB電源開關設置為開啟 https://scriptcat.org/api/v2/resource/image/I3MwBlA25Wd1LrEd
自己看一下吧~~~~~~~瀏覽器彈出來的USB控制窗口~~~~~~~~用腳本打造的~~相關腳本我有發布前後台都必須安裝~~~~也有滑鼠連點~也是腳本~但是這部分沒公布~~~~保留給王一之先生~
s0919756 发表于 2024-5-6 01:31
// ==UserScript==
// @name 簡易USB設備操作腳本
// @namespace simple-usb-device-operation- ...
人家问的是控制USB供电开关,并不是USB设备的连接……还特意来加我秀一下,真是醉了 s0919756 发表于 2024-5-7 00:03
白癡~連電源開關都看不懂還在那炫耀~你有到底自信來自哪啊?可以教我嗎'?因為我真不知你哪來的臉皮這麼厚 ...
到你是你对“简体”表述的理解偏差还是你对“供电”两个字的理解有偏差?说话那么拽
页:
[1]