Misc .NET CF questions - Windows Mobile Development and Hacking General

Hello, I'm thinking about switching over from my Palm OS Treo 700p to a Sprint Mogul and would like to develop some apps using .NET. I'm a long-time VB developer (VB3 thru VB6) but a more recent newbie with .NET (focusing on C#). I've also had experience with several Pocket PC / WM devices and dabbled with eVB long ago (hated it). Anyways, I've got some ideas for apps/applets/hacks that I'd like to create for WM devices (and the Mogul specifically), but I'm not sure what's possible with WM6 and .NET, so some questions:
1) Let's say I wanted to create an app that "runs in the background" all the time. I'm fairly certain that I can create an app that gets started after a soft reset but doesn't show any visual signs of being started. I want this app to essentially "listen" for other events. So, if for example, I'm using IE and the user presses a specific hard button, I want my app to trap that before IE notices it. My app might then fire up a window which displays on the screen.
a) Can I do this?
b) Can I trap *any* button (including the Start button, the OK button, and the two "soft menu" buttons?
c) Can I distinguish between a regular button press and a "press and hold"?
2) Can I effectively "replace" some/all of the built-in phone functionality? For example, when a call comes in, instead of the built in phone functionality taking over and showing on-screen an answer/ignore window, could I create an alternative app that had answer/ignore buttons?
3) What are my options for displaying windows on top of other apps?
a) Can I have a small window display on top of other running apps?
b) Can I do something fancy like have my app display a translucent full-screen window on top of a running app?
Thank you for any help you can offer.
Scott

all those things are possible but I think you had better use c++ especially for the phone stuff.
for the button pushes, the problem is that other programs can change it after you start up. Because the user will not see you app they will not know it happened.
There is not a good way to replace the phone answer dialog but you can just stop it and put up your own, you will need to be careful to prevent any uncontrolled ringing or vibrating that can be left when stopping the phone. If you are using c# to know when the phone is rinning you will not catch it fast enough to prevent the phone app rinning before your one.
You can put windows on top of other windows but you will then have to make sure the ok/x is correct. Its very easy to screw up the os smart minimize so that it no longer corresponds to the window the user sees. Maybe it would be better to just subclass the window you want to cover and make it look like you want.

Related

C# help needed - trap hard button presses when other apps have focus

Hi, I'm hoping some folks out there might be willing to help out a CF.NET newbie. I'm starting out with VS 2005 / C# and want to create an application, along the lines of SPB's virtual keyboard, that runs in "the background" and does the following:
1) Is automatically started upon a soft reset, but runs silently in the background.
2) Intercepts a hard button press when other apps have the focus (it will be using this button press as a trigger to display my app in the forefront).
3) Before it launches, it needs to check to see if the app that currently has the focus has focus on a text box (i.e., a blinking cursor). I only want to launch my app if that's the case.
4) Before I launch my app, I want to copy the contents of that other app's text box.
5) My app will have a multi-line text box and when the user exits out of my app, I want to paste the text from that text box back into the text box of the app that previously had the focus.
Any pointers anyone can provide regarding any/all of the above would be greatly appreciated. Thanks,
Scott

make wing more friendly for phone/text device?

I've hated my wing pretty much since I got it. I tried some 3rd party stuff for awhile and then I basically just quit using it. I've had some changes in my life where I'm using my cell phone more often and would like some advice on what to put on my wing to make it easier to just use as a phone and text message device.
any recommendations? I'm up for trying anything commercial software or home brew stuff.
thanks!
kmc
softkey changer and make one go to the texts?
it's already very simple to use the phone and texts
I am curious as what you mean to make it easier to use for phone and text.
Right now pressing the green call button will load up the phone interface left soft key hide keypad and select your contact or recent caller. Thats pretty easy in my opinion. Now for sms the program is slow loading. I speed this up a little by using QuickMenu and assigning the right soft key to a shortcut that opens sms/mms account directly. With QuickMenu I use the exclude option for tmail.exe set to "both not".

[REQ] Disable Touch Panel from shortcut

I have tried to make this myself but im not the best at c# I was hoping someone would like to write a small app that disables and enables the touch panel without using the gsensor or light sensor or nav sensor. i want to use this with a mort script so it would launch the app to disable touch panel then run the rest of the script then launch the app to enable it. i don't care if its two separate apps. if someone can help i would appreciate it so much. thanks
This isn't an actual shortcut, its a bit better than that if you ask me.
http://www.freewarepocketpc.net/ppc-download-sensorlock.html
Basically you just spin the phone in your hands and it will lock, watch the video, it shows what to do
I've also found an application called sleep, I used that for a while but now I'm on WinMo 6.5 and I just use the lock button instead. Just do a quick google for a program called sleep, shouldn't be too hard to find.
And also there is an inbuilt lock thingie where you can set your phone to lock the screen if you hold down the end call button for like 5 seconds but that one is a bit of a pain cause you gotta hold it for ages before it locks and then when you try to unlock it is hard especially if youre outside with the sun shining.
AdamHC said:
This isn't an actual shortcut, its a bit better than that if you ask me.
http://www.freewarepocketpc.net/ppc-download-sensorlock.html
Basically you just spin the phone in your hands and it will lock, watch the video, it shows what to do
I've also found an application called sleep, I used that for a while but now I'm on WinMo 6.5 and I just use the lock button instead. Just do a quick google for a program called sleep, shouldn't be too hard to find.
And also there is an inbuilt lock thingie where you can set your phone to lock the screen if you hold down the end call button for like 5 seconds but that one is a bit of a pain cause you gotta hold it for ages before it locks and then when you try to unlock it is hard especially if youre outside with the sun shining.
Click to expand...
Click to collapse
thanks for the response, i have used sensorlock and it is a great app but i want the screen lock so i can run script that involves buttons press while the phone is in my pocket
question about SIP default
i know this may not be the most appropriate thread to put this question on, my apologies. From the title I thought it may be. Anyhow, I installed phm registry editor and am trying to learn to use it, but not sure how to find something im wanting to change. My SIP default seems to be that anytime i open my sms inbox, or email, etc, my keyboard pops up without me selecting it to do so. I want to change it so it only pops up when I select the little tab/icon to MAKE it pop up.
Any help would be greatly appreciated. Much thanks in advance.

[APP IDEA] App Start by tilt plus touch

Hey Everyone!
I'm sure most of you have, like me, spend quite some time on trying different shortcuts for starting your favorite application.
Of course I changed the two softkeys on the start menu and installed an iphone-like launcher (Launchpad) but thats not good for the "heavy-used-apps".
I tested lots of little helpers like
G-Trigger (where you accelerate your device e.g. from left to right to start an app)
or
Butler (which lets you start apps by stroking from one hardware button to another)
or
GScroll (which is my favourite, you can assign different apps for touching the hardware buttons, but which has the problem that you often incidentally start an app)
Now I had an idea for a sounds-great-to-me helper:
To start an app, you touch (not press) the center button and tilt the device at the same time. Like gScroll this would make it possible to start many different programms with combinations like two times left or left and up or ...
while the likelihood of incidentally starting an app is low since you seldom have your finger lying on the center button.
Does anyone of you guys has the knowledge to make a workable program or to edit your already existing program to do this?
Or, am i just stupid and there already is such a great app, and all of you guys are already using it
Well, thank you, and Tschüß from old-germany..
JackWiDu
jackwidu said:
Hey Everyone!
I'm sure most of you have, like me, spend quite some time on trying different shortcuts for starting your favorite application.
Of course I changed the two softkeys on the start menu and installed an iphone-like launcher (Launchpad) but thats not good for the "heavy-used-apps".
I tested lots of little helpers like
G-Trigger (where you accelerate your device e.g. from left to right to start an app)
or
Butler (which lets you start apps by stroking from one hardware button to another)
or
GScroll (which is my favourite, you can assign different apps for touching the hardware buttons, but which has the problem that you often incidentally start an app)
Now I had an idea for a sounds-great-to-me helper:
To start an app, you touch (not press) the center button and tilt the device at the same time. Like gScroll this would make it possible to start many different programms with combinations like two times left or left and up or ...
while the likelihood of incidentally starting an app is low since you seldom have your finger lying on the center button.
Does anyone of you guys has the knowledge to make a workable program or to edit your already existing program to do this?
Or, am i just stupid and there already is such a great app, and all of you guys are already using it
Well, thank you, and Tschüß from old-germany..
JackWiDu
Click to expand...
Click to collapse
Not exactly what you asked for. With TouchLockPro you can couple 8 commands to NavSensor moves and 4 commands to Gsensor orientation moves. But of course, in the first place it is a locking application.

WP 8 and Multitasking

Hello there!
I would like to try it by myself, but unfortunately I cant. So, someone who tried the SDK, have you noticed changes in multitasking system?
Right now the only way to resume an app is using fast app switch. But I really dont like it. I rather just use the homescreen icon instead. Right now it relaunch the app.
Any changes on that? (oh please)
Thank you so much!
mikeeam said:
Hello there!
I would like to try it by myself, but unfortunately I cant. So, someone who tried the SDK, have you noticed changes in multitasking system?
Right now the only way to resume an app is using fast app switch. But I really dont like it. I rather just use the homescreen icon instead. Right now it relaunch the app.
Any changes on that? (oh please)
Thank you so much!
Click to expand...
Click to collapse
Windows Phone apps can never resume via the homescreen like iOS, due to the addition of the hardware OS back button.
To illustrate why; imagine you have an app that has start page and a settings menu. When a user goes to the settings menu, they can only go back to the start page by pressing the hardware back button (this is standard Metro design).
Now imagine a user opens the app, goes to the settings menu, then exists the app by pressing the Home button. They then do a few other tasks and then resume the app. They are now stuck in the settings menu and can't get back to the app start page; the back key will take them back to the WP8 Home screen (this is how the WP OS backstack works).
To get around this issue, Microsoft specify that starting the app from the front page always has to start a fresh instance, so the user can never get "stuck".
iOS has software back buttons on every page, so all apps can resume however you launch them. Android had the same problem with their back button (actually worse, as their backstack can be altered by the OS choosing to kill memory-intensive apps); to get around this, from ICS onwards Android apps are meant to have a software back button in the top-left, to go back within the application (hardware back key is still OS backstack).
Aphasaic2002 said:
Windows Phone apps can never resume via the homescreen like iOS, due to the addition of the hardware OS back button.
To illustrate why; imagine you have an app that has start page and a settings menu. When a user goes to the settings menu, they can only go back to the start page by pressing the hardware back button (this is standard Metro design).
Now imagine a user opens the app, goes to the settings menu, then exists the app by pressing the Home button. They then do a few other tasks and then resume the app. They are now stuck in the settings menu and can't get back to the app start page; the back key will take them back to the WP8 Home screen (this is how the WP OS backstack works).
To get around this issue, Microsoft specify that starting the app from the front page always has to start a fresh instance, so the user can never get "stuck".
iOS has software back buttons on every page, so all apps can resume however you launch them. Android had the same problem with their back button (actually worse, as their backstack can be altered by the OS choosing to kill memory-intensive apps); to get around this, from ICS onwards Android apps are meant to have a software back button in the top-left, to go back within the application (hardware back key is still OS backstack).
Click to expand...
Click to collapse
But it sucks so bad! They should review this. I hate to use the back button, and I hate to not resume the app. Using a common app, for example, WhatsApp. I was in a chat with someone. Then I hit Windows button and Im at start screen. Then I receive a message from the same person I just left the chat. What I do? I can open from the toast, can open from fast app switch (back button), or open from start screen icon.
If I open from toast, that will depend on what the app was meant to be. In WhatsApp it would take me to the chat, because of deep toast notification. But, right now, it needs to reload the whole app to open just the chat.
If I open from fast switch, it will resume the app right away. Nice. But in any other platform the message would be there waiting for you. Right now, in WP, it takes a lot to refresh the chat. You keep like 10 seconds staring at the screen waiting it. Its even faster to just reopen the whole app.
And if I open from start screen, its almost the same effect of toast, but it dont take me to the chat, but to the start screen of the app.
The point is, the fast switch is not helping that much. In fact, it would makes sense to change the fast switch to open when holding the Windows button instead of back button, and whenever an app is open, opening it from start screen icon just resume it. Actually, a lot of people doesnt even know, or even knowing, doesnt even use fast switch. Im not a common smartphone user, and even so I dont use fast switch.
For me, its the worse problem of platform. And I dont care about CE or NT if it works, but I care about it working at all. Doesnt make sense to put a whole computer in my pocket if it cant resume a single app.
i don't like the idea either to relaunch the app when you just have put it in background. then again, i also hope we will be able to close apps from the fast-appswitch-screen. and add an option to the gesture lovers out there: pinch out on homescreen to launch multitasking. or swipe from edge like w8. or anything like that. it would add to UI experience and would eliminate that 2-seconds-pause when pressing and holding down the backbutton.
Was the question not about Windows Phone 8?
Windows Phone 8 is supposed to behave differently, since true background processing is supposed to be enabled. I haven't played with the SDK yet, but I suspect that for non recompiled apps, things will behave as they do on Mango. But, I think that things changed to target WinRT and set to be able to run in the background will be able to resume right where you left off.
It wouldn't make sense for an app that is running and processing things in the background to restart when the tile is pressed.
It's been a while since I used Mango or wrote any apps for it. But, when an app is suspended, the dev has a specified amount of time to save the state.
That way when it is relaunched, the app can resume where it left off, by processing the saved state on launch. I thought with fast resume the app stayed in memory, but that was done through a registry hack and not directly made available by any carrier.
After doing some reading, the multi tasking enhancements might only add gps and voip to the currently supported background processing.
JVH3 said:
But it sucks so bad! They should review this. I hate to use the back button, and I hate to not resume the app. Using a common app, for example, WhatsApp. I was in a chat with someone. Then I hit Windows button and Im at start screen. Then I receive a message from the same person I just left the chat. What I do? I can open from the toast, can open from fast app switch (back button), or open from start screen icon.
If I open from toast, that will depend on what the app was meant to be. In WhatsApp it would take me to the chat, because of deep toast notification. But, right now, it needs to reload the whole app to open just the chat.
Click to expand...
Click to collapse
Tapping the toast to re-open the chat is the correct behavior here. I guess it's just bad coding that makes it take so long to resume; it should just be able to go straight to the conversation and skip all the "loading contacts...connecting" stuff.
JVH3 said:
Was the question not about Windows Phone 8?
Windows Phone 8 is supposed to behave differently, since true background processing is supposed to be enabled. I haven't played with the SDK yet, but I suspect that for non recompiled apps, things will behave as they do on Mango.
But, I think that things changed to target WinRT and set to be able to run in the background will be able to resume right where you left off.
Click to expand...
Click to collapse
Are you sure you're not thinking of Windows 8? For Windows Phone 8, no changes have been announced regarding multitasking or background tasks, *except* that a few select APIs (VOIP, location) will be able to run in the background, similar to iOS (not true backgrounding like Android)
Also we are talking about resuming, not background processing. In the WP8 SDK emulator, apps built into the OS don't resume; Therefore it's safe to assume 3rd party apps are not going to either.
JVH3 said:
It wouldn't make sense for an app that is running and processing things in the background to restart when the tile is pressed.
It's been a while since I used Mango or wrote any apps for it. But, when an app is suspended, the dev has a specified amount of time to save the state.
That way when it is relaunched, the app can resume where it left off, by processing the saved state on launch. I thought with fast resume the app stayed in memory, but that was done through a registry hack and not directly made available by any carrier.
Click to expand...
Click to collapse
When an app is closed the developer is meant to save the state, so that it can be reloaded if it is quick-resumed. However, once the app leaves the backstack (the 5 apps that appear in when you hold the back-button), this state is supposed to be discarded.
This is not a technical issue; it would be trivial for app developers to save the state and make their apps resume. The issue is that Microsoft's publishing guidelines (to get your app published on the WP app store) specifically says that an app launched from the home screen must launch showing it's introduction page, i.e. it can't resume. It could save some state, so a web-browser could still have all the recent tabs open, but it couldn't show the last one seen (ironically IE9 does resume it's state - guess Microsoft are allowed to break their own guidelines).
I agree it doesn't make sense to restart an app that is performing some background task; but then how to you avoid users getting stuck within a certain page, as in my example above? If WP8 includes a hardware back button, they can't change this policy.
Well, thats a shame. I hate reloading the app everytime I need it. Its so meaningless. I dont need VOIP, I dont need Skype running all the time. But I do need apps to be fast.
It really depends on how exactly the developers save their app state when the app is sent to background/tombstoned.
I, for one, use a text file to save data ( a lot of data) and proceed to loading the app as usual, and the moment the user presses a button, a pop up asks him weather he wants to restore or start anew.
I'm guessing that not every app will do this, as it is up to the developer to implement this.

Categories

Resources