В основном это то же самое, что и в Windows, но когда вы пытаетесь установить ассоциации файлов с программой, которая живет внутри папки с пробелами в ней, вам нужно получить "короткое" имя этой папки. В обычных окнах я использую это:
[System.Runtime.InteropServices.DllImport( "Kernel32.dll" )] частный статический внешний интерфейс GetShortPathName (строка lpszLongPath, [Out] StringBuilder lpszShortPath, uint cchBuffer);
Итак, мой вопрос становится, знает ли кто-нибудь о встроенной функции, которую я могу использовать для замены указанной выше функции, или знаю, что эта функция делает, чтобы я мог воссоздать ее на С#.
Windows CE, являющаяся базой WinMo, не использует имена файлов 8.3 для чего-либо, поэтому я уверен, что вам не нужно использовать их для определения ассоциаций файлов.
Кто сказал, что вам нужен короткий путь для установки ассоциации файлов в обычных Windows? Я просто пробовал это очень быстро, и у меня не было проблем с добавлением ключей в реестр с пробелами. Затем я дважды проверял реестр и, конечно же, там есть пробелы. Тип файла, который я ассоциировал с программой, запускается просто отлично, и программа живет в каталоге с несколькими пробелами повсюду.