瀏覽代碼

扫描时候不影响已经刷出设备的连接

User 5 月之前
父節點
當前提交
1e071a3a8f
共有 4 個文件被更改,包括 134 次插入13 次删除
  1. 21 4
      src/pages/0-TEST-CONNECT.BAT
  2. 104 0
      src/pages/ADD-ADB-TO-PATH.BAT
  3. 9 9
      src/pages/Devices/Devices.jsx
  4. 0 0
      src/pages/ScreenShot/ScrcpySetting.js

+ 21 - 4
src/pages/0-TEST-CONNECT.BAT

@@ -14,12 +14,29 @@ if "%IP_LAST_TWO%"=="" (
 set DEVICE_IP=192.168.%IP_LAST_TWO%
 set DEVICE_PORT=5555
 set DEVICE_ADDRESS=%DEVICE_IP%:%DEVICE_PORT%
+
+set "CONFIG_PATH=%~dp0..\..\config.js"
+set "ADB_PATH="
+for /f "usebackq delims=" %%A in (`powershell -NoProfile -ExecutionPolicy Bypass -Command "try { $configPath = '%CONFIG_PATH%'; if (Test-Path $configPath) { $raw = Get-Content -Raw $configPath; $json = $raw -replace '//.*$', '' -replace ',\s*([}\]])', '$1'; $cfg = ConvertFrom-Json -InputObject $json; $adb = $cfg.'adb-path'; if ($adb) { Write-Output $adb } } } catch { }"`) do (
+    set "ADB_PATH=%%A"
+)
+
+set "ADB_EXE=adb"
+if defined ADB_PATH (
+    if exist "%ADB_PATH%\\adb.exe" (
+        set "ADB_EXE=%ADB_PATH%\\adb.exe"
+    ) else if exist "%ADB_PATH%" (
+        set "ADB_EXE=%ADB_PATH%"
+    )
+)
+
+echo Using ADB: %ADB_EXE%
 echo.
 echo Connecting to %DEVICE_ADDRESS%...
 echo.
 
 echo [1/5] Check if ADB is available...
-adb version >nul 2>&1
+"%ADB_EXE%" version >nul 2>&1
 if errorlevel 1 (
     echo Error: ADB not installed or not in PATH
     echo Please ensure Android SDK Platform Tools is installed
@@ -51,11 +68,11 @@ if errorlevel 1 (
 )
 
 echo [4/5] Disconnect old connection (if any)...
-adb disconnect %DEVICE_ADDRESS% >nul 2>&1
+"%ADB_EXE%" disconnect %DEVICE_ADDRESS% >nul 2>&1
 timeout /t 1 /nobreak >nul
 
 echo Attempting to connect %DEVICE_ADDRESS%...
-adb connect %DEVICE_ADDRESS%
+"%ADB_EXE%" connect %DEVICE_ADDRESS%
 set CONNECT_RESULT=%ERRORLEVEL%
 
 echo.
@@ -94,7 +111,7 @@ if %CONNECT_RESULT% equ 0 (
 
 echo [5/5] Check device list...
 echo.
-adb devices
+"%ADB_EXE%" devices
 echo.
 
 echo ========================================

+ 104 - 0
src/pages/ADD-ADB-TO-PATH.BAT

@@ -0,0 +1,104 @@
+@echo off
+chcp 65001 >nul
+setlocal EnableDelayedExpansion
+
+:: 检查是否以管理员身份运行
+net session >nul 2>&1
+if %errorLevel% neq 0 (
+    echo ========================================
+    echo Error: This script requires administrator privileges
+    echo ========================================
+    echo.
+    echo Please right-click and select "Run as administrator"
+    pause
+    exit /b 1
+)
+
+echo ========================================
+echo Add ADB to System PATH
+echo ========================================
+echo.
+
+set ADB_PATH=C:\Users\GIGABYTE\AppData\Local\Android\Sdk\platform-tools
+
+:: 检查 ADB 路径是否存在
+if not exist "%ADB_PATH%" (
+    echo Error: ADB path does not exist: %ADB_PATH%
+    echo.
+    pause
+    exit /b 1
+)
+
+echo ADB Path: %ADB_PATH%
+echo.
+
+:: 获取当前系统 PATH
+for /f "tokens=2*" %%A in ('reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v PATH 2^>nul') do set "CURRENT_PATH=%%B"
+
+:: 检查 PATH 中是否已包含 ADB 路径
+echo %CURRENT_PATH% | findstr /C:"%ADB_PATH%" >nul
+if %errorLevel% equ 0 (
+    echo ADB path is already in system PATH
+    echo.
+    echo Current PATH contains: %ADB_PATH%
+    echo.
+    pause
+    exit /b 0
+)
+
+echo Adding ADB path to system PATH...
+echo.
+
+:: 添加 ADB 路径到系统 PATH
+setx PATH "%CURRENT_PATH%;%ADB_PATH%" /M >nul 2>&1
+if %errorLevel% neq 0 (
+    echo Error: Failed to add ADB path to system PATH
+    echo.
+    echo Trying alternative method...
+    
+    :: 使用 reg 命令直接修改注册表
+    reg add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v PATH /t REG_EXPAND_SZ /d "%CURRENT_PATH%;%ADB_PATH%" /f >nul 2>&1
+    if %errorLevel% neq 0 (
+        echo Error: Failed to modify system PATH
+        pause
+        exit /b 1
+    )
+    
+    :: 广播环境变量更改
+    call :BroadcastEnvironmentChange
+    echo Success: ADB path added to system PATH (using registry method)
+) else (
+    echo Success: ADB path added to system PATH
+)
+
+echo.
+echo ========================================
+echo Important Notes:
+echo ========================================
+echo 1. You may need to restart your command prompt
+echo 2. Or restart your computer for changes to take effect
+echo 3. To verify, open a new command prompt and run: adb version
+echo.
+echo ========================================
+echo Verification
+echo ========================================
+echo.
+echo Testing ADB command...
+"%ADB_PATH%\adb.exe" version >nul 2>&1
+if %errorLevel% equ 0 (
+    echo ADB is working correctly at: %ADB_PATH%
+) else (
+    echo Warning: ADB command test failed
+    echo Please verify the path is correct
+)
+echo.
+pause
+exit /b 0
+
+:BroadcastEnvironmentChange
+:: 广播环境变量更改消息
+set "HWND_BROADCAST=0xFFFF"
+set "WM_SETTINGCHANGE=0x001A"
+powershell -Command "[System.Environment]::SetEnvironmentVariable('PATH', [System.Environment]::GetEnvironmentVariable('PATH', 'Machine'), 'Machine')" >nul 2>&1
+exit /b
+

+ 9 - 9
src/pages/Devices/Devices.jsx

@@ -36,24 +36,24 @@ function Devices() {
             </div>
             <div className="device-actions">
               {!connectedDevices.has(ipPort) && (
-                <div 
-                  className={`connect-btn ${loading ? 'disabled' : ''}`}
-                  onClick={loading ? undefined : () => handleConnect(ipPort)}
+                <div
+                  className="connect-btn"
+                  onClick={() => handleConnect(ipPort)}
                 >
                   连接
                 </div>
               )}
               {connectedDevices.has(ipPort) && (
                 <div className="action-row">
-                  <div 
-                    className={`preview-btn ${previewingDevices.has(ipPort) ? 'preview-btn--active' : ''} ${loading ? 'disabled' : ''}`}
-                    onClick={loading ? undefined : () => togglePreview(ipPort)}
+                  <div
+                    className={`preview-btn ${previewingDevices.has(ipPort) ? 'preview-btn--active' : ''}`}
+                    onClick={() => togglePreview(ipPort)}
                   >
                     {previewingDevices.has(ipPort) ? '取消' : '预览'}
                   </div>
-                  <div 
-                    className={`disconnect-btn ${loading ? 'disabled' : ''}`}
-                    onClick={loading ? undefined : () => handleDisconnect(ipPort)}
+                  <div
+                    className="disconnect-btn"
+                    onClick={() => handleDisconnect(ipPort)}
                   >
                     断开
                   </div>

+ 0 - 0
src/pages/ScreenShot/ScrcpySetting.js