PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ActiveSync abschalten



BlondyBoy
05.11.2004, 14:07:25
Hi

ich möchte während mein Programm auf dem PocketPC läuft ActiveSync abschalten. Geht das irgendwie?

MfG
BlondyBoy

Iwan
05.11.2004, 14:17:35
http://www.ppc-welt.info/community/showthread.php?p=428202#post428202

BlondyBoy
05.11.2004, 14:56:49
Nein, das ist alles zu umständlich und sowieso, wusste ich das schon.

Meine Anwendung soll automatisch AktivSync beenden. Es ist nämlich wirklich nervig wenn man ein RS232 Craddle in den PPC steckt und ActiveSync versucht eine Verbindung aufzubauen obwohl man gerade über die RS232 Daten empfangen oder senden will. Ich will einfach ein Stück Code programmtechnisch in meine Anwendung einfügen. Wenn ich das Gerät z.B. einem Menschen gebe der noch nie etwas mit PPC's zu tun gehabt hat und der soll jedesmal ActiveSync beenden, bevor er Daten empfangen oder senden kann, und dann wieder starten wenn er im Büro sitzt und seine Emails synchronisieren will, brauche ich meine Anwendung erst gar nicht zu verkaufen.

Vielleicht weiß ja jemand einen Link, eine Stückchen Code oder irgendetwas anderes wo man sich schlau machen kann!?

MfG
BlondyBoy

Günni
05.11.2004, 16:33:08
hallo

diesen Thread schon gelesen?
schaust du hier (http://www.ppc-welt.info/community/showthread.php?t=49161)

Günni

BlondyBoy
08.11.2004, 12:18:33
Hi

habe bei "schaust du hier" geguckt.

Hilft mir aber glaube ich noch nicht.

Eigentlich will ich ActivSync gar nicht erst starten lassen, weil wenn ich von meinem Empfangsprogramm auf dem PC den Empfang starte öffnet sich ActiveSync, was aber gar nicht sein sollte.

Dann belegt mir ActiveSync nämlich den ComPort und ich kann nicht senden.

Gibt es da irgendwas wie ich Softwaretechnisch dieses Problem abschalten kann?

MfG
BlondyBoy

Günni
08.11.2004, 13:24:02
hmm

steht doch eigentlich in dem Thread!



#define MAX_ATTEMPTS 3
#define TIME_OUT 1000

void Disconnect()
{
HWND hWnd = NULL;

for( int i = 0; i < MAX_ATTEMPTS; i++ )
{
hWnd = FindWindow( NULL, L"ReplLog" );
if( hWnd != NULL )
{
SendMessage( hWnd, WM_CLOSE, 0, 0 );
break;
}
else
{
Sleep( TIME_OUT );
}
}
}


einfach diese Methode im InitDialog des Fensters starten bevor der Port geöffnet werden soll!
Oder bei einer SDI / MDI in der CToolApp::InitInstance() ;

Und dann solltest du ActiveSync los sein!

Sven

BlondyBoy
08.11.2004, 14:19:59
Hi

OK ich probiere es nochmal. Aber trotzdem danke.

MfG
BlondyBoy

BlondyBoy
11.11.2004, 15:45:15
Hi

ich habe es probiert. Habe dabei mal auf den iTask geachtet, da ist es auch beendet. Aber sobald ich mit meinem PC eine Verbindung zu meinem PocketPC aufbaue startet ActiveSync automatisch.

D.h. die Verbindung wird vom PC aufgebaut und dann wird ständig ein XON gesendet bis der PC Daten empfängt. Aber sobald ein XON gesendet wird startet der PPC wie gesagt ActiveSync und will fleißig synchronisieren!

MfG
BlondyBoy

wrench
12.11.2004, 14:50:47
Wenn Du den AutoConnect von ActiveSync auf dem PPC per Hand ausmachst (siehe Bild), hilft das?

Wenn ja, kannst Du das auch über die Registry steuern:
[HKEY_CURRENT_USER\ControlPanel\Comm]
"AutoCnct"=dword:00000000

BlondyBoy
15.11.2004, 07:05:16
Hi

Danke für deine Antwort. Ja ich denke das hilft.

Aber wie wende ich das ganze an? Leider ist das immer noch meine erste Anwendung und lernen tue ich auch noch tag für tag.

Vielleicht kannst du mit einen Beispielcode schicken oder vielleicht einen Link oder sowas.

Vielen Dank
BlondyBoy

jochen.albrecht
22.09.2005, 14:32:12
Vom Desktop aus starten/stoppen:

WCESMgr.exe /syncnow
WCESMgr.exe /quit

Vom Device aus starten/stoppen:

repllog.exe /syncnow
repllog.exe /quit

In einen Prozess-Aufruf quetschen:

HWND hwnd1 = GetDesktopWindow();
SHELLEXECUTEINFO lpExecInfo1;

lpExecInfo1.cbSize = sizeof(SHELLEXECUTEINFO);
lpExecInfo1.fMask = SEE_MASK_NOCLOSEPROCESS;
lpExecInfo1.hwnd = hwnd1;
lpExecInfo1.lpVerb = "open";
lpExecInfo1.lpFile = L"";//Pfad und Programm
lpExecInfo1.lpParameters = " /quit";
lpExecInfo1.lpDirectory = L"";//Pfad von Active Sync oder \Windwos\;
lpExecInfo1.nShow = SW_SHOWNORMAL;

ShellExecuteEx(&lpExecInfo1);

WaitForSingleObject( lpExecInfo1.hProcess, INFINITE );