You may be correct. I only will be having one at a time syncing, but there
may be many in the warehouse. I found that it is possible to identify which
one is in the cradle using VB, but that is not the language I'm using. There
is a tool in VB CEUtil.h that those guys can use which is exactly what I
need. Here's the code quoted from another forum:
Thank you for your help.
I found a method in the CEUtil.h Lib (API-Calls and constants).
' VBA-Modul in Access
Public Declare Function CeGetDeviceId Lib ceutil () As Long
Public Const CE_Services = Software\Microsoft\Windows CE Services
Private Function GetDeviceID() As String
Dim iddvc As Long
Dim dummy As String
Dim x, y
GetDeviceID =
iddvc = CeGetDeviceId()
Select Case iddvc
Case 0
GetDeviceID = NO
Case -1
GetDeviceID = GAST
Case Else
' Success ! Device-ID convert.
'
dummy = CStr(Hex(iddvc))
' The string must be 8 Bytes long
x = 8 - Len(dummy)
For y = 1 To x
dummy = 0 dummy
Next y
GetDeviceID = dummy
End Select
End Function
'
' Now find the Sync-Folder on the Desktop PC for the connected Pocket PC.
' ExistKey and GetSettingString are API-Calls from the Registry Lib
' to get informations (keys) from the registry.
'
Private Function GetSyncFolder() As String
Dim ID, Partner As String
If ExistKey(HKEY_CURRENT_USER, CE_Services) Then
ID = GetDeviceID
Select Case ID
Case NO
MsgBox No Pocket PC is connected.
GetSyncFolder =
Case GAST
MsgBox You are connected as a guest. No Sync-Folder.
GetSyncFolder =
Case Else
Partner = CE_Services \Partners\ ID \Services\Synchronization
'
If ExistKey(HKEY_CURRENT_USER, Partner) Then
GetSyncFolder = GetSettingString(HKEY_CURRENT_USER, Partner,
Briefcase Path)
MsgBox GetSyncFolder
Else
MsgBox Registry Key is not defined. Define a partnership.
GetSyncFolder =
End If
'
End Select
Else
MsgBox (Registry Key is not defined. Install ActiveSync.)
End If
End Function
_
From: nsbasic-ce@yahoogroups.com [mailto:nsbasic...@yahoogroups.com] On
Behalf Of Thomas Gruber
Sent: Wednesday, March 10, 2010 11:29 AM
To: nsbasic-ce@yahoogroups.com
Subject: Re: [nsbasic-ce] Re: Identification of PDA
Hello George,
if you have more than 2 mobile devices I think you will run into a
restriction in ActiveSync anyway: it can only store profiles for 2 different
mobile devices; if you connect a 3rd device, you either have to remove one
of the others, or connect it as a guest, in which case you can't
synchronize any files. At least that's my knowledge from the ActiveSync
versions I have used - does one of the experts in this forum know an
alternative?
To identify the different devices you could use the user defined device name
(not the serial number) that you can set in the control panel of the device,
or simply store a mini text file in a specific folder on the device that you
can read during synchronisation. The device name is the one that ActiveSync
uses to generate the main folder name as Joe described in his message, this
can be read by NSBasic/CE from the registry.
I think if you want to read from multiple devices (more than 2) you have to
read directly from the device, not by using ActiveSync to copy the files
from the device to the PC, but I must admit I don't know if that's possible.
Windows Explorer can do that, so it may be, but I don't know how to access
System Folders like Mobile Device from NSBasic.
Kind regards
Thomas
Am 08.03.2010 um 22:12PM schrieb George Walters:
Thanks, I think I could use this. At least I can cruise the folders and
display a list to the user with a name he/she can recognize.
-Original Message-
From: nsbasic...@yahoogro mailto:nsbasic-ce%40yahoogroups.com ups.com
[mailto:nsbasic...@yahoogro mailto:nsbasic-ce%40yahoogroups.com ups.com]
On
Behalf Of joespan123
Sent: Monday, March 08, 2010 3:48 PM
To: nsbasic...@yahoogro mailto:nsbasic-ce%40yahoogroups.com ups.com
Subject: [nsbasic-ce] Re: Identification of PDA
Hi,
Do not rely on the serial number to identify each device, as an example the
new iPAQ 212 devices return the same serial numbers.
To answer this question:
If I put that in a file on the PDA, it would get sync'ed to a folder on XP
and I don't know which folder it went to.
When the device syncs with the desktop and you have chosen File transfer,
all the files in the My Documents folder on the device will be sync'ed
over to the destop in the folder with name like:
C:\Documents and Settings\JoePC\My Documents\JOES My Documents
The JoePC is the login username of the desktop.
The JOES My Documents is the folder created by ActiveSync for the device
to perform file transfer.
The JOES is what you define on the device in the settings:
Start - Settings - About - Device ID
The Device ID here must be defined unqiuely for each device you synchroise
with the desktop, hence it is the way ActiveSync knows which device is which
if you sync multiple devices.
When you sync the device, it will transfer the files over into it's unique
folder.
Your application