Laden...

.NET Compact Projekt für Mobile Devices nach install per .cab ausführen

Erstellt von justanotherjay vor 11 Jahren Letzter Beitrag vor 11 Jahren 2.246 Views
J
justanotherjay Themenstarter:in
6 Beiträge seit 2012
vor 11 Jahren
.NET Compact Projekt für Mobile Devices nach install per .cab ausführen

Hallo zusammen.

Also die Frage ist nicht 100% C# basiert, aber vielleicht kann mir dennoch jemand behilflich sein.

Ich habe ein C# Projekt welches mit dem .NET Compact 2.0 Framework programmiert wurde. Das Zielgerät ist ein Handscanner (MDE Mobile Daten Erfassung) mit einem Windows CE 6 OS drauf.

Bei solchen Geräten unterscheidet man zwischen Cold und Warm boot. Beim Kaltstart wird das Gerät auf den Auslieferungszustand zurückgesetzt. Sprich alles was installiert wurde, ist dann weg. Nun kann es natürlich mal passieren, dass der Akku von dem Gerät beim Kunden rausfällt oder so und ein Kaltstart erzwungen wird. Der Kunde soll im Endeffekt nicht vor einem Windows CE Desktop stehen und beim Support anrufen und fragen was er zu tun hat.

Die Lösung ist eigentlich recht Simple. Die Geräte haben einen Flashspeicher. Die Daten dort bleiben enthalten. Auf dem Flashspeicher ist ein Ordner namens "Cab" und die .cab Dateien in diesem Ordner werden nach einem Kaltstart automatisch ausgeführt.

So ist auch die Software die installiert werden muss in einer solchen .cab Datei die ich selbst mit Visual Studio erstellt habe (CAB-Projekt für intelligente Geräte).

Nun alles gut soweit.
Das Problem ist, dass die Software nachdem installieren aus der .cab Datei nicht automatisch ausgeführt wird. Sie wird zwar in den Autostart gepackt, aber das würde einen erneuten Reboot (warm) benötigen.

Ich habe bereits eine Lösung um das alles auszuführen. Nur komme ich da nicht richtig weiter und hoffe mir kann hier jemand behilflich sein.

.CAB bietet die Möglichkeit eine CE Setup DLL einzubinden.
Diese wird im visual studio als c++ MFC-DLL für intelligente Geräte erstellt.
Diese DLL hat dann schon die nötigen Funktionen vorgegeben. Die für mich interessante ist die

Install_Exit

.

Ich habe wirklich nur wenig Erfahrung mit cpp und zeige mal kurz wie das bei mir aussieht:



codeINSTALL_EXIT
Install_Exit(
    HWND    hwndParent,
    LPCTSTR pszInstallDir,
    WORD    cFailedDirs,
    WORD    cFailedFiles,
    WORD    cFailedRegKeys,
    WORD    cFailedRegVals,
    WORD    cFailedShortcuts
)
{
	
	PROCESS_INFORMATION pi = { 0 };
	STARTUPINFO si = { 0 };


	TCHAR pszDest[260] = _T("");
	StringCchCat(pszDest, 260, pszInstallDir);
	StringCchCat(pszDest, 260, _T("\\resy.exe"));


	si.cb = sizeof(si);

	CreateProcess(pszDest, NULL,NULL,NULL,false,0,NULL,NULL,&si,&pi);
	CloseHandle(pi.hThread);
	CloseHandle(pi.hProcess);

return codeINSTALL_EXIT_DONE;
}

Leider passiert immer noch nichts nach der Installation der .CAB Datei.
An das CAB Projekt habe ich die CE Setup DLL gehangen und alle Schritte so befolgt wie es die msdn darstellt.

Also schließe ich drauf, dass das Problem am Code liegt.

Hätte jemand vielleicht eine Idee?

Gruß

2.298 Beiträge seit 2010
vor 11 Jahren

Von welchem Hersteller ist denn der mobile Barcodescanner?

Wissen ist nicht alles. Man muss es auch anwenden können.

PS Fritz!Box API - TR-064 Schnittstelle | PS EventLogManager |

J
justanotherjay Themenstarter:in
6 Beiträge seit 2012
vor 11 Jahren

Von welchem Hersteller ist denn der mobile Barcodescanner?

Von Datalogic. Da genaue Modell ist: Datalogic Elf

V
66 Beiträge seit 2010
vor 11 Jahren

Wenn es nicht unbedingt eine .CAB sein muss: http://www.pocketpctoolkit.com/

J
justanotherjay Themenstarter:in
6 Beiträge seit 2012
vor 11 Jahren

Das Problem ist, dass die Datalogic Geräte nach einem Kaltstart wirklich nur .Cab Files ausführen die auf dem FlashDrive im Ordner Cab liegen.

N
7 Beiträge seit 2012
vor 11 Jahren

Liegt die resy.exe wirklich im root-Verzeichnis auf dem Gerät?

MMC GmbH? Reifeneinlagerungs-SW? 😃

T
708 Beiträge seit 2008
vor 11 Jahren

Hi,

die Lösung für das Problem liegt doch nicht in dem Installationspaket, sondern darin die Anwendung Kaltstartsicher zu machen.
Das bedeute, dass sie 1. auf dem Flashspeicher installiert wird und nicht unter "Programme" und 2. die Änderungen im Startmenü, Registry, usw. durch ein Datalogic-Tool gesichert werden. Das müsste im Startmenü unter Programme/DataLogic zu finden sein.
Auch für Schritt 3, sollte sich da das entsprechende Programm finden lassen: WLan-Einstellungen sichern.

I.d.R. kann man vom Hersteller ein HowTo anfordern, wie man ein Gerät, bzw. die Applikationen darauf Kaltstartsicher bekommt.