WM6, dialog-based application and cprog.exe - Windows Mobile Development and Hacking General

I have a simple dialog-based application, created by MS Visual Studio 2005 with WM6 SDK, which shall be auto-started on a WM5 and WM6 smarthpone device through an HKLM/init registry entry. On WM5 everything works perfectly, but not on WM6: When the device boots up, the application starts as expected, but then its impossible to start the device's phone application. Neither through the green HW phone butten, nor through a CreateProcess() or whatsoever.
The phone application only comes up when either the SIM-pin has to be entered, or when there is an incoming call. From these events onwards, everything works perfectly until next reboot. This means, when I use a SIM card with enabled PIN, there is no chance to get the cprog.exe active. If the dialog-based application is closed, everything again works well.
That f... thing drives me crazy, because I see absolutely no reason for this behaviour (as said: on WM5 there are no problems).
On WM6 there are additional problems when connecting via a remote tool (reg editor or process viewer) during the dialog based application runs.
But as also said: There is nothing special in the dialog: Its basded on the VS2005 application wizzard, and the dialog just contains a static text and a picture control ...
Any idea what else I could try to make everying work????

Related

Cingular 8125 Cannot Install or Remove Apps Anymore

I have a new (four days old) Cingular 8125, and it got a bit antsy on me today.
After working flawlessly for three days, I was installing some applications on a new 1 GB mini SD card, soft resetting after each installation, when it returned after a soft reset and suddenly had no phone network. No "E" indicator, and an exclamation point next to the signal strength indicator. Uh-oh, thought I, before I broke down and cried! OK - not really, but I definitely wasn't happy about this!
When I checked the network settings, it said No Network under the GPRS setting. I called Cingular, spoke with a data rep, and performed a hard reset. (Had to use the "Clear Storage" app - holding the keys and soft reset wouldn't work). As soon as it returned from the hard reset, the Cingular software the rep had pushed out to me installed and phone service was restored. Which is a good thing!
But now I can no longer sync the device via Activesync 4.1. Nor can I install any applications; when I try, I get a dialog saying that the installation was unsuccessful. Windows installer or CAB installation, makes no difference. I can't successfully install anything on the device. I had scrubbed the mini SD card, except for a few folders filled with icons for use mostly in Pocket Informant and PocketBreeze. I figured that it couldn't hurt to leave them there. I also can no longer delete files or folders from the device. It's similar to not having Administrator rights on a Windows XP machine. As if everything is read-only, but I cannot change it.
I copied Smartkey over to the mini SD card via Explorer in Activesync, but whenever I reset the device I get a dialog saying that Smartkey cannot run, unknown developer, etc. I can't close the dialog right away, but it does disappear after about 30 seconds. If I open File Explorer and tap on the smartkey.exe file it does start and work normally - until the next time I soft reset.
Activesync will connect with the device but will not sync. Throws the attached error message. So I can explore the device but not sync. I tried deleting the partnership, performing a "repair installation" of AS 4.1 - no change.
As for the applications I had installed prior to all of this, they all seem to be benign - with two possible exceptions.
In Main Memory:
Pocket Informant
PocketBreeze
ContactBreeze
iLauncher
On the mini SD:
Resco File Explorer 2005
PDAMill's Gamebox Solitaire, Gems, and Classic
Dinarsoft's HandySwitcher and HandyMenu
Phatnotes 4.7
ListPro 4
Tweaks2k2
Resco Sudoku
Resco Keyboard Pro
All versions that claim to support WM5. All applications seemed to be working fine, with the exception of Resco Sudoku and Resco Keyboard Pro. The only change I had made with Tweaks2k2 was showing the time and date in the taskbar. Resco Sudoku locked the device up, with just a black background and 13 large colored orbs on the screen. I uninstalled it immediately. Resco Keyboard kept giving error messages when I tried to select it as the SIP. I had just uninstalled Resco Keyboard and performed a soft reset when it returned from that reset it had no phone network. Note that all of these applications had been working fine up until this point in time, except Resco Sudoku and the Resco Keyboard Pro. Hmm... Needless to say, I suspect that the Resco apps have a problem with WM5. But I owuld think that a hard reset should have cleared up anything those apps had done. Maybe not, though.
Anyway, that's when I called Cingular. Does anyone have any idea at all as to what could be causing all of this? Or better yet, what could fix this? Please!!
I'm very familiar and comfortable in WM2003/SE, but I'm completely new to WM5, so I'm not even sure where to look for troubleshooting.
Thanks in advance for any advice!
EDIT: Really sorry the thumbnail is so small - I didn't think that it would be, Click on it to read it. Thanks again.
EDIT: Error should read: 0x8000ffff Sorry about that.
I think the fact that you cannot delete files/folders on the device is key. If you cannot modify folders, then the installer can't either, so software installations will fail. Does this also apply to files and folders on your card? I'm guessing that it does not, and that your supposition (key folders and perhaps registry keys are RO now) is correct. Unfortunately, you can't modify folder permissions using activesync explorer and you can't install an application that can either. Catch-22.
Have you tried a hard reset subsequent to your discussion with the Cingular rep? Perhaps this will re-create an installation with the standard settings.
Sleuth255 said:
I think the fact that you cannot delete files/folders on the device is key. If you cannot modify folders, then the installer can't either, so software installations will fail. Does this also apply to files and folders on your card? I'm guessing that it does not, and that your supposition (key folders and perhaps registry keys are RO now) is correct. Unfortunately, you can't modify folder permissions using activesync explorer and you can't install an application that can either. Catch-22.
Have you tried a hard reset subsequent to your discussion with the Cingular rep? Perhaps this will re-create an installation with the standard settings.
Click to expand...
Click to collapse
No, I haven't hard reset again yet - I wanted to wait and see what responses I get.
I did, however, find one of the Activesync logs though, and all sync attempts since the last one that worked have the following two error messages:
"TraceToFile -> ERROR in CChangeTracker::GetMaxCounterInProfileCleanupTable : hr = 0x800ffff - ctapi.cpp(3695)
TraceTraceToFile -> ERROR in CRAPIDevicePrivate:HandlePackets : hr 0x800ffff - RAPIDevicPriv.cpp(443)
And then some whcih are very similar, but with the numbers in parenthesis changing.
Look familiar to anyone?
Thanks.
OK, I just found a Microsoft KB article (Q243349) that seems to indicate that an 0x08000ffff error is Microsoft SQL Database-related.
??? Baffling.
Actually I do have an MSSQL Server on my PC - one of the programs that I run installed it and requires it. Maybe if I disable it?
EDIT: Error should read: 0x8000ffff Sorry about that.
I just noticed that wherever the errors start throughout the log, the only two applications mentioned - other than Activesync, of course - are Resco Explorer and Ilium's eWallet, which is really odd. I never installed eWallt on this device, though it has been giving me fits on my AximX50v ever since they introduced SyncPro about a year or so ago.
My 8125 is up and running again.
I performed a hard reset and this time I downloaded and installed AS 4.1 on my notebook and tried synching with that. My notebook does not have an SQL server installed, and it's a "virgin" AS install - neither Resco Explorer 2005 nor eWallet Pro has ever been installed on that PC.
I can't say for sure, and I'm still investigating, but I believe, based on the Microsoft KB article that I referenced above, that the SQL server on my desktop PC, and possibly eWallet Pro and/or Resco Explorer 2005, is the cause of my recent grief.
The MSKB article specifically targets the SQL database - same version as mine - as a known cause along with certain databases, and since both eWallet and Resco Explorer 2005 are mentioned throughtout the WCESComm.log, always in the first four or five lines of the error messages contained in the log, I suspect that eWallet's DB may have somehow triggered the mayhem, as their SyncPro has caused endless losses of my eWallet data since Ilium introduced it. It's possible that Resco Explorer 2005 just happened to be the application I had just installed before the device went belly up for a bit there. Actually, Resco Keyboard Pro was installed right after that, but since RE 2005 is mentioned in every error log item, and since Resco has a special page on their site mentioning how "...an issue with the way that Windows Mobile 5 handles installing software that may result in a failed installations...". I've written Juro about the issue, to give him a heads up just in case.
So all is well for now. Hopefully I will be able to continue synching my other PPCs (five), all with WM2003/SE, on the desktop, as the SQL thing is only supposed to affect the WM5 OS.
If anyone else runs into a similar situation, please send me a PM or post here. I'd be glad to share whatever I discover on this, and I would also be interested in seeing how other devices were affected, common issues, etc.

Slow Changing of Input Method?

Guys, I have a question.
I used to have an iPaq 6300 running WiMo 2003, when selecting input methods there is an arrow beside the input method you click on to bring up the menu that lets you choose between Keyboard, Block Recognizer, Transcriber or Letter Recognizer. This was instantaneous! The moment you press the arrow, the menu pops up and you can switch input methods instantly.
On my new Atom Exec though this is not the case. You have to press the input method icon first, which brings up the arrow, then click on the arrow, then wait like a minute before the menu pops up. What gives? Is this really how all WiMo5 devices work? Is this a problem with WiMo5 or with the Atom Exec in particular?
It is annoying because it makes it harder to switch between input methods. Could someone tell me the score on this?
Thanks,
My bad, I fiddled around with the Atom a bit more and fixed the problem by doing a Hard Reset. Now I set the PPC back up to how I like it and it's working flawlessly.
Hmm after some time the problem seems to be back. It looks like the phone bogs down with stuff after a while, causing this problem. I don't feel like reformatting, does anyone have a fix, or a program that cleans up and optimizes your PPC?
this is an issue of WM5.
It also happens to WM6. The more applications you installed, the slower it will get (not sure what kind of application though). Well, Atom Life has 1GB of ROM. Of course people will start installing a lot of applications.
Anyway, I read somewhere in the forum stating that if you have more than 10 today plugin installed, the SIP will take a some time to appear. The plugins don't necessary be active. I mean, the ones not active are also counted. I have not confirmed this yet though.
I have more than 40 programs installed in my atom. It didn't slow down that much (only 5 to 10%) but what I usually do is to backup everything first before I install anything. At the first sign of speed reduction or bugs, I just do a restore. I have more than 15 today plug-ins both active and inactive. However, one thing I noticed is that it is better if you install your non-essentials to your sd card. It doesn't matter if you do a hard reset, they will still be there and if you use a tray launcher or clauncher, you can configure the icons to reappear even if you do not re-install them. This way, you reduce the clutter in your main memory and at the same time save you the trouble of re-installing. The reconfiguration of the executable icon will take some time but it is still faster than re-installing 30+ programs. It is important though to maintain a storage of no less than 17MB. Once you go below this, you will really see the reduction in speed and will be pissed off with your PPC. By the way, do not use Opera or any modified IE (tab browsing and downloading. by the way, Opera is good with downloading but sucks in handling your PPC's memory) while doing something else with your PPC. It will really really slow down your PPC.
i posted this same thread sometime ago, but there was no solution. At last i discover the culprit. I see the difference in speed when i install Embedded Windows VB Runtimes. regardless whether i install it in the memory card or the main memory.
Got this info from another site, it really works.
--------------------------------------------------------------------
make WM5 SIP faster (加快輸入法) (not a joke)
X51V ENG A12 + Ce-Star 2.8R2A + Monster SIP + MS IME for JAP works well.
But I am not very sure "every WM5 PPC" works well, too.
After installing a lot of softwares, WM5 SIP becomes slow.
You can make it fast again.
1. install resco explorer 5.42 and resco registry at \Device
2. use resco registry to export the registry of
HKEY_CLASSES_ROOT\CLSID
to a file (like CLSID.reg) at PPC, or SD, or CF
donnot edit or modify CLSID.reg
3. use resco registry to delete CLSID
4. use resco explorer to execute CLSID.reg to import the registry CLSID back
5. turn off PPC, soft reset
It is amazing like magic.
--------------------------------------------------------------------
Weird... it really works. Everything back to normal. Menu is displayed instantly after tapping on the list button.
I'm using Atom Life WM6, so this mean that it also works for WM6.
Urk Double Post
Aha! O2's proprietary software is a bunch of Today plugins! That may be the culprit. I noticed the a while later though after the O2 software was installed.
I have no perceptible slowdown on the Exec other than the input method switching. I just need to fix that!
My main memory is about 85% free (83.6MB) and yes I do install all the non-essentials to the SD card.
MightyOx I'll try your method hopefully this fixes this issue. While "upgrading" to WM5 I thought it would be a completely better experience, but I'm finding WM5 has issues and that quite a few things were done better in WM2K3 (like the SIP switching speed) or how about creating a new SMS message in WM2K3 you only needed 2 taps here in WM5 you need 3. *roll eyes* sometimes I wonder what developers are thinking when they take steps backwards like this.
On the other hand I love being able to rotate the screen, and Voice Command 1.6 was totally worth it.
Mochan said:
Aha! O2's proprietary software is a bunch of Today plugins! That may be the culprit. I noticed the a while later though after the O2 software was installed.
Click to expand...
Click to collapse
It's not O2's software. It just happen to be the next software you've installed before the problem show itself. It can be any software. As I said in my previous post, it will happen after you've installed a certain number of software. I think it is WM5 and WM6 related.
Anyway, the workaround is already posted. So, I have no more complain about this problem.
Yeah, looks like it's not. I tried Mightyox's method, THANK YOU SIR my Atom is running fine again. It's like once you pile over some registry entries over the CLSID directory, it takes time to get it. So the solution is to delete the registry key and "re-enter" it so it goes back on top. Very strange but if it works then more power.
Tried it on my flame...Wow...works like a charm

WM6 Typhoon bugs and issues

It would be may be good to create a list of known bugs and other problems with the WM6 ROM for Typhoon. Please post here if you know about some bugs or strange behaviour.
I have been using this rom since yesterday and after few restarts, the phone remains stuck for about 3 minutes in the "mobile operator" screen during start up. Eventualy it asks for pin code, but after typing in, the time, operator and appointments information is missing in the home screen. I have flashed WM6 once again, but this phenomenon occurred again after application unlock and installation of basic software (xbar 2.5, pocket controller, Binaries smart explorer, auto keylock, smart time sync) + few restarts. Now I am searching for the reason if this is caused by some registry entry or by an incompatible software installed...At present I removed all the software but problem still present. Ready to make registry clean or hard reset...
lot of software incompability, mostly games,
-bug tcmp looks like the same most games have; there is sound but the screen will freeze in a few seconds (sound continues )
..tried to add T9 language according to instructions described at Ronswens pages for WM5. During writing sms I can choose the new language, but after choosing it only beep occurs when pressing a key. I suppose there should be changed also some another key in registry...do we have some experiences already with the T9 languages on this WM6 rom?
Netopjer said:
I have been using this rom since yesterday and after few restarts, the phone remains stuck for about 3 minutes in the "mobile operator" screen during start up. Eventualy it asks for pin code, but after typing in, the time, operator and appointments information is missing in the home screen. I have flashed WM6 once again, but this phenomenon occurred again after application unlock and installation of basic software (xbar 2.5, pocket controller, Binaries smart explorer, auto keylock, smart time sync) + few restarts. Now I am searching for the reason if this is caused by some registry entry or by an incompatible software installed...At present I removed all the software but problem still present. Ready to make registry clean or hard reset...
Click to expand...
Click to collapse
I have this problem too and I back to wm2k3
r0c0 said:
lot of software incompability, mostly games,
Click to expand...
Click to collapse
I have found the decision:
1)
We open "exe" a file with game in any HEX-editor, we find gx.dll and it is replaced on g0.dll
We clean the signature from a file by means of SignRemv and it is done new by means of Signed tool
To place the changed file back, and a file g0.dll to place in folder Windows
or 2) To replace a file gx.dll in folder Windows, in any a file-manager to put "read only" and restart (there can be problems with other programs)
As example Bustem
PS: forgive for my bad English
Netopjer said:
I have been using this rom since yesterday and after few restarts, the phone remains stuck for about 3 minutes in the "mobile operator" screen during start up. Eventualy it asks for pin code, but after typing in, the time, operator and appointments information is missing in the home screen. I have flashed WM6 once again, but this phenomenon occurred again after application unlock and installation of basic software (xbar 2.5, pocket controller, Binaries smart explorer, auto keylock, smart time sync) + few restarts. Now I am searching for the reason if this is caused by some registry entry or by an incompatible software installed...At present I removed all the software but problem still present. Ready to make registry clean or hard reset...
Click to expand...
Click to collapse
how do you make application unlock on wm6 ?
Java
is there Java support with this WM6 ROM? I can't seem to find it. Very useful for Opera Mini and Gmail standalone app.
sebip said:
how do you make application unlock on wm6 ?
Click to expand...
Click to collapse
Use regeditSTG2.exe to modify the following phone registry keys:
- HKEY_LOCAL_MACHINE\Security\Policies\Policies0001001 = 1 (that will enable the rapi_config, 1 means full access to rapi config, 2 means user controlled access)
HKEY_LOCAL_MACHINE\Security\Policies\Policies0001005 = 40 (that disallows the check for security cirtificate etc)
HKEY_LOCAL_MACHINE\Security\Policies\Policies0001017 = 144
Run SDA_ApplicationUnlock.exe from the PC with the phone connected via ActiveSync. This will unlock the phone.
Disconnect and switch the phone off then back on again.
Hi,
I can't use voice talk (via handset bluetooth) before in wm2k3 and wm5 i have the fonction to add voice command with contact, but now no.
It is normal ?
Thx.
...I also revealed interresting behaviour when you are trying to connect to internet via GPRS. There sometimes occurrs error message that it couldnt be established GPRS connection because of missing GPRS coverage. (the "G" is also missing in homescren icon bar). But I am sure there is no GPRS coverage problem in my location.
So in this case you have to go into the phone settings and choose your network again. Afterwards when you are re-registerd in your network, the symbol G is present in iconbar and you can run the GPRS connection. Sometimes prolongomenous procedure...
I had pretty much the same thing as a few of the others.
Xphone11
WM5 - WM6
It flashed all ok, the phone booted all good and worked fine - but then after around 15 min of running, reciving one call and 3 failed attempts at sycning it died.
Well - actually, I re-booted it for something and it never came right after that.
These are the issues which appeared;
Contacts wouldn't open (yet the proccess was fired),
Calendar threw a 'missing file' error,
Start menu wouldn't work (no response from the button),
GPRS service was dropped ("no service available" - even though there was and the phone could see it if you seeked for it),
Yet the phone recived text messages while in this state and while calling the phone it just wouldn't do anything - yet to the caller it would appear to just ring and ring (not a provided service).
An interesting thing - I found that by making a change to the home screen or theme would allow the start menu too function as it should and the the clock to be displayed on the home screen.
Could be an area worth investigating....
I've had a taste now.... I want WM6!!!
What can I do to help?
...it also would be interresting to know whether there is a possibility to run the USB modem - I couldnt find it in start menu/accesories nor in the windows folder...
How to install for QTEK 8020 (T-Mobile SDA) joystick? please help... fuctional joystick in WM06 (my english low sorry)... right is up, left is down and left not functional and right... ???
///... please delete topic... ///
I am also wondering why nobody who is capable enough tries to make a "joystick-version" of the Typhoon WM6 - that work would be highly appreciated by so many people...
DoctorT said:
I am also wondering why nobody who is capable enough tries to make a "joystick-version" of the Typhoon WM6 - that work would be highly appreciated by so many people...
Click to expand...
Click to collapse
Because WM6 for Typhoon Error on Dumprom.
WM6 looks fantastic, however...
I also have a few disappointments the most important of which are:
- No "Headset" option in the profiles menu!!!
- No STK menu!!!
- Very easily crashing on games and some progs (hope to fix it as stated above)
and the camera is definately worse than in 2003SE
..various language t9 cab files - I tried it and it works fine on WM6
http://melgurth.ovh.org/
do anyone try the standard calculator in wm6 ? It show error in my c500 so I have to use other calculator program
..it looks that my calculator works properly...

New audio switch program for skype and others.

This program is an evolution of the first I made. It will route the audio to the earpiece when an certain program is running.
I put the program here because I have test it in wizard, if people test this in others phones and it works, please post here and maybe move this this thread to an more "generic" forum.
the program MUST be under "\($program files)\audioswitch" folder, you must unzip the contents to this folder.
the configuration file (command.txt) is under this format:
1000
skype
fring
etc
the first line is the delay(in miliseconds) in witch the program will "look" if a program in the list is in the top level window, faster phone, smaller delays, I recommend 1000 ms.
the next 20 lines are the programs you want the audio to be routed to the earpiece(max 20 lines for now).
Again the program is under the "do it on your own risk" and "I am not responsible for anything" licence. And,of course, it is free!! Do not sell it!
It is manly intended for little expert users, as it is still in "beta" fase, hehehe.
How it works:
the program runs in an eternal loop and look for the title of the current window that is displayed for the user in a time interval.
When the program mach the title window with one of the names user configured it it will switch the audio, when the program is not running anymore, the audio will swich back.
Do not launch two or more instances of the program at the same time, could really mess things up. -- se the forum (thanks tucahara)
To stop the program, u must use a process manager.
it would be good if someone could make a cab to install it. -- done see the forum (thanks tucahara)
this is still a beta, I intend to make ajustments as people give feedback.
Thanks,
hope u like.
-----first update---
now, an file called "audioswitch_error.txt" in the root directory will hold the error messages.
------------ List - Working ------------
wizard - I tested
P3301 or P3300 - I tested
att tilt - I tested
touch 3452 and 3450
touch dual
touch cruise
touch HD
Sony Ericsson Xperia X1
BenQ E72
Titan --> see the forum
------------ List - NOT working ------------
T-Mobile Diamond
HTC Touch by Sprint
Samsung SGH-i780
------------------------------------------------------------------------------------
check the new thread at:
http://forum.xda-developers.com/showthread.php?t=502361
new aproach to do the switch and now open source, even with an class that others can improve and put in other apps...
Some people complain about me not openning the source of the app, I have just made this way because there was proprietary code inside and I had no time to rewrite it without the proprietary code.
I have made the best I could, and now I had some time and rewrite the app in open source, to those who only complain about it, get the code and make it better instead of complaining!
Thanks for all that encourage me to continue the work and helped the development.
will retire this project for while...
thanks u all.
Audioswitch for Skype
On HTC Touch by Sprint (CDMA, also known as Vogue), audioswitch does switch the audio in the Skype 2.5 windows mobile PPC from external speaker to handset. Unfortunately, the microphone is then also disabled. I hope you'll be able to tweak your audioswitch to resolve this.
Thank you so much for developing this wonderful applet. I'm sure you will have the gratitude of many frustrated Skype windows mobile users.
What really happens is that when the sound output is switched in some phones, the microphone gain changes too. This happens because the phone thinks it is a "normal call".
Most of the times the mic gain increases, but in your phone it must be decreasing. Try to figure out in registry where the mic gain controls are recorded and chage all of then to the same value. I had this issue with my P3301 and solved this way, but there is quite a time now and I do not remenber where are the reg keys to change, but I have found the information here in the forum.
I will try to figure out for other "hack" to solve this issue... thanks for reply.
doesn't work at T-Mobile Compact IV (aka Diamond)
Sound went to loudspeaker....
PS: fring last version working fine with sound at mine phone (without any additional programms). Sound is going to correct destination automatically
I just tried the latest version of Fring, which automatically switches audio to earpiece when call is connected.
The same issue occurs with the new Fring as I described above with your audioswitch program: I can hear audio through earpiece, but microphone doesn't work (or is inaudible).
I couldn't find a tweak or registry hack to correct this. Any help would be greatly appreciated.
MarceloFB said:
This program is an evolution of the first I made. It will route the audio to the earpiece when an certain program is running.
I put the program here because I have test it in wizard, if people test this in others phones and it works, please post here and maybe move this this thread to an more "generic" forum.
the program MUST be under "\($program files)\audioswitch" folder, you must unzip the contents to this folder.
the configuration file (command.txt) is under this format:
1000
skype
fring
etc
the first line is the delay(in miliseconds) in witch the program will "look" if a program in the list is in the top level window, faster phone, smaller delays, I recommend 1000 ms.
the next 20 lines are the programs you want the audio to be routed to the earpiece(max 20 lines for now).
Again the program is under the "do it on your own risk" and "I am not responsible for anything" licence. And,of course, it is free!! Do not sell it!
It is manly intended for little expert users, as it is still in "beta" fase, hehehe.
How it works:
the program runs in an eternal loop and look for the title of the current window that is displayed for the user in a time interval.
When the program mach the title window with one of the names user configured it it will switch the audio, when the program is not running anymore, the audio will swich back.
it would be good if someone could make a cab to install it.
this is still a beta, I intend to make ajustments as people give feedback.
If someone like this program and wants to make an donation...
https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=4WLQVA6LTKWSL&lc=GB&item_name=marcelofb&item_number=marcelofbxdadonations&currency_code=USD&bn=PP%2dDonationsBF%3abtn_donateCC_LG_global%2egif%3aNonHosted
Thanks,
hope u like.
Click to expand...
Click to collapse
I have an idea. Rather than regularly polling to see what the current windows is, why not use a windows hook to monitor windows messages. When you see a message indicating a window has come to the foreground test it against your list of windows and enable/disable audio switch as necessary. Use SetWindowsHookEx and hook for WH_CBT messages. If you are unfamiliar with using SetWindowsHookEx I could supply you with the hooking code and all you would need to do is insert the code to check the window names, enable the audio switch, and disable the audio switch. Or you could send me the enable/disable routines.
Another tip, I noticed that skype places an icon in the notification area during a call. If there is someway of detecting the notification icon that could be another great way to trigger the switch.
Great program though. Works beautifully.
OOOH
If this program works on the new BenQ E72 I'm getting in a couple of days I'll certainly donate!
THANKYOUTHANKYOUTHANKYOU
hello,
it does not work on hermes (tytn).
by the way "troca2" does work on hermes! - maybe you guys want to work together?
baal_zebub said:
hello,
it does not work on hermes (tytn).
by the way "troca2" does work on hermes! - maybe you guys want to work together?
Click to expand...
Click to collapse
hehhehe, I made troca2, I will see if the switch code is the same or if I have made some mistake...
are u sure you have put the program in the correct directory?? I will make some modifications to have an error feedback. So u can see if something is wrong...
JKingDev said:
I have an idea. Rather than regularly polling to see what the current windows is, why not use a windows hook to monitor windows messages. When you see a message indicating a window has come to the foreground test it against your list of windows and enable/disable audio switch as necessary. Use SetWindowsHookEx and hook for WH_CBT messages. If you are unfamiliar with using SetWindowsHookEx I could supply you with the hooking code and all you would need to do is insert the code to check the window names, enable the audio switch, and disable the audio switch. Or you could send me the enable/disable routines.
Another tip, I noticed that skype places an icon in the notification area during a call. If there is someway of detecting the notification icon that could be another great way to trigger the switch.
Great program though. Works beautifully.
Click to expand...
Click to collapse
It is a good idea to use hook, I have not think of it!
I use a proprietary code included in a lib at the company I work for to make the "switch" but it is not different of what u find here in the forum.
Maybe we can make an effort to re-make it with hooks...
so this program must run all the time? after every softreset you have to start it?
is it not easier with mortscript (for example) to make an shortcut that opens skype as well as the audioswitch program? and closes the audioswithc program when you close skype?
I am using it right now and it seems to work perfect:
i used this script after installing mortscript (http://www.sto-helit.de/):
run( "\Windows\SkypeSoundSwitch.exe" )
runwait( "\Program Files\Skype\Skype.exe" )
close( "troca2" )
(see that in my case i downloaded your original program and renamed it to skypesoundswitch.exe and put it in the windows map)
I renamed it so i could remember what the purpose the file had.. changed nothing but the name!
Thanks for the program by the way! it always worked perfect!!
so to sum up the way i have it now (most files included) on my xperia x1:
1) installed skype
2) installed mortscript
3) add skypesoundswitch to \windows\....
3) add skype.mscr to \.... (root)
4) overwrite skype.lnk with the new skype.lnk in \windows\start menu\programs\..
in the way whenever i open skype(.lnk), it opens skype.mscr, this opens skypesoundswitch.exe and than skype.exe... when you close skype.exe it closes skypesoundswitch.exe...
it seems to work perfect.. but hey maybe i am doing something totally wrong here.. than just shout!
by the way, the .mscr and the .lnk files are offcourse edit-able .. so you can put the files everywhere you like..
madhijs said:
so this program must run all the time? after every softreset you have to start it?
is it not easier with mortscript (for example) to make an shortcut that opens skype as well as the audioswitch program? and closes the audioswithc program when you close skype?
I am using it right now and it seems to work perfect:
i used this script after installing mortscript (http://www.sto-helit.de/):
run( "\Windows\SkypeSoundSwitch.exe" )
runwait( "\Program Files\Skype\Skype.exe" )
close( "troca2" )
(see that in my case i downloaded your original program and renamed it to skypesoundswitch.exe and put it in the windows map)
I renamed it so i could remember what the purpose the file had.. changed nothing but the name!
Thanks for the program by the way! it always worked perfect!!
Click to expand...
Click to collapse
That works great too. The advantage of this new program is that it will only reroute the audio when skype is in the foreground. You could minimize skype and leave it running, and audioswitch will automatically restore your sound. Get a call and open up skype and your sound goes back to the earpiece.
I will create the code to do it with a windows hook when I get a chance MarceloFB. Please pm me your email address. All you will have to do is insert the code to read the config file, check the window names, and when necessary enable or disable the switch. Or please show me where to find details on how to code this myself. Thanks!
Hat off to both of you and really glad that we will have a much improved solution.
JKingDev said:
That works great too. The advantage of this new program is that it will only reroute the audio when skype is in the foreground. You could minimize skype and leave it running, and audioswitch will automatically restore your sound. Get a call and open up skype and your sound goes back to the earpiece.
I will create the code to do it with a windows hook when I get a chance MarceloFB. Please pm me your email address. All you have to do is insert the code to read the config file, check the window names, and when necessary enable or disable the switch.
Click to expand...
Click to collapse
okay! I only used skype to make calls and than get offline so this way did the trick for me! but i have to admit it would be much better when i can keep skype online!
this new program does the trick indeed! it changes the output back when i minimize skype!
But still my question above, you have to start this program on every startup isn't it? what does it do with the battery?
madhijs said:
okay! I only used skype to make calls and than get offline so this way did the trick for me! but i have to admit it would be much better when i can keep skype online!
this new program does the trick indeed! it changes the output back when i minimize skype!
But still my question above, you have to start this program on every startup isn't it? what does it do with the battery?
Click to expand...
Click to collapse
Yes it must be run at startup but placing a link in your startup folder will make everything transparent to the user. I don't think there will be an effect at startup. In it's current form it must check every second (or whatever you set the timeout to), but its only a little bit of code. I am not really sure if that will really have an effect. The more often it checks the faster it will switch when you open skype, but also the more processor use. Check less often and it uses less processor, but there might be a delay in switching the audio. I proposed doing it by hooks though because this would use even less processor. The app will only check when a new window takes focus, rather than just periodically checking. This way it only checks when it needs to and will always switch instantly.
I am glad u liked the program.
I will try to answer most of the questions...
1- JKingDev:
I have though in your idea of using hooks, but if I use a hook, the program will have a loop anyway to check for the messages(hidden loop ;-) ), and it would have to have an "fake window" or something to process the messages. This way we have only one loop, in a very simple command line program with high optimization, so we have to think what is really the best way of doing it... I will pm u as soon I have any time to "program" again. hehe
2- people that uses mortscript with the old "troca2"
I will try to make a way to make this program work the same way as troca2, maybe with an "argc argv", wait the next update.
3- the battery life??
if u notice any battery life decreasing with the usage of the program, configure a bigger delay, maybe 5000ms, it is a matter of adjust the "timming" for each processor. Post your results here so others can find the optimum value for the delay in their phones.
4- have to start the program every reset?
yes, just put it in the startup folder.
maybe someone can make an cab that put the program in the right place and a link in the startup, it would be cool! I dont have an easy program to deal with cabs, and the vs projects for cabs.... I really cant make that thing work!!
well it is only the batterylife i was worried about. but i'll try running the phone this weekend with the program running and doing some skype.. lets see how it turns out!
For folks who have issues of mic on using this program, there is a quick solution for this problem. You can try sjphone. It provides a internal mic volume control. However, the major setback is that it's only working in wm5.
my 2 cents
weekendli said:
For folks who have issues of mic on using this program, there is a quick solution for this problem. You can try sjphone. It provides a internal mic volume control. However, the major setback is that it's only working in wm5.
my 2 cents
Click to expand...
Click to collapse
will check this, but people reported that worked in xperia... and it is running in my P3301... anyway, will check and post an wm6 build if it is the case... check the error file and see if it tells anything.
Other thing, this program uses low level api`s, so your windows MUST be fully unlocked for it to work in wm6.

[Q] for "jwoegerbauer" about installing "autorun" manually

hi, I was hoping that you are able to help .... i am permanently mounting my my wince6 Apical AT12X gps within a replica sunvisor in my car ... i want the igoPrimo program on the gps to start as soon as the engine is running, without any interaction from me or pressing any menu buttons on the touchscreen ... so essentially, unlike most people i want to lock my device ... i do not need file or video viewers, mp3 players or games, just iGo Primo which has detailed raster maps ... youtube[dot]com/watch?v=urX3rERYZf4
looking at the MioPocket4fv installation script, a section codes adding an entry into the "init" section of the registry to detect whether an SD card is inserted, and if it is, autorun a program
this would be a good way to directly run Primo, without hacking the GPS software too much, and removal of the SD would return the GPS device's operation to factory default
can you advise what the registry settings should be if i were to do this manually ... i do not fully understand the index number concept... a screenshot of my registry is attached, i am quessing the ceSd2577 program should be stored on the NandFlash partition, and the SDMMC / sd card would have the autorun / mortscript calling primo.exe
thanks in advance from New Zealand
antdavison said:
hi, I was hoping that you are able to help .... i am permanently mounting my my wince6 Apical AT12X gps within a replica sunvisor in my car ... i want the igoPrimo program on the gps to start as soon as the engine is running, without any interaction from me or pressing any menu buttons on the touchscreen ... so essentially, unlike most people i want to lock my device ... i do not need file or video viewers, mp3 players or games, just iGo Primo which has detailed raster maps ... youtube[dot]com/watch?v=urX3rERYZf4
looking at the MioPocket4fv installation script, a section codes adding an entry into the "init" section of the registry to detect whether an SD card is inserted, and if it is, autorun a program
this would be a good way to directly run Primo, without hacking the GPS software too much, and removal of the SD would return the GPS device's operation to factory default
can you advise what the registry settings should be if i were to do this manually ... i do not fully understand the index number concept... a screenshot of my registry is attached, i am quessing the ceSd2577 program should be stored on the NandFlash partition, and the SDMMC / sd card would have the autorun / mortscript calling primo.exe
thanks in advance from New Zealand
Click to expand...
Click to collapse
Adding an SD-Autorun feature to your GPS (which is running WinCE 6.0) indeed makes sense, because the app you start via "Autorun" simply overlaps default app as was intended by OEM. Means, it doesn't hurt anything.
Now to your questions:
1. ceSD2577.exe (extracted from MioPocket 4.0 FV package) must be installed on your GPS's nandflash in <nandflash-folder>.
2. With a Windows registry editor ( use CeRegEditor ) you simply import to your GPS's registry a .REG-file you created with Notepad with contents as following:
Code:
Windows Registry Editor Version 5.00
[COLOR="Red"]<-CR Carriage Return[/COLOR]
[HKEY_LOCAL_MACHINE]
[HKEY_LOCAL_MACHINE\init]
"Launch255"="<nandflash-folder>\ceSD2577.exe" [COLOR="Red"] <- <nandflash-folder> here is placeholder for the folder you created[/COLOR]
[COLOR="Red"]<- CR Carriage Return[/COLOR]
[COLOR="Red"]<- CR Carriage Return[/COLOR]
3. On SD-card in its root create folder 2577, and put there the package containing "Autorun.exe","Autorun.mscr" & Mortscript.exe
4. If SD-card is left in GPS, everytime GPS is booted and SD-card gets initialzed, then Autorun.exe present in folder \2577 of SD-card will be executed.
thank you so much
for taking time to reply soooo quickly ... i did not really understand the launch and dependency indices, but your MP4fv code was, and suggested regedit will, be very useful ...
check out my raster maps on youtube if you have time ... new zealand government have just released hi-res (< 1m) aerial orthophotos for 95% of the country for the cost of the hard drive they send it to you on, so could be porting these to iGo Primo for years
thanks again, I am very grateful
works flawlessly, you are a genius ... thank you
the OEM menu is now totally invisible until i exit iGoPrimo
just need to make some matching green-theme splash screens for power up and iGoPrimo loading screen, and my life will be perfect
so i am looking for some "green theme" Apical menu bitmaps, the menu looks like the attached image
the 800x480 menu files i am looking for are
residentflash2-bin-Main-Fore2-*.bmp
residentflash2-bin-Main-Animate2-*.bmp
residentflash2-bin-Main-MainLayer2-*.bmp
and maybe any *.ini file relating to GPSAni*.bmp
mine (AT12/atlasVI) are all archived into a single *.bin file, which i cannot unarchive, but in earlier versions of this shell (maybe AT10/atlasV), they are separate files ... these files will give me enough menu elements to make some matching splash screens for power-on and igoPrimo load .... i don't need to modify the apical menu itself
davison[dot]antony[at]gmail[dot]com
----
hi-res aerial orthophotos in igoPrimo (150km x 130km area, <1m per pixel resolution)
youtube[dot]com/watch?v=urX3rERYZf4
understanding the launch and dependancy indices
from
austech[dot]info/gps/31080-gps-launching-program-6.html
source is
blogs[dot]msdn[dot]com/b/mikehall/archive/2007/01/04/ce-6-0-booting-processes-with-command-line-options.aspx
==================================================================================
CE based devices have a couple of options for booting applications at startup.
1. The Registry.
The first option is to use the registry to launch processes during the boot process of the device, the registry key for launching applications is HKEY_LOCAL_MACHINE\Init - the registry approach has a couple of drawbacks - the first issue is that there is a dependency chain within the boot process, processes are started and need to signal back to the o/s that the process has launched (using the SignalStarted API) so that other dependent processes can also start - here's how this looks in a snippet from a device registry.
[HKEY_LOCAL_MACHINE\init]
"Launch20"="device.dll"
"Depend20"=hex:0a,00
"Launch30"="gwes.dll"
"Depend30"=hex:14,00
"Launch50"="explorer.exe"
"Depend50"=hex:14,00, 1e,00
Take a look at the "Launch50" line, this launches "explorer.exe", the standard Windows CE shell that looks somewhat similar to the Windows desktop shell - The Explorer process has dependencies on hex:14 (20 decimal) and hex:1e (30 decimal), this maps directly to the Launch20 and Launch30 processes - explorer.exe will not be started until the processes associated with Launch20 and Launch30 are started and have signaled the o/s that that have started, an application started through the registry must call SignalStarted to allow any dependent applications to also launch - an application launched through the registry gets its launch number (50 in the case of the Explorer shell) passed as a command line parameter - this is of course passed as a string, not a number, the SignalStarted API needs to pass a DWORD value as its parameter, so a process would use SignalStarted similar to the following.
int WINAPI WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow)
{
// Do some work here...
SignalStarted(_wtol(lpCmdLine));
The second drawback is that processes launched through the HKLM\init registry key cannot be passed any additional command line options beyond the launch key value which is then passed to SignalStarted by the launched application.
2. Startup Folder
The second option is to drop your application (or a shortcut to an application) in the operating system Startup folder (this is only implemented in the Windows Explorer shell) - The code that walks the Startup folder looking for processes to start can be found here - C:\WINCE600\PUBLIC\SHELL\OAK\HPC\EXPLORER\MAIN\exp lorer.cpp - take a look at the ProcessStartupFolder() function, it should be fairly easy to lift this code and implement your own startup folder code.
The advantage of using the Startup folder is that the applications don't need to know about the boot sequence of the o/s, don't need to be aware of the launch dependency chain, and could (if a shortcut is used) be passed command line options.
The downside of using the Startup folder is that all processes within the startup folder are launched at the same time - there isn't a dependency chain, or time delta betweeen processes launching - this could be an issue in some circumstances - let me give you an example - you may want to boot a CE device image and then connect to that device image from VS 2005 (so you can deploy/debug some managed or native applications), if you were to launch ConManClient2 and CmAccept from the startup folder you would have three minutes to configure VS 2005 with the correct IP address and then connect VS 2005 to the device - you might want to delay the launch of ConmanClient2 and CmAccept until the device has a valid and active IP address.
3. (did I say there were a couple of options?) SvcStart Services Sample.
John Spaith posted on the launch issue back in December 2004 - John wrote a sample called SVCSTART whose sole purpose in life is to start other applications with a delay period that can be configured through the registry - this sample was initially added to the CE product back at CE 4.1 and is still available today in CE 6.0 - C:\WINCE600\PUBLIC\SERVERS\SDK\SAMPLES\SERVICES\SV CSTART - it could be a little fiddly to get this built/added to your o/s image if you are just getting started with CE 6.0 development.
4. Project Socrates - AutoLaunch
To assist students taking part in the ImagineCup 2007 competition (and also to make it easier for any developer to launch applications on their device with delay, command line options, and also waiting until the device has a valid IP address) Jim Wilson and I have developed a simple application called AutoLaunch - the AutoLaunch application comes in a handy Sub-Project form so can easily be added to an existing CE 6.0 workspace. The functionality is similar to the SvcStart sample written by John Spaith but does have a couple of minor differences - the first is that the AutoLaunch program is launched through the HKLM\Init registry keys (much like any typical startup process) - the registry keys for adding AutoLaunch to the startup sequence are included in the sub-project .reg file, so you don't need to worry about this.
The second difference is that the AutoLaunch process waits until the device has a valid IP address before launching any processes - the reason why this is useful is that we wanted students to use their reference boards without needing a second monitor, keyboard or mouse (in effect the device is booting headless even though the CE desktop or launch application is being displayed) - in this case we want to launch the CE Remote Display application (CERdisp.exe) on the device with the command line "-c" (connect) which then broadcasts the device IP address/name to a listening desktop CE Remote Display application.
The CE Remote Display application can be found in the CE 6.0 catalog by searching for "cerdisp", the SYSGEN for the component is (strangely enough) SYSGEN_CERDISP. The desktop CE Remote Display application can be found here - C:\WINCE600\PUBLIC\COMMON\OAK\BIN\I386\cerhost.exe [NOTE: The CE Remote Display application is not the same as RDP/Remote Desktop, although RDP is supported as a client side application on CE 6.0 (SYSGEN_RDP)].
In the sample below we're launching the CE device side Remote Display application (cerdisp) with the command line "-c" to start connected, with a timeout of 0x1388 (5000ms, 5 seconds), and also starting the CE command prompt (cmd.exe) with a delay of 0x1f40 (8000ms, 8 seconds) - it would of course be trivial to also add ConmanClient2 and CmAccept to the launch process list.
[HKEY_LOCAL_MACHINE\Startup]
"Process1"="cerdisp -c"
"Process1Delay"=dword:00001388
"Process2"="cmd"
"Process2Delay"=dword:00001f40
Here's how the desktop CERHost.exe application looks when the device boots and runs the "cerdisp -c" command - notice the name of the device and the device IP address are both displayed in the Remote Host application (the IP address being displayed here is very useful for plugging into the VS 2005 Device Properties dialog!).
And to round off the blog post here's the Remote Display application running on my Vista desktop showing the CE 6.0 desktop - note that I can now use my desktop mouse and keyboard to remotely control the CE 6.0 device!
Using AutoLaunch and the CE Remote Display for hands on labs/training that use reference boards instead of the Device Emulator may be quite useful!
antdavison said:
works flawlessly, you are a genius ... thank you
Click to expand...
Click to collapse
Glad to hear this. Thank you.

Categories

Resources