Я создаю приложение для Windows в vb.net (vb 2010). Одна часть приложения отображает существующие хранители экрана и предоставляет пользователю настройки хранителя экрана, такие как: хранитель экрана, время ожидания, пароль и т. Д. При нажатии на кнопку существующие хранители экрана находятся в папке «c: \ windows \ system32». отображаются в списке. (Приложение работает с правами администратора)
Приложение показывает разные результаты (заставки) при запуске в Win-7 и Win-10, хотя код один и тот же.
Чтобы просмотреть список существующих заставок, я использую эту команду:
dir c:\windows\system32\*scr /b
Выходные данные затем отображаются в списке.
Когда приложение запускается в Windows-7, вывод будет:
Bubbles.scr
Mystify.scr
PhotoScreensaver.scr
Ribbons.scr
scrnsave.scr
ssText3d.scr
Однако, когда то же самое выполняется в Windows-10, вывод будет:
PhotoScreensaver.scr
scrnsave.scr
Удивительно, но когда я запускаю команду (dir, где & for) из командной строки cmd на Win-7 и 10, я получаю одинаковый результат.
Bubbles.scr
Mystify.scr
PhotoScreensaver.scr
Ribbons.scr
scrnsave.scr
ssText3d.scr
Также я использую код vb.net:
Dim oProcess As New Process()
Dim oStartInfo As New ProcessStartInfo("cmd.exe", " /c dir c:\windows\system32\*scr /b")
oStartInfo.UseShellExecute = False
oStartInfo.RedirectStandardOutput = True
oProcess.StartInfo = oStartInfo
oProcess.Start()
ListBox1.Items.AddRange(oProcess.StandardOutput.ReadToEnd.Split(New String() {Environment.NewLine}, StringSplitOptions.None))
Я также попробовал эти команды:
Win-7:
where "c:\windows\system32\:*scr"
Output:
c:\Windows\System32\Bubbles.scr
c:\Windows\System32\Mystify.scr
c:\Windows\System32\PhotoScreensaver.scr
c:\Windows\System32\Ribbons.scr
c:\Windows\System32\scrnsave.scr
c:\Windows\System32\ssText3d.scr
Win-10:
where "c:\windows\system32\:*scr"
Output:
c:\Windows\System32\PhotoScreensaver.scr
c:\Windows\System32\scrnsave.scr
Win-7:
for /f "skip=5 tokens=1,2,3,4,5 delims= " %i in ('dir c:\windows\system32\*.scr ^| FINDSTR /R /I /V "bytes"') do @echo %m
Output:
Bubbles.scr
Mystify.scr
PhotoScreensaver.scr
Ribbons.scr
scrnsave.scr
ssText3d.scr
Win-10:
for /f "skip=5 tokens=1,2,3,4,5 delims= " %i in ('dir c:\windows\system32\*.scr ^| FINDSTR /R /I /V "bytes"') do @echo %m
Output:
PhotoScreensaver.scr
scrnsave.scr
Ожидается вывод приложения при запуске в Win-7 и Win-10 в виде:
Bubbles.scr
Mystify.scr
PhotoScreensaver.scr
Ribbons.scr
scrnsave.scr
ssText3d.scr
Спасибо