locked
"\Windows\wceload.exe", "/noaskdest/noui ? RRS feed

  • Question

  • Hi,
    I am installing cab file of my application using wceload.exe.
    While my application already exist it gives message "My application is already installed.Reinstall?
    I should not get this message and the application should silently installed.I tried using Rapi class of
    Opennetcf.Desktop.Communication as shown below.

     

    Dim m_rapi As New RAPI
    m_rapi.CreateProcess("\Windows\wceload.exe", "/noaskdest/noui \Windows\MyApp_PPC.ARMV4.CAB")

    But still i am getting the message .So how can i prevent it?

    Regards,
    Senthil.

    Tuesday, November 22, 2005 4:05 AM

Answers

  • Then do the registry "hack" :)

    There is a registry key "Instl" for every application that is installed. Set it to "0". This will make the OS believe that it's not installed.

    The key can be found in

    HKEY_LOCAL_MACHINE\SOFTWARE\Apps\Provider ApplicationName

    Then try to run wceload.exe

    Øystein

    Monday, November 28, 2005 12:27 PM

All replies

  • If that's exact command you're using there's a space missing between /noaskdest and /noui. Another key to try is /silent.

    Or, consider checking if your application is already installed and remove it if found.

     

    Tuesday, November 22, 2005 11:26 PM
  • hi Ilya Tumanov,

     

    I tried by leaving space between noaskdest and noui

    like

    m_rapi.CreateProcess("\Windows\wceload.exe", "/noaskdest   /noui    \Windows\MyApp_PPC.ARMV4.CAB")

    and i tried /silent
    but still i am getting the message.So any one know how to solve this,
    other than removing the application if already installed .

    Wednesday, November 23, 2005 11:57 AM
  • There is a workaround for this. Try removing the registry key of the app you want to reinstall from HKLM\Software\Apps.
    This way you don't have to remove the actual application, but wceload will think that the application hasn't been installed yet and won't bother you with the reinstall message anymore.
    Wednesday, November 23, 2005 3:51 PM
  • What kind of platform are you running on? If it's a WM 5.0 or Smartphone device. Use:

    wceload.exe "cabfile.cab" /silent

    /noask /noui is for Pocket PC 2003 and older....Notice that "silent" is in placed in the end....

    Does this help you?

    Thursday, November 24, 2005 9:20 PM
  • I tried in both pocket pc with WM and pocket pc 2003.I am getting the same message.
    Friday, November 25, 2005 8:30 AM
  • Then do the registry "hack" :)

    There is a registry key "Instl" for every application that is installed. Set it to "0". This will make the OS believe that it's not installed.

    The key can be found in

    HKEY_LOCAL_MACHINE\SOFTWARE\Apps\Provider ApplicationName

    Then try to run wceload.exe

    Øystein

    Monday, November 28, 2005 12:27 PM
  • I set registry key "Instl" to "0".Now i am not getting the message.
    Thanks for your help.
    Tuesday, November 29, 2005 4:43 AM
  • Hello,

    This information helped me , thank you.

    Do you have a link where this is explained ?

    Thx Jos

    Wednesday, April 19, 2006 11:27 AM
  • HI Guys,

    I am facing an issue on installing the cab file using CreateProcess(). I am trying to install 2 cab files using a sample code written in VC++. But my application does not install any of the cab files. On device i am getting error message "Installation of 1.cab was unsuccessful".

    Here is my code. Please guide me where is the problem. thanks in advance.

    void LaunchCAB()

    {

    //System ( "cmd.exe /C file.bat" );

    STARTUPINFO si;

    PROCESS_INFORMATION pi;

    ZeroMemory( &pi, sizeof(pi) );

    ZeroMemory( &si, sizeof(si) );

    si.cb = sizeof(si);

    int i = 0;

    //Storage Card

    if(CreateProcess(L"\\Windows\\wceload.exe",L"\\%CSIDL_PROGRAM_FILES%\\EDAInstaller\\1.cab", NULL,

    NULL, FALSE, 0, NULL, NULL, &si, &pi))

    {

    WaitForSingleObject(pi.hProcess, INFINITE);

    CloseHandle(pi.hThread);

    CloseHandle(pi.hProcess);

    }

    ZeroMemory( &pi, sizeof(pi) );

    ZeroMemory( &si, sizeof(si) );

    si.cb = sizeof(si);

     

    if (CreateProcess(L"\\Windows\\wceload.exe", L"%CSIDL_PROGRAM_FILES%\\EDAInstaller\\2.cab", NULL,

    NULL, FALSE, 0, NULL, NULL, &si, &pi))

    {

    //wait for 1.cab installation

    WaitForSingleObject(pi.hProcess, INFINITE);

    CloseHandle(pi.hThread);

    CloseHandle(pi.hProcess);

    }

    }

     

    Friday, March 23, 2007 9:12 PM
  • That is no really a surprise because you're trying to install that from none-existing folder "%CSIDL_PROGRAM_FILES%\\EDAInstaller\\2.cab”.

    That is, this string is treated literally, this macro is only valid within VS make system and not in your code.

     

    You’d need to call SHGetSpecialFolderPath() to determine actual folder name and concatenate strings as needed.

     

    Friday, March 23, 2007 11:27 PM
  • Thanks Iliya

    It wrked :)

    Saturday, March 24, 2007 8:46 PM