Скрыть только файл desktop.ini, не пряча другие "скрытые файлы"?
Я хочу спрятаться desktop.ini
файлы, но сохраняют их функциональность¹, оставляя все остальные скрытые и защищенные системные файлы видимыми в Windows 8 и выше.
Причина: мне нравится видеть, что все происходит в моих папках -за исключением того раздражающего файла, который находится на рабочем столе, где должны быть только те вещи, которые я создал. Метод для выборочного сокрытия этого и, возможно, других необходимых, но раздражающих файлов как Thumbs.db
также было бы фантастическим.
Очевидное решение отключения настройки для просмотра скрытых файлов здесь не вариант.
Мне известен метод, который работает для более старых версий Windows, который просто включает параметр "Скрыть защищенные файлы операционной системы (рекомендуется)" только в папках рабочего стола, оставляя его отключенным для остальной системы. К сожалению, настройки папок стали глобальными в более поздних версиях, так что это не работает.
Другое известное мне решение - это полное предотвращение создания файлов desktop.ini: http://jamesisin.com/a_high-tech_blech/index.php/2010/09/nevermore-be-bothered-by-desktop-ini/
Это просто, но это убивает будущие настройки рабочего стола. После создания ключа изменения, которые вы вносите в рабочий стол, не сохраняются.
Интересно, если за все эти годы кто-нибудь придумал другое решение, где вы можете выборочно скрывать, а не удалять такие файлы, сохраняя их функциональность и не скрывая ничего другого?
Заранее спасибо!
"Под" функциональностью "я имею в виду отсутствие необходимости действий пользователя для сохранения изменений настроек рабочего стола, полностью автоматизированный способ, как desktop.ini
делает. IE: Требование к пользователю запускать файл.bat или.reg для отмены / повторного применения решения 2 при каждом изменении рабочего стола не автоматизировано, так что это не так.
4 ответа
Если вы не возражаете против использования стороннего программного обеспечения, я нашел одно работающее решение - использовать Wise Folder Hider ( https://www.wisecleaner.com/wise-folder-hider-free.html).
Этот конкретный инструмент (по крайней мере, на момент публикации) является бесплатным и выполняет скрытие desktop.ini
файлы без вмешательства в их функциональность (поэтому настройка рабочего стола сохраняется). Я не заметил никаких негативных побочных эффектов от его использования. Похоже, работает, зарегистрировав службу.
Просто установите и запустите инструмент и добавьте desktop.ini
файлов (в моем случае их было два на рабочем столе) по их полному пути к списку скрытых файлов. Это должно сделать работу.
Однако недостатком является то, что если вы хотите скрыть desktop.ini
или же Thumbs.db
файлы из любого места (не только с рабочего стола), этот инструмент на самом деле не справится, так как вам нужно скрывать файлы один за другим.
Кажется, проблема здесь в определениях слова "скрытый". Учитывая контекст вашего вопроса, я подозреваю, что файл desktop.ini по- прежнему скрыт в отношении Windows. "Но я вижу это". Да... но файл все еще установлен как скрытый. То, что вы сделали, перешли в настройки просмотра для проводника Windows и попросите его игнорировать, отображаются ли все еще скрытые файлы независимо от их скрытого состояния. Это представлено тем, что "скрытые" файлы являются полупрозрачными.
Это глобальная настройка, которая может быть отключена как глобально, так и глобально. На самом деле их два, один из которых применяется только к "системным файлам", таким как файлы desktop.ini и thumbs.db, найденные на вашем жестком диске. И другой, который применяется ко всем другим скрытым файлам. Который представляет один вариант прямо здесь... прекратите показывать все скрытые системные файлы и оставьте несистемные видимыми. Это то, что я делаю. В конце концов, вы вряд ли будете связываться с thumbs.db или desktop.ini в любом случае вручную (и, фактически, не должны).
Вы могли бы, я полагаю, изменить каждый отдельный скрытый системный файл в файловой системе компьютера, чтобы он больше не был скрыт, кроме desktop.ini на рабочем столе, а затем изменить глобальные параметры обратно скрыть. Но это довольно сложный способ скрыть один файл, и в следующий раз, когда вы создадите новую папку и добавите в нее некоторые изображения / музыку, Windows создаст новые файлы desktop.ini и / или thumbs.db.
Вы также можете скрыть все значки на рабочем столе (которые технически будут включать файл desktop.ini), щелкнув правой кнопкой мыши пустое место на рабочем столе, перейдя к просмотру и сняв флажок Show Desktop Icons
, Я занимаюсь этим уже десять лет и пока не пожалел об этом. Рабочий стол всегда был местом сброса случайного мусора для каждого приложения, и я вместо этого могу просто использовать функции меню "Пуск" / "Быстрый запуск" / "Прикрепить к панели задач" Windows.
Помимо них, вам понадобится какой-нибудь сторонний инструмент, который либо изменяет способ работы рабочего стола Windows (сомнительные шансы найти такой), либо заменяет / накладывает рабочий стол на его собственную замену (сомнительный шанс найти такой и может создать больше проблем, чем это решает).
Прошло немало времени, но Windows по-прежнему остается Windows со всеми ее маленькими вырезками из бумаги и отсутствием собственного способа борьбы с ними. Тем временем я использовал два решения. Оба требуют отключения функции «Выровнять значки по сетке» , что меня не очень радует, но все же...
Идея состоит в том, чтобы перетащить файлы за пределы экрана и оставить их там.
Способ 1, DesktopOK
DesktopOk — небольшое портативное приложение, позволяющее сохранять и восстанавливать макет рабочего стола. Это очень удобно, но не автоматизировано.
Чтобы использовать его для скрытия файлов, вы просто настраиваете свой рабочий стол, перетаскиваете файлы и сохраняете макет, восстанавливая его, когда макет по какой-либо причине изменяется, и запрашивает повторное появление файла Desktop.ini.
Способ 2, сценарий AHK
Поскольку я уже использую AutoHotkey для других настроек, это мое текущее решение. Этот автоматизирован, работает через заданные интервалы времени и может быть написан для автоматического перемещения файлов за пределы экрана каждый раз, когда меняется макет рабочего стола, но я не чувствовал, что это настолько важно, чтобы требовать перехвата только для отслеживания изменений. Мне он нравится больше, потому что он гибкий: он находит, в частности, файлы Desktop.ini и перетаскивает их, не затрагивая другие элементы рабочего стола.
Я настроил скрипт, который импортирует этот фрагмент, для загрузки при запуске, и, помимо запуска время от времени, его можно вызывать из контекстного меню, что для меня более чем достаточно.
Вот автономная версия скрипта. Это было основано на этом посте.
#NoEnv
#SingleInstance force
#Persistent
; =========================================================================================
; Tray Menu
Menu, Tray, NoStandard
Menu, Tray, Tip, % "Desktop.ini hide"
Menu, Tray, Add, &Hide desktop.ini, TrayMenu
Menu, Tray, Add
Menu, Tray, Add, &Reload App, TrayMenu
Menu, Tray, Add
Menu, Tray, Add, E&xit, TrayMenu
Menu, Tray, Default, &Hide desktop.ini
hideDesktopIni() ; Execute upon script load (startup)
; Run at intervals...
fn_hide := Func("hideDesktopIni").bind()
SetTimer, % fn_hide, % (0.5*60*60*1000) ; Time in ms, eg run every half hour
return ; End of auto-execute
; =========================================================================================
hideDesktopIni(x=6000, y=20) ; defaults...
{
Critical
static MEM_COMMIT := 0x1000, PAGE_READWRITE := 0x04, MEM_RELEASE := 0x8000
static LVM_GETITEMPOSITION := 0x1010, LVM_SETITEMPOSITION := 0x100F, WM_SETREDRAW := 0x000B
ControlGet, hwWindow, HWND,, SysListView321, ahk_class Progman
if !hwWindow ; #D mode
ControlGet, hwWindow, HWND,, SysListView321, A
IfWinExist ahk_id %hwWindow% ; last-found window set
WinGet, iProcessID, PID
hProcess := DllCall("OpenProcess" , "UInt", 0x438 ; PROCESS-OPERATION|READ|WRITE|QUERY_INFORMATION
, "Int", FALSE ; inherit = false
, "UInt", iProcessID)
if hwWindow and hProcess
{
ControlGet, list, list, Col1
VarSetCapacity(iCoord, 8)
pItemCoord := DllCall("VirtualAllocEx", "UInt", hProcess, "UInt", 0, "UInt", 8, "UInt", MEM_COMMIT, "UInt", PAGE_READWRITE)
Loop, Parse, list, `n
{
; Retrieve list of desktop items
SendMessage, %LVM_GETITEMPOSITION%, % A_Index-1, %pItemCoord%
DllCall("ReadProcessMemory", "UInt", hProcess, "UInt", pItemCoord, "UInt", &iCoord, "UInt", 8, "UIntP", cbReadWritten)
; Check name and move if matches
StringLower, deskIcon, A_LoopField
if (deskIcon = "desktop.ini") {
coordinates := (x & 0xFFFF) | ((y & 0xFFFF) << 16)
SendMessage, %WM_SETREDRAW%, 0, 0
SendMessage, %LVM_SETITEMPOSITION%, % A_Index-1, %coordinates%
SendMessage, %WM_SETREDRAW%, 1, 0
ret := true
}
}
DllCall("VirtualFreeEx", "UInt", hProcess, "UInt", pItemCoord, "UInt", 0, "UInt", MEM_RELEASE)
}
DllCall("CloseHandle", "UInt", hProcess)
return ret
}
; Custom tray menu
TrayMenu:
switch A_ThisMenuItem
{
case "&Hide desktop.ini":
hideDesktopIni()
return
case "&Reload App":
Reload
return
case "E&xit":
ExitApp
return
}
return
Если вы хотите спрятать его, УДАЛИТЕ его и создайте папку (или какой-либо другой файл) на рабочем столе с тем же именем. Windows не сможет создать его снова.
Этот вопрос для меня не имел значения до тех пор, пока около 2 месяцев назад, когда Explorer 1) не начал заставлять мой нижний ряд значков подниматься от края экрана до целого значения значков, РАЗРУШАЯ мой пользовательский макет и 2) ПЕРЕМЕЩАЛ файл desktop.ini в левый край экрана, где создаются новые файлы КАЖДЫЙ раз при обновлении рабочего стола. Ну, до тех пор, в течение многих лет, я помещал файл desktop.ini посреди путаницы, и он ОСТАЛОСЬ там. Спасибо, майкрософт, за то, что ВИНТЫ ВИНТОВАНЫ, КАК ВСЕГДА - боже, можем ли мы сказать, что ОКНА 8?
Так или иначе, как я уже сказал, я не заботился о сокрытии desktop.ini, пока Windows не обновил проводник и не заставил его появляться на левом краю все время. Решение состояло в том, чтобы создать свой собственный desktop.ini в виде папки и переместить его туда, куда я хочу, чтобы он мог оставаться там, как и сам файл.