Показать сообщение отдельно
Старый 09.12.2016, 03:37   #548
seriousstas
Бывалый писикарщик
 
Регистрация: 14.06.2013
Регион: Украина
Машина: Nissan Qashqai+2
Сообщений: 3,424
seriousstas has a brilliant futureseriousstas has a brilliant futureseriousstas has a brilliant futureseriousstas has a brilliant futureseriousstas has a brilliant futureseriousstas has a brilliant futureseriousstas has a brilliant futureseriousstas has a brilliant futureseriousstas has a brilliant futureseriousstas has a brilliant futureseriousstas has a brilliant future
По умолчанию

По-простому связать эмулятор и Икар-оболочку не выйдет.
И тот и тот требует админа, а если запускать от админа скрипт подмену - то такой скрипт не запускается через Шелл.
Тогда решил сделать так , через скрипт-подмену запускаем эмулятор и оболочку Windows ,а из эмулятора [которому даем права админа] запускаем Икар . Выглядит так :
[нужно обозвать эмулятор Vkey_iCarDUINO.exe и бросить в папку TipTop software\iCar DS вместе с RUN_iCarDS.exe]

Код:
#NoTrayIcon 
#pragma compile(Icon, "C:\Program Files (x86)\AutoIt3\Icons\au3script_v9.ico") 
#include <MsgBoxConstants.au3>  
If (@OSArch = "X86") Then  
    $rDir = "C:\Program Files\TipTop software\iCar DS\Vkey_iCarDUINO.exe"  
    $sKey = "HKLM" 
Else  
    $rDir = "C:\Program Files (x86)\TipTop software\iCar DS\Vkey_iCarDUINO.exe" 
    $sKey = "HKLM64" 
EndIf  
$sKey &= "\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon"  
If (Not ProcessExists("iCarDS.exe")) Then 
ShellExecute($rDir) 
EndIf 
Sleep(3000) 

If (Not ProcessExists("explorer.exe")) Then  

    $sShell = RegRead($sKey, "Shell")  
    RegWrite($sKey, "Shell", "REG_SZ", "explorer.exe")  
    If (@error) Then  
        MsgBox($MB_ICONERROR, "RunExplorer", "Ошибка записи в реестр, код: " & @error)  
    EndIf  
    Sleep(500)  
    Run(@WindowsDir & "\explorer.exe") 
    WinWait('[Class:Shell_TrayWnd]') 
    $hTrayWnd = WinGetHandle('[Class:Shell_TrayWnd]') 
    WinSetState($hTrayWnd,'', @SW_HIDE)  
    Sleep(3000)  
    RegWrite($sKey, "Shell", "REG_SZ", $sShell)  

EndIf
и под него эмулятор на 4-е кнопки :
Код:
#NoTrayIcon
#RequireAdmin
#pragma compile(Icon, "C:\Program Files (x86)\AutoIt3\Icons\au3script_v9.ico")

If (@OSArch = "X86") Then  
    $rDir = "C:\Program Files\TipTop software\iCar DS\iCarDS.exe"  
    $sKey = "HKLM" 
Else  
    $rDir = "C:\Program Files (x86)\TipTop software\iCar DS\iCarDS.exe" 
    $sKey = "HKLM64" 
EndIf  

If (Not ProcessExists("iCarDS.exe")) Then 
ShellExecute($rDir) 
EndIf 
Sleep(3000)

HotKeySet("!+{f8}", "Vkey_DUINO")
HotKeySet("!+{f7}", "Vkey_DUINO1")
HotKeySet("!+{f6}", "Vkey_DUINO2")
HotKeySet("!+{f5}", "Vkey_DUINO3")
HotKeySet("!+{f4}", "Vkey_DUINO4")
While 1
    Sleep(100)
WEnd
Func Vkey_DUINO()
If ProcessExists("iCarDS.exe") Then 
   $RRSDK = ObjCreate("RoadRunner.SDK") 
    If Not @error Then 
        $RRSDK.Execute("SetVar;duino_key;duino_111111101||OnDuinoKeyPress") 
    EndIf 
EndIf  
EndFunc

Func Vkey_DUINO1()
If ProcessExists("iCarDS.exe") Then 
    $RRSDK = ObjCreate("RoadRunner.SDK") 
    If Not @error Then 
        $RRSDK.Execute("SetVar;duino_key;duino_111111102||OnDuinoKeyPress") 
    EndIf 
EndIf   
EndFunc

Func Vkey_DUINO2()
If ProcessExists("iCarDS.exe") Then 
    $RRSDK = ObjCreate("RoadRunner.SDK") 
    If Not @error Then 
        $RRSDK.Execute("SetVar;duino_key;duino_111111103||OnDuinoKeyPress") 
    EndIf 
EndIf  
EndFunc

Func Vkey_DUINO3()
If ProcessExists("iCarDS.exe") Then 
    $RRSDK = ObjCreate("RoadRunner.SDK") 
    If Not @error Then 
        $RRSDK.Execute("SetVar;duino_key;duino_111111104||OnDuinoKeyPress") 
    EndIf 
EndIf

Func Vkey_DUINO4()
If ProcessExists("iCarDS.exe") Then 
    $RRSDK = ObjCreate("RoadRunner.SDK") 
    If Not @error Then 
        $RRSDK.Execute("SetVar;duino_key;duino_111111105||OnDuinoKeyPress") 
    EndIf 
EndIf     
EndFunc

Последний раз редактировалось seriousstas; 23.12.2016 в 06:43.
seriousstas вне форума   Ответить с цитированием