CE 设备读取注册表的哪个分支?

2024-05-03

我的 Windows CE (Motorola/Symbol) 手持设备在 HKEY_CURRENT_USER 和 HKEY_LOCAL_MACHINE 下都有名为 \Software\Microsoft\Windows CE Services 的文件夹。

HKEY_CURRENT_USER 只有一项,“DeviceFriendlyName”;它is由设备读取,因为设备在 Windows 资源管理器中使用该键的值进行标记。

但是,HKEY_LOCAL_MACHINE 又如何呢?它包含更多键,例如 ExcludeExts、FileSyncPath、GuestOnly 等。

为什么注册表中两个不同的地方都有\Software\Microsoft\Windows CE Services,并且都被设备读取?

关于“ExcludeExts”键中的值是否存在问题(即:lnk、tmp、cdb、mdb、sdf、sqlite)在 HKEY_LOCAL_MACHINE 下受到尊重(我们不希望具有这些扩展名的文件在设备和它所连接的 PC 之间传输)。

通常情况下,它可以在我的机器上运行(sdf 文件不再在我的开发机器上同步),但测试部门表示它对他们不起作用 - sdf 文件仍然放置在“C:\ PC 上的“Rompecabeza 设备上的用户\rompecabeza\Documents\Documents”。

根据我收集的信息,注册表值可能不区分大小写,但为了确保我更改了以下代码:

    RegistryKey key =
Registry.LocalMachine.CreateSubKey(@"SOFTWARE\Microsoft\Windows CE 
Services");
    if (key != null)
    {
        key.SetValue("GuestOnly", 00000001, RegistryValueKind.DWord);
        key.SetValue("ExcludeExts", "lnk,tmp,cdb,mdb,sdf,sqlite",
RegistryValueKind.String);
    }

...对此:

    RegistryKey key =
Registry.LocalMachine.CreateSubKey(@"SOFTWARE\Microsoft\Windows CE
Services");
    if (key != null)
    {
        key.SetValue("GuestOnly", 00000001, RegistryValueKind.DWord);
        key.SetValue("ExcludeExts",
"lnk,tmp,cdb,mdb,sdf,sqlite,LNK,TMP,CDB,MDB,SDF,SQLITE",
RegistryValueKind.String);
    }

不过,正如所指出的,它已经在我的机器上运行了,无论如何,甚至在将扩展名大写之前(可能是多余的)。

我们正在使用各种设备/操作系统版本;具体来说,我们支持 Symbol 3090 和 Motorola 3190 设备;前者安装了CE 5.0.1400,后者安装了6.0.0

但同样,这两个设备都可以在我的机器上工作 - 没有 sdf 文件从手持设备同步到我的开发机器上的 PC(IOW,它按照我想要的方式工作)。

所以:我应该这样做:

    RegistryKey key2 = 
Registry.CurrentUser.CreateSubKey(@"SOFTWARE\Microsoft\Windows 
Services");
    if (key != null)
    {
        key.SetValue("GuestOnly", 00000001, RegistryValueKind.DWord);
        key.SetValue("ExcludeExts"
|"lnk,tmp,cdb,mdb,sdf,sqlite,LNK,TMP,CDB,MDB,SDF,SQLITE
RegistryValueKind.String);
    }

...(用“CurrentUser”替换“LocalMachine”)还是多余的(将这些键/值写入 HKEY_LOCAL_MACHINE 和 HKEY_CURRENT_USER)?

以下是不适用于测试人员的手持设备 (HKEY_LOCAL_MACHINE) 中的当前条目:

UPDATE

问题可能根本不是注册表设置;而是注册表设置。看this https://stackoverflow.com/questions/28334423/how-can-i-programmatically-prevent-the-pc-connected-to-a-handheld-device-from-fi似乎是问题所在。

UPDATE 2

越来越好奇:我现在正在查看的设备上的注册表中实际上有多个“Windows CE”文件夹,即:

HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows CE Services <= It has one registry key, "DeviceFriendlyName"
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows CE Services <= several (7) registry keys
HKEY_LOCAL_MACHINE\Windows CE Tools <= It has one registry key, "Platform"
HKEY_LOCAL_MACHINE\Windows CE Services <= it's empty

这真的有必要吗?为什么 Windows 注册表文件夹像秋季暴风雨后的枫叶(而不是曲棍球队)一样散落一地?

UPDATE 3

See this https://stackoverflow.com/questions/28350937/why-does-the-handheld-device-ignore-the-filesyncpath-registry-keys-value.


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CE 设备读取注册表的哪个分支? 的相关文章

随机推荐