Tuesday, September 11, 2007

Srego CE ToolPack Command-Line Version 3.0.0.7 is Available

The Srego CE ToolPack Command-Line tool version 3.0.0.7 is Available.

Visit the Srego Support page to download.

-----------
03.00.00.07 - 09/11/07
-----------
- FIX - ceCD - putting quotes around a path caused the path to not be found. Quotes are not ignored.


- FIX - ceCD - using the parent directory token (..) or the current directory token (.) in a new current directory would work, but it did not resolve the token out of the path.

- NEW - ceReg - Support for REG_MULTI_SZ types has been added.



Sunday, August 19, 2007

Using GetSchemaTable to get Info about Columns in VB.NET

Here is a simple example in VB.NET that uses GetSchemaTable to retrieve information about the columns returned from a SQL Select statement. If you say "Select * from table", this method is useful for learning what information you will have returned. For a C# example and more information on the topic, look here.

Dim myConn As New OleDbConnection(ConnectionString)

Dim sql As String = "Select * from Table_ABC"

Dim myCommand As New OleDbCommand(sql, myConn)

myConn.Open()

Dim objDR As OleDbDataReader

objDR = myCommand.ExecuteReader(CommandBehavior.CloseConnection)


' Retrieve column schema into a DataTable.
Dim schemaTable As DataTable
schemaTable = objDR.GetSchemaTable()

' For each field in the table...
For Each myField As DataRow In schemaTable.Rows

' For each property of the field...
For Each myProperty As DataColumn In schemaTable.Columns

'Display the field name and value.
Debug.WriteLine(myProperty.ColumnName + _
" = " + myField(myProperty).ToString())

Next

Debug.WriteLine("")

Next

Wednesday, August 15, 2007

ceReg now supports REG_MULTI_SZ

With version 3.0.0.7 of the Srego CE Toolpack Command-Line utilities, the ceReg utility supports reading and writing of the Multiple String type (REG_MULTI_SZ) in the device's registry. The REG_MULTI_SZ type allows a list of delimited strings to be stored in one value. Mimicking the Reg command on the desktop, multiple strings are specified with a "\0" delimiter:

phone\0fax\0mail

In the Remote Registry Editor, the Multi String value looks like:




Reading a Multi String value is also similar to the desktop's Reg command:

ceReg /r /1 /sub software\srego\test /name testValue

ceReg - version 03.00.00.07
(c) Srego, Inc - 2007

[HKEY_CURRENT_USER\software\srego\test]

"testValue"="fax\0mail\0phone\00

Monday, July 09, 2007

Srego CE ToolPack Command-Line Version 3.0.0.6 is Available

The Srego CE ToolPack Command-Line tool version 3.0.0.6 is Available.

Visit the Srego Support page to download.

-----------

03.00.00.06 - 07/08/07
-----------
- NEW - ceTouch - The /rf option was added to allow a timestamp to be retrieved from an existing file.


- NEW - ceTouch - Additional error information is provided if a file's timestamp cannot be updated.

- CHG - ceDir - The default timestamp is now the last written time instead of the created timestamp.

- FIX - cePush, cePull - Better error handling when invalid options are given.

- FIX - cePush, cePull - Now support the /F flag to copy a file only if it already exists on the destination.

Sunday, July 01, 2007

Srego ceCmd version 1.0.0.11 is Available (Beta Extended)

The beta of the Srego ceCmd application has been updated.

The beta period has also been extended to the end of the year.

-----------
01.00.00.11 - 07/01/07
-----------

- NEW - Extended Expiration Timeout.

-----------
01.00.00.10 - 06/20/07
-----------

- FIX - the CD command was not properly handling paths that included ..

- FIX - the DIR command did not handle a path if it ended in ..

Thursday, June 21, 2007

Installing .CAB files on a Device with the Command-Line Tools or the ActiveX control

With the Srego CE Toolpack Command lines tools, there are two way to install a cab file on the device:

1) The cePush command has a /deploy flag. If this flag is specified and you are pushing a .cab file to the device, it will automatically be installed after it is copied to the device.

cePush sample.cab /deploy

2) the ceStart utility can also be used. If the .cab file is already on the device, you can specify something like this to activate the .cab file on the device:

ceStart \windows\wceload.exe "\my documents\sample.cab"


If you are using the Srego CE Toolpack ActiveX control, you will use the StartApplicationEx method as shown below with VB6 sample code:


Dim stat As Boolean

Dim parameters As String

parameters = Chr(34) + "\my documents\PGTViewer_WinMobile_7004.CAB" + Chr(34)

stat = SregoCETPx1.StartApplicationEx("\windows\wceload.exe", parameters)

There are two keys to making the StartApplicationEx correctly activate the .cab file. The application parameter must be “\windows\wceload.exe” and the parameters must be the path to the .cab file. If the path has spaces in it, you must put quotes around the path as shown in this example.

Sunday, June 10, 2007

ceAttrib added to the Command-Line Srego Toolpack

With version 3.0.0.5 of the Srego CE Toolpack Command-Line utilities, a new utility called ceAttrib has been added.

ceAttrib

The ceAttrib utility is run on a desktop computer to set file attributes on the connected device.

The ceAttrib utility will accept wildcards in the path name (* and ?) to get or set file attributes on more than one file.

There are 4 attributes the ceAttrib utility can be used to change: ReadOnly, Archive, Hidden, and System.

The ceAttrib utility can also be used to see what attributes are set on a file. It will show ReadOnly, Archive, Hidden, System, and Directory.

The ceAttrib utility will use the current directory (set by ceCD) and does require quotes around paths with spaces.

*** Note: Some attributes cannot be changed on certain platforms. For example, the System attribute cannot be changed on a Windows Mobile 5.0 or Windows Mobile 6 device.


Usage:

ceAttrib - version 03.00.00.05
(c) Srego, Inc - 2007

Usage: ceAttrib [path] [/?] [+R -R] [+A -A] [+S -S] [+H -H]

[path] Specifies file(s) to touch. Wildcards are permitted.

[/?] Display usage.

[+R] Set Read-Only Attribute
[-R] Clear Read-Only Attribute

[+A] Set Archive Attribute
[-A] Clear Archive Attribute

[+S] Set System Attribute
[-S] Clear System Attribute

[+H] Set Hidden Attribute
[-H] Clear Hidden Attribute

Examples:

To show the file attribute for a single file:

ceAttrib gps.log

ceAttrib - version 03.00.00.05
(c) Srego, Inc - 2007

Current Device Directory: \My Documents

A \My Documents\gps.log

Files: 1

To show more than one file’s attributes, you can use wildcards:

ceAttrib *.*

ceAttrib - version 03.00.00.05
(c) Srego, Inc - 2007

Current Device Directory: \My Documents

A \My Documents\gps.log
RA \My Documents\PGTViewer_WinMobile_7004.CAB
A \My Documents\MadisonCty.gtx

Files: 3


To add the Read Only attribute to a file:

ceAttrib gps.log +R

ceAttrib - version 03.00.00.05
(c) Srego, Inc - 2007

Current Device Directory: \My Documents

RA \My Documents\gps.log

Files Updated: 1



To remove the Read Only attribute to a file:

ceAttrib gps.log -R

ceAttrib - version 03.00.00.05
(c) Srego, Inc - 2007

Current Device Directory: \My Documents

A \My Documents\gps.log

Files Updated: 1

Srego CE ToolPack Command-Line Version 3.0.0.5 is Available

The Srego CE ToolPack Command-Line tool version 3.0.0.5 is Available.

Visit the Srego Support page to download.

-----------
03.00.00.05 - 06/10/07
-----------

- NEW - ceTouch - The /t options allows a specific time to be specified.


- FIX - ceStart - Was not processing parameters correctly.

- NEW - ceAttrib - New utility added.

-----------
03.00.00.04 - 05/16/07
-----------

- FIX - cePush, cePull - both has a problem with the /D flag because of the 2 second granularity of the device timestamp. The utilities were changed to allow a 1 second window around the timestamps being compared.

- FIX - ceTouch - was saying that it could not update any file.

Saturday, June 09, 2007

Srego ceCmd version 1.0.0.9 is Available

The beta of the Srego ceCmd application has been updated.

-----------
01.00.00.09 - 06/09/07
-----------
- NEW - Start command added.
- FIX - Fixes to the CD command.


-----------
01.00.00.08
------------
- FIX - Copying files from the root on the device would give an error that the source could not be found.
- FIX - The CD command did not work correctly in all cases.

Thursday, May 17, 2007

Srego CE ToolPack Command-Line Version 3.0.0.4 is Available

The Srego CE ToolPack Command-Line tool version 3.0.0.4 is Available.

Visit the Srego Support page to download.

-----------
03.00.00.04 - 05/16/07
-----------

- FIX - cePush, cePull - both has a problem with the /D flag because of the 2 second granularity of the device timestamp. The utilities were changed to allow a 1 second window around the timestamps being compared.

- FIX - ceTouch - was saying that it could not update any file.



Friday, April 13, 2007

Changes in ActiveSync 4.5 Break CopyDB and ceDBCopy.exe

Microsoft states in its description of ActiveSync 4.5:
  • Conversion of database files for use on a mobile device is not supported by ActiveSync 4.5. On previous versions, this feature was limited to devices running Windows Mobile software for Pocket PC 2003 and earlier.
This change breaks the CopyDB method in the Srego CE ToolPack ActiveX control and the ceDBCopy.exe utility in the Srego CE ToolPack Command-Line Tools.

Wednesday, April 11, 2007

Srego CE ToolPack ActiveX version 1.0.0.60 is Available



Srego CE ToolPack ActiveX version 1.0.0.60 is Available.

Visit the Srego Support page to download.

-----------
01.00.00.60 - 04/11/07
-----------

- NEW - To better support non VB 6 platforms, two methods were added to create and maintain a ByteArray buffer (ByteBufferClear and ByteBufferAddValue). A new version of the RegSetBinaryValue was added called RegSetBinaryValueFromByteBuffer which does not require the passing of the byte array and simplifies its use for other development platforms.
- NEW - New Methods:
  • boolean ByteBufferClear()

  • boolean ByteBufferAddValue(long value)

  • boolean RegSetBinaryValueFromByteBuffer(long key, BSTR subKeyName, BSTR valueName);

Friday, March 30, 2007

The Srego ceCmd utility (CE Command Prompt) is Available for Testing




The Srego ceCmd is a Command-Prompt Window similar to the Windows Command Prompt. It is installed and runs on the desktop, but it manipulates a connected Windows Mobile Device. The ceCmd uses RAPI to communicate with the connected device and no software needs to be installed on the device itself. The utility supports devices running Pocket PC, Windows Mobile, Smartphone, and CE.NET. On the Srego support web page, you can download a trail version of the software or read the product documentation

The Srego ceCmd application is still in beta and is not yet complete, but it does contain a significant amount of functionality. The idea behind ceCmd is to provide another style of input for a connected Windows CE device. The ceCmd is not exactly like a Windows Command Prompt because there are several things about the Windows Command Prompt that can be improved upon (especially when applied to a connected device). However, if you are familiar with using a Windows Command Prompt, the ceCmd should feel familar. The basic functionality of ceCmd is described below:

File Info and Manipulation Commands

  • DIR - Directory Information
  • COPY – Copy files on the device, from the device to the desktop, from the desktop to the device
  • DEL, ERASE – Delete files on the device
  • MKDIR, MD - Create Directories on the device
  • RMDIR, RD - Remove Directories on the device
  • CD , CHDIR – Change the current directory on the device

Command History

  • Use the Up/Down Arrow Keys to traverse the command history
    Command History Dialog to view and manipulate command history (View/Command History)
  • Command history is persistent between sessions


Drag and Drop File Copying

  • Drag and Drop files on the Srego ceCmd Application window and they will be copied to the device’s current directory.

Device Information

  • INFO – Get information about the connected device:
    Device Id, Available and Total Memory, Available and Total Storage Space, Battery Status, AC Line Status, Processor Type
  • VER – Displays the connected device’s Windows CE Version.

Miscellaneous Commands and Features

  • HELP – Get help on individual commands.
  • EXIT – Exit the Srego ceCmd application.
  • CLS – Clear the display buffer.
  • Connection Status indicator

Wednesday, March 28, 2007

Srego CE ToolPack ActiveX version 1.0.0.59 is Available.

Visit the Srego Support page to download.

-----------
01.00.00.59 - 03/28/07
-----------

- NEW - New Methods:
  • boolean GetCurrentRecPropStringAlt(long pos, VARIANT* data, VARIANT* size);
  • BSTR SetLocale(long category, BSTR locale);


-----------
01.00.00.58 -
-----------

- CHG - The GetCurrentRecPropBlob will now return LPWSTR types as a byte array.~

Srego CE Toolpack Command-Line version 3.0.0.3 is Available

The Srego CE ToolPack Command-Line tool version 3.0.0.3 is Available.

Visit the Srego Support page to download.

-----------
03.00.00.03 - 03/28/07
-----------

- NEW - the /Deploy flag was added to cePush. This flag allows files, such as a .cab file, to be immediately executed after it has been copied to the device.

Thursday, January 25, 2007

Motivation behind the Srego CE ToolPack Command-Line Utilities

The command-line tools that make up the Srego CE Toolpack have fairly long history. Their development was inspired by the need to easily move files back and forth between a desktop computer and a connected Windows CE Device (Pocket PC, Window Mobile). Of course, there are existing ways to accomplish this task. The File Explorer (with the help of AciveSync) provides a nice GUI interface that fully integrates the desktop files with the device’s files all through drag-and- drop manipulation. File Explorer provides very effective ad hoc file manipulation and an easy way to explore files on the device. The File Explorer’s interface is ideal for these tasks, but it is not very good at tasks that will be repeated often, tasks that may include a complex set of actions, tasks that will be scheduled, or any task that is automating some workflow. In the desktop world, we would simply write a script to perform these tasks and leave the File Explorer to what it does best. How do you do perform these tasks on a device? This problem posed an in-house question that needed to be solved for developing and testing applications written for handheld devices. The need to frequently move data files back and forth between the desktop and device resulted in cePush and cePull. In development mode, test files and result files could be shuttled between the desktop and device very easily. At a Command Prompt, the command is entered once, then DOS Key (the up and down arrow traversal of the command history or the F7 command history menu) is used to perform the file moves over and over. For more complex tasks, a .bat file can be created to perform a set of transfers. The batch file can even employ some logic and can be scheduled. The original cePush and cePull were very simple; they had no wild card support and no options. There were later enhanced to provide equivalent functionality found in the Command Prompt's Copy command.

The in-house success with cePush and cePull commands led to the need to create even more utilities that would remove directories on the device (ceMkdir, cdRmdir), delete files on the device (ceDel), and simply see what files are on the device on the device (ceDir). Then the need for moving and copying files on the device to the device (versus from the device to the desktop) was needed (ceMove, ceCopy).

The cePush and cePull utilities were updated to support more synchronization operations (checking time and dates to see if an up-to-date file is already present). With this functionally a new utility was added to update a files timestamp (ceTouch, similar to the UNIX touch utility). The ceJump utility was added to streamline editing files on the device.
With all of these utilities available, it became obvious that the one thing missing from the Command Prompt style-environment was the concept of a current directory. The ceCD utility was added to implement this concept and all of the utilities were modified to utilize a current directory concept which often reduces the lengthy paths that need to be typed (for example \my documents was a commonly typed path for the device and always requires quotes, setting this path to be the current simplifies the command).

The last utility added to the toolpack was the ceReg utility which allows registry modifications from the desktop command-line. It is a simplified version of the Reg utility on the desktop, but it still allows the creation, query, and updating of registry entries on the device.

Tuesday, January 23, 2007

Working with .cdb files created from .mdb files

When you convert a .mdb file to a .cdb file (when you copy it to the device with ActiveSync), there are several additional tables that get created:

MSysTables
MSysFields
MSysIndexes
MSysProcs

You can use the two of these to get Metadata from the .cdb file:

MSysTables
TableName
TableId
TableFlags (0 for user, 3 for system)

MSysFields
TableId
FieldName
FieldId
Len
Type (2=INT16, 18=UINT16, 3=INT32, 19=UINT32, 64=FileTime, 1=String, 65=Blob, 11=BOOL, 5=DOUBLE)


Here are two sample functions to get the meta data from the tables:

Function GetTableListFromCDB(cdbFile As String, _
tableId() As Long, _
tableName() As String, _
tableFlags() As Long, _
tableCount As Integer) As Boolean

tableCount = 0

' Mount a Database Volume
Dim filename As String
Dim volumeId As String

volumeId = _


SregoCETPx1.MountDatabaseVolume(cdbFile, OPEN_EXISTING)

If volumeId = "" Then
MsgBox "Unable to mount database volume"
GetTableListFromCDB = False
Exit Function
End If

' Open Database in mounted Volume
Dim dbHandle As Long
dbHandle = SregoCETPx1.OpenDatabaseByName(volumeId, _
"MSysTables", 0, CEDB_AUTOINCREMENT)

If dbHandle <> 0 Then ' make sure database was opened

' read each record
While SregoCETPx1.ReadDatabaseRecord(dbHandle)


tableName(tableCount) = _

SregoCETPx1.GetCurrentRecPropValue(0)

tableId(tableCount) = _

SregoCETPx1.GetCurrentRecPropValue(1)


tableFlags(tableCount) = _

SregoCETPx1.GetCurrentRecPropValue(2)

tableCount = tableCount + 1

Wend

SregoCETPx1.CloseDatabase dbHandle

End If

SregoCETPx1.UnmountDatabaseVolume volumeId

GetTableListFromCDB = True

End Function


Function GetFieldListFromCDB(cdbFile As String, _

tableId As Long, fieldName() As String, _

fieldId() As Long, fieldLen() As Long, _

fieldType() As Long, _

fieldCount As Integer) As Boolean

fieldCount = 0

' Mount a Database Volume
Dim filename As String
Dim volumeId As String

volumeId = _

SregoCETPx1.MountDatabaseVolume(cdbFile, _

OPEN_EXISTING)

If volumeId = "" Then
MsgBox "Unable to mount database volume"
GetFieldListFromCDB = False
Exit Function
End If

Dim recTableId As Long

' Open Database in mounted Volume
Dim dbHandle As Long
Dim id As Long
dbHandle = SregoCETPx1.OpenDatabaseByName(volumeId, _
"MSysFields", 0, CEDB_AUTOINCREMENT)

If dbHandle <> 0 Then ' Success


' read each record
While SregoCETPx1.ReadDatabaseRecord(dbHandle)

recTableId = SregoCETPx1.GetCurrentRecPropValue(0)

If recTableId = tableId Then

fieldName(fieldCount) = _

SregoCETPx1.GetCurrentRecPropValue(1)

id = SregoCETPx1.GetCurrentRecPropValue(2)
fieldId(fieldCount) = ShiftRight(id, 24)

fieldLen(fieldCount) = _

SregoCETPx1.GetCurrentRecPropValue(3)
fieldType(fieldCount) = _


SregoCETPx1.GetCurrentRecPropValue(4)

fieldCount = fieldCount + 1

End If

Wend

SregoCETPx1.CloseDatabase dbHandle

End If


SregoCETPx1.UnmountDatabaseVolume volumeId

GetFieldListFromCDB = True

End Function


' Power2 from http://search.devx.com/
Function Power2(ByVal exponent As Long) As Long
Static res(0 To 31) As Long
Dim i As Long

' rule out errors
If exponent <> 31 Then Err.Raise 5

' initialize the array at the first call
If res(0) = 0 Then
res(0) = 1
For i = 1 To 30
res(i) = res(i - 1) * 2
Next
' this is a special case
res(31) = &H80000000
End If

' return the result
Power2 = res(exponent)

End Function

' ShiftRight from http://search.devx.com/
Function ShiftRight(ByVal value As Long, ByVal times As Long) As Long
' we need to create a mask of 1's corresponding to the
' digits in VALUE that will be retained in the result
Dim mask As Long, signBit As Long

' return zero if too many times
If times >= 32 Then Exit Function
' return the value if zero times
If times = 0 Then ShiftRight = value: Exit Function

' evaluate the sign bit in advance
signBit = (value < times="31" mask =" Not" value =" (value" shiftright =" (value">

To use these function, you do something like this:

List1.Clear

Dim tableName(100) As String
Dim tableId(100) As Long
Dim tableFlags(100) As Long ' 0-user, 3-system
Dim tableCount As Integer

Dim fieldId(100) As Long
Dim fieldName(100) As String
Dim fieldLen(100) As Long
Dim fieldType(100) As Long
Dim fieldCount As Integer

Dim i As Integer
Dim j As Integer

tableCount = 0

Dim cdbFile As String

cdbFile = "\my documents\gps.cdb"

If GetTableListFromCDB(cdbFile, tableId, tableName, _
tableFlags, tableCount) Then

For i = 0 To tableCount - 1
' only show user tables
If tableFlags(i) = 0 Then


List1.AddItem "Table: " + tableName(i) + _
" ID: " + Str(tableId(i))

If GetFieldListFromCDB(cdbFile, tableId(i),

fieldName, fieldId, _

fieldLen, fieldType, _

fieldCount) Then

For j = 0 To fieldCount - 1

List1.AddItem (" " + Str(fieldId(j)) + _
" - " + fieldName(j) + " Type: " + _
Str(fieldType(j)) + _
" Len: " + Str(fieldLen(j))) + _
" ID: " + Str(fieldId(j))

Next

List1.AddItem ""
End If
End If
Next
End If

The output looks like this:


This code sample gets a list of all user tables in the .cdb and display them in a listbox along with each field in that table. The key things here are the TableId and the FieldId. These number are what tie the metadata to the real records in the table.

If you are really going to read a real table, you would do something like the following. My sample .cdb file is gps.cdb and it has a table in it called note.

' Mount a Database Volume
Dim filename As String
Dim volumeId As String

volumeId = SregoCETPx1.MountDatabaseVolume(cdbFile, OPEN_EXISTING)

If volumeId = "" Then
List1.AddItem "Unable to mount Volume: " + cdbFile
Exit Sub
End If

' Open Database in mounted Volume
Dim dbHandle As Long
dbHandle = SregoCETPx1.OpenDatabaseByName(volumeId, _
"note", 0, CEDB_AUTOINCREMENT)

If dbHandle <> 0 Then ' make sure database was opened successfully

Dim recCount As Integer
recCount = 0

While SregoCETPx1.ReadDatabaseRecord(dbHandle) ' read each record

Dim pCount As Long
Dim recId As Long

recId = SregoCETPx1.GetCurrentRecId
pCount = SregoCETPx1.GetCurrentRecPropCount

List1.AddItem Str(recCount) + " - RecId: " + _
Str(recId) + " PropCnt: " + Str(pCount)


For i = 0 To pCount - 1 ' display each property in record

Dim pId As Long
Dim pVal As Variant
Dim pLen As Long
Dim pFlags As Long
Dim pType As Long

pId = SregoCETPx1.GetCurrentRecPropId(i)
pVal = SregoCETPx1.GetCurrentRecPropValue(i)
pLen = SregoCETPx1.GetCurrentRecPropLen(i)
pFlags = SregoCETPx1.GetCurrentRecPropFlags(i)
pType = SregoCETPx1.GetCurrentRecPropType(i)

Dim tempstr As String


Select Case pType

Case CEVT_I4, CEVT_I2, CEVT_UI4, CEVT_UI2, CEVT_R8

tempstr = Val(pVal)

Case CEVT_LPWSTR

tempstr = pVal

Case CEVT_BOOL

If pVal Then tempstr = "True" Else tempstr = "False"

Case CEVT_BLOB

tempstr = SregoCETPx1.GetCurrentRecPropBlobStr(i)


Case CEVT_FILETIME

tempstr = CStr(pVal)

Case Else

tempstr = "***" ' unhandled type

End Select

List1.AddItem (" " + Str(pId) + " = " + tempstr)

Next



recCount = recCount + 1

Wend

SregoCETPx1.CloseDatabase dbHandle

End If

SregoCETPx1.UnmountDatabaseVolume volumeId


The output looks like this:


The property id of each field in the record can be looked up in the FieldId list populated by the previous calls.

Thursday, January 11, 2007

ceJump

The ceJump utility is one of the more arcane tools in the Srego CE ToolPack. The tool is arcane because it is not obvious from its name what it does and there is no Command Prompt equivalent for the desktop. This posting’s goal is to help clarify what this tool is for and help users get more out of the Srego CE ToolPack Command-Line tools.

The concept behind ceJump is simple. It provides a quick way to edit a file located on the connected device from the desktop. The same tasks can be accomplished with other tools in the CE ToolPack. It may be enlightening to see what the process is using the other tools to better understand what ceJump actually does.

Let’s say we have a file on the device called addprop.txt. This file is located in the \my documents directory and is a simple text file. I need to edit the entries in this file fairly frequently to tune the application using it. Here is the process with using ceJump:

cepull "\my documents\addprop.txt" c:\temp\addprop.txt

notepad c:\temp\addprop.txt

cepush c:\temp\addprop.txt "\my documents\addprop.txt"

With ceJump, the process is much simpler:

ceJump "\my documents\addprop.txt"

If the current directory on the device (set with ceCD.exe) is \my documents, then you could simply say:

ceJump addprop.txt

The ceJump utility will automatically pull the specified file from the connected device to the system temp directory on the desktop, then launches the associated application via the operating system shell. When the user exits the launched application, the file is checked to see if it had been modified. If the file had been modified it is automatically pushed back to the connected device. The utility “Jumps” over all of the steps for moving the file back and forth between the device and the desktop. Granted, you must be editing a file that the desktop shell has an association for, but your productivity with working with these files can be greatly increased.