Related
I have a little project in mind, but would like some input from the pros to cut research time:
Is it possible to "wrap" a Today plugin dll with another, providing a "pass through" for operations (such as screen taps, etc)?
What I'm trying to accomplish is this: Add selectability and other one-handed d-pad operation to an older plugin that is not selectable.
What do you think?
it's possible but the problem is that the plugin have to keep track on what plugins it include and which handles it have to pass to them
could end up big and slow
Rudegar said:
it's possible but the problem is that the plugin have to keep track on what plugins it include and which handles it have to pass to them
could end up big and slow
Click to expand...
Click to collapse
This is specific to a single plugin - it would only keep track of one.
Perhaps plan B would be easier - a plugin that manipulates another plugin. Such that it would "appear" the older plugin was selected, etc. I guess I'd better go study some more...
Actually its really simple.
Any plug-in DLL exports a function called InitCustomItem. In this function the plug-in does all its initialization, and creates its window. The return value is the handle to this window which you can subclass to add functionality.
as for selection, there is a value in the registry for each plug-in (HKLM\Software\Microsoft\Today\Items) which controls whether the system passes selection events to the plug-in or not.
it has three settings:
0 - non selectable, item will be skipped by the system.
1 - Automatic, the system will paint the item and handle selection on / off
2 - Manual, the system will pass the selection event to the item and the item will take care of the rest. In this mode the return value of the WM_ACTION determines whether the selection is moving on. This is good for multiline plug-ins that don't want to give up focus when arrow keys are pressed.
levenum said:
Actually its really simple.
Any plug-in DLL exports a function called InitCustomItem. In this function the plug-in does all its initialization, and creates its window. The return value is the handle to this window which you can subclass to add functionality.
as for selection, there is a value in the registry for each plug-in (HKLM\Software\Microsoft\Today\Items) which controls whether the system passes selection events to the plug-in or not.
it has three settings:
0 - non selectable, item will be skipped by the system.
1 - Automatic, the system will paint the item and handle selection on / off
2 - Manual, the system will pass the selection event to the item and the item will take care of the rest. In this mode the return value of the WM_ACTION determines whether the selection is moving on. This is good for multiline plug-ins that don't want to give up focus when arrow keys are pressed.
Click to expand...
Click to collapse
Hey, thanks for the response! I've set the Selectability registry item for the older plugin, and it's ignoring it - that's what started me on this little project.
I'm a software developer by trade, but not with C++, so I don't want to waste people's time here asking a lot of dumb questions. If you could point me in the right direction on a couple of things, I'll go off and learn:
1. If all I have is a dll and nothing else (no .defs, etc), can I determine all of the functions it exports (other than InitCustomItem)?
2. Process check: My custom plugin's InitCustomItem would call old-plugin's InitCustomItem, snagging old-plug's hwnd. New-plugin would then initialize it's own window - transparent(?) and pass that hwnd back to windows. Also, my custom plugin would pass all messages to old-plugin, etc. Theoretically, old-plug would look and operate like normal?
If this is already written, just sent me the code!
Well I am afraid it will be difficult to do all this without C++. As far as WM based devices are concerned you need to use something that translates in to native code to create system components like the plugins son ,no .NET languages, and embedded VB doesn't do well on anything never that WM 2003 (not even SE), plus I am not sure if you can make DLLs with it at all.
To your questions:
1) There is a tool which comes with VS 6 called Dependency Walker. It shows you what functions a given DLL exports, what it imports from other DLLs and what DLLs it is link to. Woks on EXE files as well.
If you can't get that, download a demo of IDA 5. It's the most powerful disassembler for WM devices out there.
2) Not sure, I never tried anything like that. The thing is, the system resizes the plugins, on initialization (it controls height) and when screen rotation changes so if you pass back HWND for a window other than the one visible, it might cause some problems.
I think what you should do is learn about subclassing. It's when you replace the procedure of an existing window with your own (just replace the function, not create new window). You then get all the messages for that window, you can do what you want and call the original function when you done.
By the way, if you want to learn about writing plugins there is an article with code samples on this site: www.pocketpcdn.com and a lot of other interesting stuff.
Good luck.
What plugin is it? It might be easiest just to rewrite the plugin if you've got the code.
V
levenum said:
Well I am afraid it will be difficult to do all this without C++.
Click to expand...
Click to collapse
I should have been more clear - I am using C++, I'm just have to learn how to program with it first!
vijay555 said:
What plugin is it? It might be easiest just to rewrite the plugin if you've got the code.
V
Click to expand...
Click to collapse
I don't have the old-plugin source code. My little project is to add some sort of d-pad operation to the WeatherPanel plugin, which you're probably familiar with.
Progress: I've written and deployed my first little plugin - based on the source code samples available in the internet.
Next step: In my InitializeCustomItem, I thought I'd try to call WeatherPanel's InitializeCustomItem (instead of creating my own window). Thing is, I don't yet know how to properly link the WeatherPanel dll to my project. As expected, it only exports two functions: InitializeCustomItem and CustomItemOptionsDlgProc (I used dumpbin.exe)
I'll keep plugging away - any input would be appreciated.
Thanks for your help!
It's real easy:
Use LoadLibrary and GetProcAddress functions to call functions in other DLLs without linking them.
levenum said:
It's real easy:
Use LoadLibrary and GetProcAddress functions to call functions in other DLLs without linking them.
Click to expand...
Click to collapse
What a coincidence! My studying led me to the same functions.
From within my plugin's InitializeCustomItem, I was able to successfully load the dll with LoadLibrayl, GepProcAddress of its InitializeCustomeItem (at ordinal 240) and call it. But it whacks the Today screen so that none of the plugins load.
Next I thought I'd try FindWindow and EnumChildWindows to find it and all it's children. Then manipulate them by sending messages...
storyr said:
What a coincidence! My studying led me to the same functions.
From within my plugin's InitializeCustomItem, I was able to successfully load the dll with LoadLibrayl, GepProcAddress of its InitializeCustomeItem (at ordinal 240) and call it. But it whacks the Today screen so that none of the plugins load.
Next I thought I'd try FindWindow and EnumChildWindows to find it and all it's children. Then manipulate them by sending messages...
Click to expand...
Click to collapse
Update: So far, so good. As it turns out, EnumChildWindows doesn't work on the PPC, so I used GetWindow to find the plugin's handle. I can successfully send messages to it and initiate various actions.
Question: I'd like to visually indicate (on the old-plugin) what's being clicked (such as drawing a box around it). Is it possible to draw things outside of my own window?
It is, but it's tricky.
You can always use the GetDC function to retrieve the DC for another window and paint on it, but the problem is that unless you subclass the window you have no way of knowing when it repaints it self and all your changes are erased.
levenum said:
It is, but it's tricky.
You can always use the GetDC function to retrieve the DC for another window and paint on it, but the problem is that unless you subclass the window you have no way of knowing when it repaints it self and all your changes are erased.
Click to expand...
Click to collapse
I tried that exact thing (GetDC) and drew a rectangle in it, but it didn't do anything. I realized the reason was the WM_Paint event wasn't firing on old-plugin, and when it did, my stuff was erased (just like you said).
Next idea - open my own dialog window than overlays old-plug. The entire window needs to be transparent - except for the visual indicators that I position where I want. When the user ok's, I close the window and send the click to old-plugin...
Thanks again for keeping tabs on my progress..
No offence, but with all these rather advanced programming tricks you are attempting just to "sup up" an old weather plugin it looks to me like you would be better off just writing the whole thing from scratch.
It you are familiar with WinInet and / or sockets this should be pretty easy and it will look and work much better than the hack you are attempting now.
Plus you can make it exactly the way you like.
levenum said:
No offence, but with all these rather advanced programming tricks you are attempting just to "sup up" an old weather plugin it looks to me like you would be better off just writing the whole thing from scratch.
It you are familiar with WinInet and / or sockets this should be pretty easy and it will look and work much better than the hack you are attempting now.
Plus you can make it exactly the way you like.
Click to expand...
Click to collapse
No offence taken. I thought of that, but I figured this would be a good way to cut my teeth a little. Once I complete this little project, I may pursue that route...
Question: Do you have a favorite forum (or forums) besides this site that you use for your research/programming questions?
This is my favorite forum
But here are couple more sites I found very valuable:
www.pocketpcdn.com - They have tips and tricks with code examples arranged in categories like how to make MFC dialogs not full screen or the one I used in LVMTime to put the clock back on the taskbar.
www.codeproject.com - It's not specific to WM development but has tons of interesting stuff including entire sources.
You should also check out www.buzdev.net If you're not familiar with the great work of buzz_lightyear you should see some of the stuff he did for this forum like grab_it - the invisible ROM dumper.
OT
Just a quick OT question:
If I would move some of the plugin-dll's from \Windows to \Storage Card, would it be enough to change the adress within the corresponding item in the registry entry HKLM/Software/Microsoft/Today/Items ?
Of course I'm not talking about plugins like tasks a.s.o but rather third party plugins
Cheers
hrb
It won't work.
The problem is that the SD card is mounted too late so if you put the plugins on it they will not be loaded when device boots up.
You can move them to the extended ROM this way or to a folder other than windows but there is no way to move start-up stuff to SD.
Thanks for the help with this "little" project. After many hours, the product is out for beta testing. When it's released, I'll post more info...
Finished!
It's finished. The app is called WP-Pilot and it provides one-handed operation of WeatherPanel. If anyone's interested, it can be found here. Here's how it ended up:
There's a plugin (WP-PilotPlugin.dll) with an options dialog, and an executable (WP-Pilot.exe).
When the plugin gets selected, it looks for Weatherpanel. If it finds it, it fires off WP-Pilot.exe
WP-Pilot.exe opens. It does this stuff:
Look for WeatherPanel, and get it's screen coordinates.
Read the registry and determine which layout file WeatherPanel is using.
Open the layout file and read it: Record the coordinates of each "clickable" item found. This was a real PITA because of Unicode.
Sort the coordinates for left-to-right, top-to-bottom order.
Select the first coordinate and position a tiny window (10x10) at that x-y position.
Draw a "pointer" in the window (the type and color depends on what's selected in the options).
Show the window and process input:
[*]Left/right pressed - selected the next/previous coordinate and move the window to that location.
[*]Up/down pressed - close WP-Pilot and tell the plugin we're done.
[*]Center button pushed:
[*]Send a mouse click to the WeatherPanel plugin at the coordinates
[*]Close WP-Pilot and tell the plugin we're done.
Thanks again for your help!
iMedia is my new finger scrolling application to manage contacts. I decide to open a new thread because I think it's more clean have a new one for this new project instead to speak about it into SSContact thread.
SSContact was my first pocket pc application and it give me opportunity to learn many things about programming, so I started this new project with some more knowledge baggage.
This app has been developed in pure native code C++ and WinApi, do not require frameworks and use just few Kbyte of RAM (only 61Kbyte for my device). I worked very much to optimize finger scrolling and now it's fast also in 200 Mhz processor devices.
iMedia is still in development stage so it's not fully working and isn't ready to use, I'm releasing it for people that want give me a help to build this new work If you need a complete app that use few memory try SSContact or iContact developed by Larna.
News
07/07/2007 - thread day
Features
- few KBytes RAM usage
- fast and smooth 360° scrolling
- transitions details window with contact picture
- left and right dpad to jump letters dividers
- scrollwheel support
History
Code:
- 20070711 improved slide detail window :)
- 20070709 just some optimization (slide, dividers)
Known issues
- too much this app is still in development stage
Faqs
- Yes you can't call and you can't send SMS, this is just a test app.
download below
Cool, guybrush..the flick/scroll contact field is really heating up...
The scroll feel is pretty much OK to me.
I have the impression to control it as I want.
Excellent start !
Hello Guybrush,
iMedia works very very fast and smooth , but it dont display well in my Wizard WM5, it shows as 70% of the screen, also when i select one contact i cant dial any number, it only show the contact list again when i press the number.
I really like the smooth scrolling and fast speed, is better than iContacts and ContactManager but the interface need more improvement, i really value your work and thank you for sharing with us
Sorry my bad english.
Same Issue here
innovaciones said:
Hello Guybrush,
iMedia works very very fast and smooth , but it dont display well in my Wizard WM5, it shows as 70% of the screen, also when i select one contact i cant dial any number, it only show the contact list again when i press the number.
I really like the smooth scrolling and fast speed, is better than iContacts and ContactManager but the interface need more improvement, i really value your work and thank you for sharing with us
Sorry my bad english.
Click to expand...
Click to collapse
its not full screen, and when i push a contact, it only shows the Mobile #, and , when i push the #, it doesnt do anything. just goes back to the list. great start though. id like it to show all #s when i push a contact...
I know my english isn't perfect but should be easy understand this application isn't complete and ready to be used, or maybe you doesn't read first post. BTW you think really I don't know it's not fullscreen and you can't call ?
guybrush
I was about to tell to stop friking whining that it doesn't work. You made it pretty clear that it's just a test and NOT a fully working app! DOH! Some people...
Hi,
Just for info, it now works on my device, I tried a previous version you posted in the contact manager thread, that wasn't working.... so it's good news.
Also a comment regarding horizontal sliding, it's my concept, I got a patent on it, my lawer will call you, it's the end for you... well just kidding (and maybe you app has it before mine...). Seriously, while sliding I see that the text seems to "move" (not being drawn at the smae logical coord) on the part of the screen that slide, so I suppose you're redrawing the sliding part, based on my test, it was a lot more performant to draw the current screen in an offscreen bitmap, and blit this image as needed. Even on such device, blitting is faster than drawing some lines of text. just my 2 cents
ehehe i had patent for left index and continuos scrolling ehehe about sliding window it was a thing I would like to do before you posted your first app (iPhone is a big resource of ideas ) , I remenber i said you when i saw your app btw you can ask Larna if you not believe me, I always boring him about my program ask him to test 'cause i don't have a slow device ehehehe, I already did a new version much better about slide window, the concept is easy, one is drawing and one is moving that's why i don't found a way to take a bitmap when second window is out of viewport
Guybrush said:
ehehe i had patent for left index and continuos scrolling ehehe about sliding window it was a thing I would like to do before you posted your first app (iPhone is a big resource of ideas) ) , I remenber i said you when i saw your app ) btw you can ask Larna if you not believe me
Click to expand...
Click to collapse
Let say our lawer will discuss it
Guybrush said:
I always boring him about my program ask him to test 'cause i don't have a slow device ehehehe
Click to expand...
Click to collapse
For what it's worth, emulator device are a little bit slower than my 200mhz device... maybe it can help you test.
Guybrush said:
I already did a new version much better about slide window, the concept is easy, one is drawing and one is moving that's why i don't found a way to take a bitmap when second window is out of viewport
Click to expand...
Click to collapse
I'm not sure I'm following you Except that apparently you're actually using many windows and controls?
Still not working here on my Qtek 9090 with WM5. The program appears, but then closes almost when i touch it. On the other end, the program itself doesn't really appears as it should. As i've said before, i think it's because of the foreign characters.
A pic of the app is attached.
@tene
I'll try to explain, I have two different window controls not just one.
[ A ] <- [ B ]
window A is drawing while B is moving versus A that's the concept of my slide window.. my initial idea was take a bitmap of window B and than blit only interesting parts of it while A is is drawing during timer procedure But i don't found a way to take that bitmap because B is not on viewport.
@edu
I think that is caused by windows live contacts. I haven't a check to remove them
Guybrush said:
@tene
window A is drawing while B is moving versus A that's the concept of my slide window.. my initial idea was take a bitmap of window B and than blit only interesting parts of it while A is is drawing during timer procedure But i don't found a way to take that bitmap because B is not on viewport.
Click to expand...
Click to collapse
imagine you have somewhere a Draw function that take an HDC as parameter. I suppose the HDC is to an offscreen bitmap to avoid flickering. and that you blit this bitmap in the WM_PAINT msg handler? Am I right?
Anyway, your perf seems good now, so it may not be an issue. The real advantage of playing with bitmap, is that it scales well: no matter how complex the rendering of you list become, you know that the slide will stll be smooth.
I just need to ask...any way you can release a wm2003 version?
I'll not support 2003
Mate, I have a Wizard (WIZA200) and when I run the imedia i get the attached screen. No scrolling no moving, nothing.
do you have windows live ? omapclock ? from screenshot it's a strange issue.. i tried to clean buffers during creation of separators. it's ok on my device.
Guybrush said:
do you have windows live ? omapclock ? from screenshot it's a strange issue.. i tried to clean buffers during creation of separators. it's ok on my device.
Click to expand...
Click to collapse
No Windows Live no OmapClock...
WM5 or WM6 ? I've attached a new version... tell me if it solve your problem.
10/16/08--
It is 12:00 central time (17:00 GMT I think) and I will close voting at 5:00pm Central Time (22:00 GMT) today. So that leaves you just 5 Hours to make your vote. I will try and post the winner up here later tonight, or you can check yourself at www.gudensoft.com.
Thanks!!
10/14/08--
First, thanks for all the great ideas. I would love to develop all of these if I could, but we have to decide on just one of the programs! So, Since I couldn't add a poll to this thread, I added it to HERE.
CLICK HERE TO VOTE!
I bet I know which will win, but who knows? The poll will end Thursday or Friday (depending on if it is a close race or not).
Thanks
Gudy
10/10/08--
Hey guys,
I want to know what cool program, functionality, or software you would like to see created. I am a .net programmer (among others) and would like some ideas of projects you would like to see. I would like to stay away from a graphic intense program and involved games, so think functionality, usefulness, fun, etc. If I get some good ideas, I will then add a poll, vote on the best one, then build it. I will release it under my donationware license which means it will be free. Right now I am finishing up my Golf Gps program (and will continue to support), but will start this project once we get it deceided. So Shoot me your ideas!
Gudy
cool a programmer who need ideas
I have proposed something here: http://forum.xda-developers.com/showthread.php?t=434925
though it would maybe not appear as a grateful program for a developper ( a toolkit for other programs), it could be a good way to have a large diffusion through many config panels in different programs
it was just an idea
Wishlist
Hi,
Maybe simple for .NET, but for me impossible to do (without performance/battery penaulty) with basic4ppc or mortscript. And thats all I can handle.
What I would like to have is a program that enables me to execute programs when specific events occur. I'd like to know when AC power gets connected/disconnected, when there is a change in screen orientation, and when a headset gets connected/disconnected and so on. Maybe even when an internet connection through WIFI is available/unavailable.
Also I'd like to know is a specific BT device is connectable/conneted. I'd like to know if a specific WIFI network is connectable/connected. I'd like to know if I'm at a specific location. All event driven, without a performance consuming programing loop or battery drain.
Yeah, all or even some of those options would make my digital mobile life so much easier
Good luck huntig for input, if you ever get bored contact me and make me happy
Cheers,
Cacti
le_cactus said:
Hi,
Maybe simple for .NET, but for me impossible to do (without performance/battery penaulty) with basic4ppc or mortscript. And thats all I can handle.
What I would like to have is a program that enables me to execute programs when specific events occur. I'd like to know when AC power gets connected/disconnected, when there is a change in screen orientation, and when a headset gets connected/disconnected and so on. Maybe even when an internet connection through WIFI is available/unavailable.
Also I'd like to know is a specific BT device is connectable/conneted. I'd like to know if a specific WIFI network is connectable/connected. I'd like to know if I'm at a specific location. All event driven, without a performance consuming programing loop or battery drain.
Yeah, all or even some of those options would make my digital mobile life so much easier
Good luck huntig for input, if you ever get bored contact me and make me happy
Cheers,
Cacti
Click to expand...
Click to collapse
Doable, handy, not a massive undertaking, I like it! Not sure I would go the .net route on something like this, as really a GUI is not required (except for settings maybe) and the overhead is large with .net. Certainly will add it to the list. Keep them coming!!
t0k0m0k0 said:
cool a programmer who need ideas
I have proposed something here: http://forum.xda-developers.com/showthread.php?t=434925
though it would maybe not appear as a grateful program for a developper ( a toolkit for other programs), it could be a good way to have a large diffusion through many config panels in different programs
it was just an idea
Click to expand...
Click to collapse
This would be pretty difficult unless all of developers used the same programming langauge/technique. The only real feasable way I see this working would be developers using a common set of graphics. That would be more of a graphic undertaking instead of programming. I do like the idea, but pretty hard to impliment.
Thanks
Gudy
I would love to see something like Launchy for launching apps and files etc. as well as quick search of various types online. I'm guessing the on the fly search would require too much processing power, but if it's doable it would be awesome.
http://www.launchy.net/
I'm interested in new ideas too. I also use B4PPC.
Here's a few ideas:
-A tamagotchi, really. I was about to try this out tonight but Paint hates me.
-An app launcher like PetitLaunch on PalmOS. It's something that can pop from any app (hardware button) and when you type in extra letters it filters which apps are shown. I got this started and I can give you the files if you want.
-Pursue the development for Tippy. The source is on Nicbou.com/downloads if you want it.
-A time clock. A friend of mine notes down how long he works to make sure he doesn't get screwed and it takes him several minutes every week. He doesn't have a Pocket PC but maybe someone would be interested in something that tracks the hours you work and calculate the salary. I almost did this too.
And don't forget to share the source! If you need any help with B4PPC I'm here
galt said:
I would love to see something like Launchy for launching apps and files etc. as well as quick search of various types online. I'm guessing the on the fly search would require too much processing power, but if it's doable it would be awesome.
http://www.launchy.net/
Click to expand...
Click to collapse
Sounds simular to the app launcher listed in the next post, seems like there is a theme going on here, you all need some sort of good app launcher.
Gudy
I'd like the Launchy features for search-on-the-fly off on board apps and file launching, but ever more for different site searches (google, maps, wikipedia, live, youtube, Amazon, etc).
N1c0_ds said:
I'm interested in new ideas too. I also use B4PPC.
Here's a few ideas:
-A tamagotchi, really. I was about to try this out tonight but Paint hates me.
-An app launcher like PetitLaunch on PalmOS. It's something that can pop from any app (hardware button) and when you type in extra letters it filters which apps are shown. I got this started and I can give you the files if you want.
-Pursue the development for Tippy. The source is on Nicbou.com/downloads if you want it.
-A time clock. A friend of mine notes down how long he works to make sure he doesn't get screwed and it takes him several minutes every week. He doesn't have a Pocket PC but maybe someone would be interested in something that tracks the hours you work and calculate the salary. I almost did this too.
And don't forget to share the source! If you need any help with B4PPC I'm here
Click to expand...
Click to collapse
I had to look up tamagotchi, either I am too old, or just out of the loop to know that 10 million of these things were sold! Wow! That could be fun, but would take a pretty fancy AI type system to really be fun.
A form of Tippy is already out there, 1-calc has some of the features built in already.
A time clock could be cool, maybe a stop watch type thing perhaps?
Never used B4PPC, I mainly use C# and Visual Studio. It looks like the old Visual Basic for desktops. And last but not least, depending on the project, I more than likely will release the source.
Thanks!!! Keep'em comin!
Gudy
File Explorer Needs Help
Has anyone wanted to see a preview image in explorer's folder??
I'm not talking about fexplorerext2. although it is a fantastic enhancement; it takes a long time to load the preview immages.
I have a better idea (well, actualy MS thought of it first)
THUMBS.DB
for every folder that has an image file, this dll is created to replace cache of images. this way ou do not have to load it everytime and scale them down for thumbnail view. it is already there specificaly for each folder.
This alows the explorer to show a preview of the first image in the folder (or last created/accessed)
This is whatt I think WinMo is lacking - windows. lol.
I do not care much for the tabbed browsing. it hurts my head. too much scroling and not enough info. Icons work better I think, and waste less space on an already small screen.
well, that's been on my wishlist for a very long time. a dll that ataches to the already existing explorer making it work better.
Thanks for workin g on something new
program that makes led lights flash when phone rings would be nice
Interesting...I will have to think about how to tackle that. It would basically take a new file explorer (like total commander). This might be a bit larger than I want to tackle, but will research it a bit before ruling it out.
GUdy
bedaweed said:
program that makes led lights flash when phone rings would be nice
Click to expand...
Click to collapse
This would be very difficult as not every device handles the leds the same. Also, not every device has the same leds (color, # of, etc). I think No2Chem has a int. driver, but think it is only for the titan. Would be cool though...
Gudy
a system-wide launcher dock program like that on the velocity 103 PPC..
here's the URL for the review and video of the app (and the phone)
-------------------------------------------------------------
a new top bar replacemeent/notification system much like the "android Notification Drawer" it can replace the bubble (multiple) notifications icon when you got multiple and simultaneous notifications.. and also make it finger friendly (unlike M2D, no need to go back to homescreen to check email/sms previes and also calendar events, calls, etc.. also unlike big taskbar - from the touch phones, this'll have previews)
video: http://www.youtube.com/watch?v=z7qbPa1O8Ys&eur (at the 2 minute mark) , http://www.youtube.com/watch?v=hy-YcGNyJds
mjg7876 said:
Interesting...I will have to think about how to tackle that. It would basically take a new file explorer (like total commander). This might be a bit larger than I want to tackle, but will research it a bit before ruling it out.
GUdy
Click to expand...
Click to collapse
Fexplorer2 is basically a dll that works with the original file explorer context menu. there is a small exe that overwrites the original explorer to make it think that the explorer"s context menu has already been opened.
in a way it maybe possible to write a new dll and two exe
EXE 1 to replace the file explorer
EXE 2 to make thumbs db
DLL (conte4xt menu that alows to view as thumbnails/list etc ; as well as launching the second exe to make a thumbsdb)
maybe you can get some help from Hou Ming, the guy that made that program before.
it would be cool if you could get some of the old emus like pocket gba and pocket snes with window 6.1 I know i would be happy.
le_cactus said:
... when AC power gets connected/disconnected, when there is a change in screen orientation, and when a headset gets connected/disconnected and ...
Click to expand...
Click to collapse
I have been looking for a program that would stop the music (S2P, Audio Manager, or WMP etc...) if during playback of the music the headset is removed. Or for instance, when the device is on vibrate and you connect headset, it automatically changes profile to normal or something.
Another one is when I dock my device (or connect AC basically), I'd like clock program (or home screen, or photo slideshow, etc...) to come up automatically.
A feature that I miss from my older phones is the ability to set them to beep every minute during a phone call.
Now these are very general and not specific features. If you have any questions, don't hesitate to contact me!
Thank you,
SiNAra
ytsejam_ said:
a system-wide launcher dock program like that on the velocity 103 PPC..
here's the URL for the review and video of the app (and the phone)
-------------------------------------------------------------
a new top bar replacemeent/notification system much like the "android Notification Drawer" it can replace the bubble (multiple) notifications icon when you got multiple and simultaneous notifications.. and also make it finger friendly (unlike M2D, no need to go back to homescreen to check email/sms previes and also calendar events, calls, etc.. also unlike big taskbar - from the touch phones, this'll have previews)
video: http://www.youtube.com/watch?v=z7qbPa1O8Ys&eur (at the 2 minute mark) , http://www.youtube.com/watch?v=hy-YcGNyJds
Click to expand...
Click to collapse
The launcher on the 103 looks a lot like manilla, I know it is diff, but to me it seems mainly by presentation, not functionality. I do however like the notification top bar like that on android. Not sure how difficult taking over the top bar would be. I will do some digging.
S.V.I said:
Fexplorer2 is basically a dll that works with the original file explorer context menu. there is a small exe that overwrites the original explorer to make it think that the explorer"s context menu has already been opened.
in a way it maybe possible to write a new dll and two exe
EXE 1 to replace the file explorer
EXE 2 to make thumbs db
DLL (conte4xt menu that alows to view as thumbnails/list etc ; as well as launching the second exe to make a thumbsdb)
maybe you can get some help from Hou Ming, the guy that made that program before.
Click to expand...
Click to collapse
Can you give me a link to this? The only thing I could find (quickly) was sketchy at best. Still seems a bit much, but would like to know more about this Fexplorer2 thing before nuking the idea.
Gudy
Updated: 2009-01-03, 21:05 (GMT+1)
Me and Swoop2 is creating a Tetris game for us HTC Touch Diamond users out there in need for a great one! Why I wanted to create a new Tetris game for the HTC Touch Diamond was because all of the Tetris games out there got some flaws (imo); not supporting VGA resolution, visually looking bad, running slow etc.. The closest thing I got was TeKnowMagic Tetris, but I wasn't satisfied either way. There's simply no Tetris game out there filling my requirements.
DiamondTris so far:
VGA resolution
Moving pieces - with the wheel sensor or via the on-screen buttons
Rotation of pieces - with the enter button or via the on-screen buttons
Line completion and destruction
Statistics: score, hi-score, level, lines done/remaining
Difficulties: easy, medium, hard (different speeds)
What needs to be done:
Some minior GUI tweaks
Sound effects
Settings (sounds, controls)
You'll need .NET Framework 3.5, which you'll find here
Changelog:
DiamondTris_20090103.cab:
Installs on device or internal storage
Creates a shortcut in Programs\Games
Pause function implemented
DiamondTris_20090102.cab:
New, better looking on-screen buttons
Added some statistics
Disabled piece rotation by tilting the device (needs further tweaking)
Application icon added
+1
sounds like a fairly simple and easy project... if only i had listened in class...
Why don't you get some pledges to encourage a developer
I would pay around £3 for a tetris game designed for our device
Not loads, but if enough people were too pledge their support...
hays said:
Why don't you get some pledges to encourage a developer
I would pay around £3 for a tetris game designed for our device
Not loads, but if enough people were too pledge their support...
Click to expand...
Click to collapse
good idea.
i'll let hays pay £3 for a Tetris game
(and i suppose i could chuck a few quid in as well )
Of course I'm in for some donations if this game is created
I started a very basic Tetris app for my touch diamond a while ago - just as a play around as my first Windows Mobile application. It uses the wheel for moving the current piece left and right and I was going to have a go at using the accelerometer to turn the piece clockwise/anticlockwise (i.e. a flick to the left or right).
I've never used OpenGL or anything so it was just done using a timer and the graphics object off the OnDraw event. I got as far as creating the grid, drawing the pieces, moving them around and knowing when lines were completed, etc. Still had a lot to do but it was a proof of concept more than anything else.
I'm just a normal application developer and develop form based applications and back end stuff. If I can get to where I am with my effort in the time I have, then someone who knows how to write games properly could easily do something really good.
Swoop2 said:
I started a very basic Tetris app for my touch diamond a while ago - just as a play around as my first Windows Mobile application. It uses the wheel for moving the current piece left and right and I was going to have a go at using the accelerometer to turn the piece clockwise/anticlockwise (i.e. a flick to the left or right).
I've never used OpenGL or anything so it was just done using a timer and the graphics object off the OnDraw event. I got as far as creating the grid, drawing the pieces, moving them around and knowing when lines were completed, etc. Still had a lot to do but it was a proof of concept more than anything else.
I'm just a normal application developer and develop form based applications and back end stuff. If I can get to where I am with my effort in the time I have, then someone who knows how to write games properly could easily do something really good.
Click to expand...
Click to collapse
Ah, that sounds great! Got any plans on continuation of your work? Onscreen buttons instead of accelerometer sounds even better imo, and is easier to do I think..?
Care to share your source? I can have a look at it myself and see if I can get into Mobil application programming too... or at least someone else here can continue on your base work.
I do plan on finishing it at some point - though I'm not 100% sure when! I don't mind sharing the code anyway, so once I'm back home I'll try and remember to put it on here.
Swoop2 said:
I do plan on finishing it at some point - though I'm not 100% sure when! I don't mind sharing the code anyway, so once I'm back home I'll try and remember to put it on here.
Click to expand...
Click to collapse
Sounds cool. Looks like I might get a good weekend after all! Do... not... forget... the... add... the source code!
Here's the source code. It is VERY much a work in progress. I started it as a windows application and ported it over to WinMob6. Here's a list of things that I know I still needed to do:
1. Optimise the graphics to get rid of the irritating flicker.
2. Add the piece rotation.
3. Add the score and level display, etc.
4. Decide on the size of the grid (considered leaving it customisable).
5. Add score saving and option saving, etc.
6. Add some backing music.
They're the things I can remember off the top of my head anyway. Lemme know if you have any ideas or questions, etc.
Swoop2 said:
Here's the source code. It is VERY much a work in progress. I started it as a windows application and ported it over to WinMob6. Here's a list of things that I know I still needed to do:
1. Optimise the graphics to get rid of the irritating flicker.
2. Add the piece rotation.
3. Add the score and level display, etc.
4. Decide on the size of the grid (considered leaving it customisable).
5. Add score saving and option saving, etc.
6. Add some backing music.
They're the things I can remember off the top of my head anyway. Lemme know if you have any ideas or questions, etc.
Click to expand...
Click to collapse
Sweet! I'm at home now, downloading all the requried applications to put up a proper environment here... big packages, so it'll take a while until I'm set.
I'll see if I can manage to do anything, and in case - I'll get back to you
Hi there again Swoop2!
Just tweaked the grid some, added some stats + onscreen buttons (stretched until later ;P) and changed some minor stuff. Here's my latest source. Thanks for sharing!
There's still bunch of stuff to tweak and add. Adding rotation to the game would make it fairly playable. The screen flickering is quite annoying, but perhaps we'll manage to get it working right in the future
Also adding a screenshot of how it looks with the current source.
EDIT: removed the source code, since there's a newer one out there.
Hi Sibbor
That's looking pretty good mate - I like it! I already have some ideas on how to fix the flicker - for the majority of the time anyway. Rendering the image as a bitmap in the background and then just drawing that should hopefully work like a double buffer or something. Also, only invalidating the relevant part of the screen instead of all of it should make a difference too. It worked for my other application anyway.
I'll try and have a play with it this week and send you an update
Swoop2 said:
Hi Sibbor
That's looking pretty good mate - I like it! I already have some ideas on how to fix the flicker - for the majority of the time anyway. Rendering the image as a bitmap in the background and then just drawing that should hopefully work like a double buffer or something. Also, only invalidating the relevant part of the screen instead of all of it should make a difference too. It worked for my other application anyway.
I'll try and have a play with it this week and send you an update
Click to expand...
Click to collapse
Sounds great! Made a few more changes but haven't got the latest source available here at work. I'll see if I can get time to upload it later. Otherwise it doesn't matter too much.
I reacted at the code where the grid updates, but have too less experience with WM6 and .NET to actually optimize this to a grade where we'll have no flicker at all. So with other words: I'm looking forward to your anti-flicker code !
I should finally have some time to look at this at the weekend so if you have an updated version can you post it on here?
Swoop2 said:
I should finally have some time to look at this at the weekend so if you have an updated version can you post it on here?
Click to expand...
Click to collapse
Hi again mate! Good to hear. Sadly I haven't been able to get too much done since last time, but I'll attach the current source now.
Thought about the rotation and how to create it. Had an idea where you could destroy the current piece when rotating, and creating a new - rotated - piece at the given location. You got any ideas about it otherwise?
I've been looking for a decent Tetris game for Diamond/TP myself.
Question: are you planning on implementing the scrollwheel to move the pieces? I think that would be a nice touch.
Good luck on this. I'll donate to the cause when you guys have something.
hefman said:
I've been looking for a decent Tetris game for Diamond/TP myself.
Question: are you planning on implementing the scrollwheel to move the pieces? I think that would be a nice touch.
Good luck on this. I'll donate to the cause when you guys have something.
Click to expand...
Click to collapse
The requested function is already supported We'll make sure to setup donations when we're ready
this is definately a worth while project, i wasted my time for about 3 hours looking for a nice tetris game 4-5 days ago and came up with very nasty looking basic tetris clones.
which all sucked, id donate £5-7 just for saving me the time!!
thanks
CDMA Tetris
I am so all about Tetris.
I also spent some time looking for some decent versions of Tetris but they all flopped.
I cannot wait till you guys complete this.
There is a game on the iPhone called Lights Out where the object of the game is to light up or knock out all the lights in a 5x5 grid. When a square is selected that square and its four immediate neighbours, above, below, and to each side invert. There is no wraparound. The object of the game is to get all the squares black.
At the risk of revealing my age, I saw a hand held version of this game in the early 1980's.
When mastering any new programming platform, this application becomes the standard with which I start. I know the logic, so the problem merely becomes getting the thing to run under the new platform. I wrote this in 2005 while fighting my way through the very steep learning curve of Embedded C++. Previous platforms for this program have been, ZX81, BBC Micro, DOS, Windows and finally Windows Mobile. Next stop Linux!
It is an example of minimalist programming on WM. Written in Embedded C++ as a Win32 application it is targetted at ARMv4 chipsets. As such it should run on all PPC versions from Windows Mobile 2002 onwards. The menu is limited to two main items, so WM 5/6 will display it as a WM 5/6 app. Minimalist programming means it can be distributed as as a single .EXE file of a mere 9.5 Kb in size. The DLLs it calls are already on your device, there is no need for a .CAB installation.
It has 5x5, 7x7 and 9x9 grids, all are solvable.
I hope you enjoy it. It will keep you quiet but it might drive you totally nuts!
UPDATE!!! Now works with 480x800/240x400 devices, see later posts for the details.
UPDATED!! Version 1.2 released.
Changes: 11x11 grid added. It is solvable, but it took me a while to figure it out!. You may need a stylus as fingers may be a bit too awkward. For that reason, I do not intend to go to 13x13 and beyond.
The short display glitch on initial program load now fixed.
Game and drawing code optimised. (There are often better and faster ways to do things, if you take the time to look.)
UPDATED!! Version 1.3 released.
Now also runs on both Pocket PC and SmartPhone devices. Now runs on any sized screen, even those that have not been released yet! The blank screens that were reported in later posts are now a thing of the past. Here's the method, take the width and height of of the client area and size the game to 90% of smaller of the two. Why did I not think of that in the first place?
SmartPhone users:- Welcome aboard! Image attached below: The white square is the target square. Move it to the square you want to change with the D-Pad/Arrow buttons, then press 'Enter' to change it. Smartphones prior to Mobile 6.0 may not have the 'File Explorer' application. (It depends on the OEM build). In this case, use ActiveSync. Connect to your phone and drop the unzipped 5x5.exe file via the 'Explore' option into the \Windows\Start Menu\Programs\Games\ directory, and it will appear alongside Solitaire and BubbleBreaker in the games menu of your device. Smartphone 2002/2003 users need to use \Storage\Windows\Start Menu\Programs\Games\
Pocket PC users won't see any change, just tap the square you want to change. The program looks at which platform it is running on, and behaves accordingly.
UPDATED!! Version 1.4 released. - The Knight's Gauntlet.
Just when you thought you've mastered it, the Knight's Gauntlet is firmly thrown down. Selecting Knights from the main 5x5 menu, changes the pattern of squares that are inverted to those a knight's move away in chess, (two forward, then one to the side), as per the Knights image below. Up to 9 squares will invert on each move. As per changing the grid size, toggling the knights game on and off will restart the game.
All four grid sizes are solvable, but you are warned, it is a lot harder than the normal cross game.
It was only a small change to the game logic, and this program was all ready to go in September, but I would not release it, until I had proved to myself that it could be done. A brute force attack can be used to break the 5x5 Knight's game but as the grid gets bigger the problem grows exponentially. A quad core processor running a console C++ application, using the SSE3 PC registers (XMM) macros to play one move on the entire board in one machine instruction, was not enough.
I had to use a special version of the mobile program that could dump the state of the board and moves out to a file to be analysed by the PC later by a suite of programs that could combine boards together by the thousands. All good fun!
On and off, it has taken me three months to find the knights solutions to the 7x7, 9x9 and 11x11 games.
UPDATED!! Version 1.5 released. Now with demo mode.
For those who think it is impossible, let the demo mode show you how to do it.... But there is a slight twist........ You will be shown the same solution for each puzzle each time, but the moves are shuffled and they may also be reflected or rotated, just to confuse matters further. Shuffling the moves, rotating, or reflecting, logically, has no effect on the final result.
Happy puzzling!
18th Feb 2010 update fixes WinMo 6.5.3 Dialog box issue mentioned in http://forum.xda-developers.com/showthread.php?t=635063
23 June 2011 CE version added. Note this version is for Windows CE, ARM powered devices only, as is displayed in the last of the images below. Don't run this version on a WinMo device the display will look awful! As an extra caveat, it will only run properly if the OEM of your CE device has built the OS with components that are expected by the 'Standard' version of the SDK as used by EVC 4.0.
Any screenshot?
Thanks!
Nice little game.
Small problem
Hi,
I'm probably missing something here, but I get a white screen without anything I can actually do with it (using Omnia).
Any help?
Grief that is going to be addictive.
So simple yet so tricky at the same time.
works fine on a SQVGA (320x320) device to, and im after 1 minute angry ....
very nice; solved 5x5 - 9 clicks. going to try to crack 7x7
this is lot's of fun & a little tricky!
nice game
Does not work with my HTC Touch HD (WVGA 800x480)
I got a white screen.
stephj said:
At the risk of revealing my age, I saw a hand held version of this game in the early 1980's.
Click to expand...
Click to collapse
LOL at remark above ^^
Nice little time waster you have here! Thanks!
Anybody thown their phone out the window in frustration yet?
To the members having trouble with high resolution devices, it was only written to run on 'standard' Pocket PC screens, 240x320 portrait/landscape and 240 square devices.
Sorry it doesn't work properly on larger screens. I'll have a look at it. I may have to borrow one of these later wizzo phones from someone, and find out what's going wrong, or I'll see what's in the WM6 SDK emulator.
May take a while, but I'm on it. Watch this space.
doesn't work on touch diamond 2 with 800x480?
any solution you might know?
anybody??
seems like a great hit, this game.....
tnx in advance
marcel
I have downloaded the WM 6.1.4 SDK from Microsoft's site. It includes a 800x480 device image.
The bad news is the program produces the effect mentioned above. i.e white screen, and nothing.
The good news is exactly that, the bug can be reproduced. This will allow me to step through it, figure out exactly what the hell is going wrong, and fix the code.
This may take few days to sort out, more later.
Fixed! Now works on 800x480 devices as well, in landscape or portrait. Use the zip file in the original post at the top, it has been updated with the new program.
The reason for the fault was that 800x480 devices return a bigger value for the long side of the screen when using GetClientRect();
The program did not recognise this value and could not figure out whether it was landscape, portrait or square, which fouled up the WM_PAINT code.
The code automatically centres the grid in the window, so that bit was OK.
Have fun, until a new screen format comes along.........
This little game is f***ng addicting!
Thanks a lot!
Keep up the good work!
[email protected] said:
Hi,
I'm probably missing something here, but I get a white screen without anything I can actually do with it (using Omnia).
Any help?
Click to expand...
Click to collapse
I'm using Samsung Omnia and I get the same problem when starting 5x5. What to do?
HOLLY BALLS! lol this game is addicting and hard. i am yet to beat it!! haha. great game thanks!
It is a kind of drug........
Reply to GreenOmnia
GreenOmnia,
This program will run on 480x800 devices as marcelvanblankers above can confirm. The problem may be that you still have the old version of 5x5 active in your phone.
On a PC you can run multiple versions of Word, Excel etc. until you run out of memory. Under WM only one version of any program is allowed to run at any one time. When a program starts it looks for the same named process. If it finds it it, it activates that copy, and then kills itself. Later versions of WM may correct this, but earlier programs still run to these rules. If you load a new version of the program to your phone and have the old version still active in memory, when you run the new one you only reactivate the old one.
Listen up everybody! Think about the above paragraph. If you have understood it, that is a real WM pearl of wisdom!
To fix the problem, if your version of WM has Task Manager, use that to kill the running version of 5x5, or use Settings->System->Memory->Running Programs and then select 5x5 and end it. Delete all versions of 5x5 from your phone, then reload the new version from the top post in this thread and retry it.
If all this still doesn't work, I will post a test program to run on your device that reports the actual size of the client area window.
We'll take it from there.