PDA

Просмотр полной версии : iCarDs vs TaskBar


b-max
04.04.2016, 23:07
Привет всем!
Почитав форум зажегся идеей постройки писикара.

Пока железки идут с поднебесной, решил поковырять софт. Установил на виртуальную машину семерку и 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
#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" и по команде "свернуть икар" от войскомандера, в принципе этот же скрипт можно выполнить и при закрытии икара.
Поиском прошел по файлам скина нашел команду button_9_command=MINIMIZE в файлах buttons.ini и buttons.def заменил ее на button_9_command=RUN;C:\Users\iCarDS\Documents\iCa rDS\skins\Chameleon\Scripts\Two.exe
и зафигачил второй скрипт подобный первому
#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 сек.
/watch?v=TNbUi8oW4A0

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

sirota
05.04.2016, 12:51
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
на кой нужны 2 копии файлов - один с расширением .def второй .ini?
Связано с хранением/восстановлением/обновлением настроек.
что должно сделать внешнее приложение, что бы iCar выполнил его команду.
Тут (http://www.mp3car.com/forum/mp3car-technical-software/front-ends/road-runner/rr-faq/89048-how-do-i-integrate-my-application-with-rr) посмотри.

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

Lexx09
27.05.2016, 17:15
На другом компе создай reg-файл с таким содержимым:
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]
"Userinit"="C:\\WINDOWS\\system32\\userinit.exe,"
Закинь на флешку, запусти на компе с "онли тач", перезагрузись.

mzig
27.05.2016, 18:03
Данке, аа...назад? Файл запустить в проводнике Икара...?

Lexx09
27.05.2016, 22:13
_Да.

dk-fsb
14.06.2016, 18:32
а можно по подробней что куда и как:dntknw:
а то я чего то не чего не понял
поставил икар от Lexx09 http://pccar.ru/showpost.php?p=353102&postcount=1
при установки поставил галку на это "Добавил возможность установки iCarDS в качестве оболочки. При установке значение параметра Userinit сохраняется в параметре Userinit.bak. При деинсталляции значение параметра Userinit становится равным %WINDIR%\System32\userinit.exe."
или надо еще что то делать. :blush:
:help:

dk-fsb
16.06.2016, 07:01
что не кто помочь не может?