Recenze  |  Aktuality  |  Články
Doporučení  |  Diskuze
Auto-Moto
Mobilní telefony
Notebooky  |  Tablety
Příslušenství
Wearables  |  Ostatní
Svět hardware  |  Digimanie  |   TV Freak

today modul

mikovski (19)|17.9.2003 00:53
Zdravim,

chtel bych si naprogramovat vlastni modul pro Today obrazovku... poradite mi jak na to ? C i VB ovladam. Ale nevim kde ziskat informace o tom jak programovat pro Pocket PC. Diky za kazdou radu
Pavel Koza (4761)|17.9.2003 07:38
http://www.devbuzz.com/
http://www.pocketpcdn.com/
http://www.microsoft.com/windowsmobile/information/devprograms/default.mspx

...to asi pro zacatek:) Nejsem programator, takze mozna existuji i jine, lepsi zdroje, ale tady urcite neco najdete.
eXEden_ce4you (811)|17.9.2003 07:41
Není to tak dlouho, co jsem vytvořil v eVC3.0 dvě třídy pomocí kterých se dá Today plug-in vytvořit. Jejich zdrojový kódy a popis můžeš najít na:

CTodayWindow a CTodayOptionsDialog

Třeba ti to pomůže.
eXEden_ce4you (811)|17.9.2003 09:39
Ještě mě tak napadlo. Budeš potřebovat vývojářský nástroj. Microsoft nabízí zdarma jeho vlastní založený na Visual Studiu (resp. Visual C++) V současné době jsou k dispozici dvě verze. Obě jsou volně ke stažení tady. Pokud budeš chtít vyvíjet pro PocketPC 2002 pak si stáhni eMbedded Visual Tools 3.0, pokud pro WM2003 pak si stáhní postupně tyto tři věci:
1) eMbedded Visual C++ 4.0
2) eMbedded Visual C++ 4.0 SP2
3) SDK for Windows Mobile™ 2003-based Pocket PCs

Samozřejmě můžeš mít obě dvě nainstalovaný zaráz. Aplikace zkompilovaný ve eVC4.0 nebudou chodit na PocketPC 2002. Ovšem aplikace zkompilovaný v eVC3.0 na WM2003 chodit budou (teda v 99% případů) Máš-li zájem o vývoj aplikací pro .NET platformu, kterou WM2003 podporuje, pak si stáhni taky ještě Visual Studio .NET 2003 a eMbedded Visual C++ 4.0 QFEs

Toť vše :)
mikovski (19)|17.9.2003 11:27
diky, diky, diky... vsechno to prozkoumam a ozvu se vam, jak jsem dopadl :)
mikovski (19)|17.9.2003 12:31
Nainstaloval jsem si eVC3.0, stahl demo projekt od eXEdena, uspesne ho zkompiloval, ale ted nevim, co s vyslednym souborem "test.dll". Kam ho nahrat, aby se objevil v Today > Items? Musi se jeste nejak zapsat do registru?
eXEden_ce4you (811)|17.9.2003 12:43
1) zkopíruj DLL soubor do složky Windows
2) do registru musíš přidat následující informace - klíč je HKLM\Software\Microsoft\Today\Items:
a) nový klíč pojmenovaný např. "My Today" (uvozovky tam musí být)
b) pod něj hodnoty:
- DLL (string): \Windows\Test.dll
- Enabled (DWORD): 1
- Options (DWORD): 1 (pakliže Today plug-in nemá options dialog pak je zde 0
- Flags (DWORD): 0
- Type (DWORD): 4 (to značí uživatelský plug-in)

Jinak popis všech hodnot najdeš na Microsoft MSDN, kde si potřebné informace dohledáš.
mikovski (19)|17.9.2003 12:59
Jeste jeden (snad uz posledni) dotaz:

Jak nahradim test.dll novou verzi? I kdyz vypnu v Today > Items muj plug-in test.dll nejde smazat / nahradit. Musim pokazde odebirat plug-in z registru nebo na to existuje nejaka jina finta?
eXEden_ce4you (811)|17.9.2003 13:04
To je právě ten problém. Ladění takovéto aplikace je prakticky nemožné. Pro odstranění celé DLL z paměti (disablování v Today Settings nepomůže, protože knihovna zůstane nadále v paměti jako zavedený proces, jen se nezobrazuje) je potřeba v registrech v hodnotě DLL přejmenovat Test.dll na třeba xTest.dll a znovu spustit Today Settings a plug-in už nebude ani tam ani v paměti a je možné jej nahradit :)
mikovski (19)|17.9.2003 13:08
[QUOTE="eXEden"]To je právě ten problém. Ladění takovéto aplikace je prakticky nemožné. Pro odstranění celé DLL z paměti (disablování v Today Settings nepomůže, protože knihovna zůstane nadále v paměti jako zavedený proces, jen se nezobrazuje) je potřeba v registrech v hodnotě DLL přejmenovat Test.dll na třeba xTest.dll a znovu spustit Today Settings a plug-in už nebude ani tam ani v paměti a je možné jej nahradit :) [/QUOTE]

jojo, uz jsem na to taky prisel... delam test.dll, test2.dll, ... a upravuju registry

neni nejaka utilitka, ktera by umoznovala vyhodit z pameti nejakou konkretni knihovnu?
eXEden_ce4you (811)|17.9.2003 13:17
Zatím ne, teda co vím. Ale je možné napsat si jednoduchý prográmek, který to bude dělat za Vás. Stačí jen přejmenovat patřičnou hodnotu v registrech a poslat zprávu [CODE]SendMessage(HWND_BROADCAST, WM_WININICHANGE, 0xF2, 0)[/CODE] a pak by měla být položka uvolněna z paměti.
mikovski (19)|17.9.2003 15:22
plug-in uz jsem si odladil a chtel jsem ho vyzkouset primo na svem PPC (iPAQ 3850)... eVC mi pise "The ARM SA1100 CPU does not support configuration Test - Win32 (WCE x86) Release! Executable will not run on device."

pridal jsem ARM release, ale bohuzel mi ted nechodi kompilace:

.\ARMRelease ARM\MyOption.obj : fatal error LNK1112: module machine type "ARM" conflicts with target machine type "IX86"
Error executing link.exe.

nemuzu prijit na to, co s tim :-/
eXEden_ce4you (811)|17.9.2003 15:33
Když jsem vytvářel výše zmíněné třídy, tak jsem bral v potaz to, že pro ilustraci bude stačit pouze platforma pro emulátor (x86). Vzhledem k tomu, že eVC++3.0 není natolik inteligentní, aby bez chyb dokázalo přidat novou platformu, je nutné vytvořit si nový projekt (DLL Library), vybrat si i platformu ARM a vložit do něj všechny zdrojové kódy, které jste si vytvořil. Možná jsem měl počítat s tím, že někdo to bude chtít zkoušet i na reálném PDA. Za komplikace se omlouvám ...