PCCar.ru - Ваш автомобильный компьютер

PCCar.ru - Ваш автомобильный компьютер (http://pccar.ru/index.php)
-   iCarDS (http://pccar.ru/forumdisplay.php?f=121)
-   -   iCarDs vs TaskBar (http://pccar.ru/showthread.php?t=24069)

b-max 04.04.2016 23:07

iCarDs vs TaskBar
 
Привет всем!
Почитав форум зажегся идеей постройки писикара.

Пока железки идут с поднебесной, решил поковырять софт. Установил на виртуальную машину семерку и iCar.

Начал глумиться, поставил галочку на автозагрузку икара в конфиге и перезагрузился, первое же что не понравилось, это моргание экрана при загрузке из-за того, что сначала грузится рабочий стол, потом он скрывается и следом грузиться iCar. Ну я подумал фигня делов то, зачем в машине нужен еще один фронт-энт в лице "explorer.exe" (а он и есть чистой воды фронт-энд только для Винды) ведь в 99% случаев со всеми задачами должен справиться iCar, быстренько сделал одинаковый фон для iCarа, рабочего стола и экрана приветствия, а чтобы разным приложениям не приходилось его масштабировать, а каждый делает это по своему, я его заранее сделал в размер экрана 1280х800, в итоге везде фон попадает пиксель в пиксель. Потом поменял значение Userinit в ветке реестра HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon на "C:\Program Files (x86)\TipTop software\iCar DS\iCarDS.exe" и перезагрузился.

Получилось вот что:

https://www.youtube.com/watch?v=-CXxRlN2z9k

Никаких морганий, музыка начинает играть еще до того, как появляется сам ICar, единственное при выключении проскакивает черный экран , это следствие того, что рабочий стол не загрузился.

Воодушевленый своими успехами, я принялся убирать это маленькое черное пятно, накидал маленький скрипт, и поставил его в выполнение по событиям "Загрузка скина" Что бы рабочий стол загружался после икара через 30 секунд, и убирался TaskBar
PHP код:

#NoTrayIcon
Sleep(30000)
If 
not ProcessExists("Explorer.exe"Then
  ShellExecute
("C:\Windows\explorer.exe",@SW_HIDE)
  
Sleep(1000)
  
Opt('WINTITLEMATCHMODE'4)
  
ControlHide('classname=Shell_TrayWnd','','')
EndIf 

НО ТУТ меня ждало большое разочарование, через 30 секунд как и положено запускался explorer и снизу ВЫПОЛЗАЛ TaskBar на секунду полторы и исчезал. К тому же загружающийся Explorer съедал дополнительные проценты у процессора который в этот момент активно занимается запуском различных служб и едва успевает обслуживать iCar.

Короче убрав черный экран при выключении,я получил кукиш от Винды - Explorer мне "показал язык" в виде TaskBara.

Фигня подумал я, нас не сломать, накой он нужен этот Explorer, ведь 99% времени за него работает iCar, да к тому же еще и грузит проц в момент когда не надо, пусть моргает черным экран, ведь это ненадолго, ведь в это время я уже должен выйти из машины :).
Подумал так и убрал этот скрипт.

Но у меня остался 1%, это те случаи когда iCar чаго-то не может, и тут нужен Explorer.

Решил воспользоваться штатной функцией ICara встраивания программ и запускать его когда мне надо. И поставил Explorer как внешнее приложение к икару.

"Граната" прилетела откуда не ждали.:blink2:
Рабочий стол появился, куча морганий экрана при этом, но появился, НО БЕЗ TaskBara, ведь iCar послушно скрыл его, я же сам галочку поставил в конфиге "Hide Task Bar".

Я опять метнулся в сторону написания скриптов, ну раз скрипты - тогда без встраивания, пусть выполняются автоматически при нажатии кнопки "windows" и по команде "свернуть икар" от войскомандера, в принципе этот же скрипт можно выполнить и при закрытии икара.
Поиском прошел по файлам скина нашел команду
PHP код:

button_9_command=MINIMIZE 

в файлах buttons.ini и buttons.def заменил ее на
PHP код:

button_9_command=RUN;C:\Users\iCarDS\Documents\iCarDS\skins\Chameleon\Scripts\Two.exe 

и зафигачил второй скрипт подобный первому
PHP код:

#NoTrayIcon
If not ProcessExists("Explorer.exe"Then
  ShellExecute
("C:\Windows\explorer.exe","","","",@SW_MAXIMIZE)
EndIf
Opt('WINTITLEMATCHMODE'4)
ControlShow('classname=Shell_TrayWnd''''')
Sleep(1000)
WinMinimizeAll ( ) 

Запустил...Переназначил кнопку чтобы переписались настройки в других файликах и Нажал кнопку...

Граната прилетела уже от Икара :be:
Ему сильно не понравилось, что его насильно свернули, не сказав "пожалуйста", и он начал "партизанскую войну", при любых попытках запуска Explorera и поднятия TaskBara, он скрывал TaskBar через секунду другую, пока его снайперским выстрелом не убивали с Диспетчера задач.

Тут я зашел в тупик.

Выхода два:

1) КАК ТО исправить команды MINIMIZE и CF_EXIT_RR что бы они запускали Explorer сами если его нет в процессах.
2) опять скриптом запускать Explorer и после этого КАК ТО отправлять в ICar команды MINIMIZE и CF_EXIT_RR, что бы те выполняли все штатные процедуры, при выполнении этих команд.

Я думаю второй путь реальнее.
Вот в принципе из-за этих "КАК ТО" я и написал все изложенное выше. Надеюсь кто то знающий укажет мне направление и осветит путь куда идти.

Lexx09 05.04.2016 12:10

1. В папке Scripts создай скрипт Three.exe:
Код:

#NoTrayIcon

If (Not ProcessExists("explorer.exe")) Then
        Run(@WindowsDir & "\explorer.exe")
EndIf

2. В файл ExecTBL.ini добавь строку:
Код:

"MYMINIMIZE","RUNQW;$SKINPATH$Scripts\Three.exe||MINIMIZE"
3. Замени в файлах скина везде команду MINIMIZE на MYMINIMIZE.

sirota 05.04.2016 12:29

b-max

Цитата:

Получилось вот что:

https://www.youtube.com/watch?v=-CXxRlN2z9k
Пока ждал загрузку икара, чуть не уснул.
Что бы часы были круглые...в конфиге поменяйте экран с 16:9 на 4:3
Вот загрузка икара на седьмой винде без всяких скриптов и рабочих столов по дефолту за 13 сек.

Lexx09 05.04.2016 12:44

sirota, b-max тренируется в виртуальной машине. Похоже, железо совсем слабенькое...

sirota 05.04.2016 12:51

Цитата:

Сообщение от Lexx09 (Сообщение 357455)
sirota, b-max тренируется в виртуальной машине. Похоже, железо совсем слабенькое...

Правильно делает, что тренируется...- Тяжело в учении, легко в бою - :yes4:

Lexx09 05.04.2016 15:15

Закрытие iCarDS:

В файле ExecTBL.ini изменить строку:
Код:

"CF_Exit_RR","RUNQW;$SKINPATH$Scripts\RunExplorer.exe||QUIT"

b-max 05.04.2016 17:02

Lexx09 спасибо за совет, вечером дома попробую.
sirota в машине будет стоять проц J1900, а в виртуалке я оставил 2 процессора и частоту примерно 1,4 ГГц, что бы видеть мелкие недочеты, сразу видно загрузку процессора (разницу в 2-3% на быстрой машине хрен увидишь, а на медленной разница будет 40-60%, что хорошо заметно). Еще сам виртуальный диск расположен на обычно старом винте, а не на SSD. Кроме того в виртуалке паравиртуализация включается когда семерка загрузится, вернее дрова от виртуальной машины, а без нее тормоза еще те. Поскольку хочу поотключать в Винде все что ненужно для iCar,поэтому на рабочем компе не хочу эксперименты ставить.

Я просто раньше сделал виртуальный диск с чистой семеркой, для проб программ скачанных с инета, и несколько клонов его, как чего то скачанное проверить надо, сначала на виртуалке запускаю, смотрю не ставит ли программа чаго лишнего и не пакостит ли, а потом уже на компе. Если че не так клон удаляется и делается новый. А тут это дело пригодилось для экспериментов с iCar.

b-max 05.04.2016 22:57

Попробовал - усе получилось! Спасибо.
Еще вопрос на кой нужны 2 копии файлов - один с расширением .def второй .ini?
И вдогонку второй, что должно сделать внешнее приложение, что бы iCar выполнил его команду.

Lexx09 06.04.2016 10:49

Цитата:

Сообщение от b-max (Сообщение 357505)
на кой нужны 2 копии файлов - один с расширением .def второй .ini?

Связано с хранением/восстановлением/обновлением настроек.
Цитата:

Сообщение от b-max (Сообщение 357505)
что должно сделать внешнее приложение, что бы iCar выполнил его команду.

Тут посмотри.

mzig 27.05.2016 15:15

емм...а скажите, как теперь виндовс декстоп запустить... в машине с онли тач


Часовой пояс GMT +4, время: 14:50.

Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot