Related
A desire has been stated for a larger device lock button a number of times in this forum. I had a thought that might make this happen, but need a little help to finish it out. Someone around here correctly stated /Windows/shutil.dll is called from the today screen to lock the device. Just discovered /Windows also has rundll32.exe....any chance we could create a shortcut that runs rundll32.exe with shutil.dll as an argument? Of course I tried this and it didn't work, so there must be other arguments that need to be included....anyone have any ideas?
I have created a small executable that locks the device when run. Don't bother trying to track down documentation on shutil.dll, there isn't any. To use RunDLL32 you have to specify an ordinal value for the function you're calling. It is possible to inspect the DLL to determine how many functions there are and what the ordinals are, but normally the name of the function is not available.
My approach is completely different. The only requirement I have is that the Device Lock today item be loaded.
I'm still wrapping up a couple of additional features in the software, but will provide a link to the cab installer when I'm done.
-Matt
Good armstrom
good trial from you, and i hope you can add a timing feature to your exe file so that we can lock the device if unused for a specified time automatically.
any developer can figure out the function exported and be called by today in any today.plugin? i think there's common interface in the framework, right?
Did you ever figure this out? I need a device lock shortcut too, but the today's lock looks horrible.
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!
I'm after a quick and easy way to delete a specific registry key - preferably from a command line/shortcut.
This has to be done on a number of PPCs for work (always the same registry key) and I need an easy way to distribute it so I don't have to walk users through it each time - ie a single shortcut or executable would be best.
no-one knows? WM5 if that makes a difference..
MortScript
leyton01 said:
no-one knows? WM5 if that makes a difference..
Click to expand...
Click to collapse
If you tell me what key and data you want deleted I can write you a small app that can do it (silently).
-Jwrightmcps
Use MortScript and Autorun.exe on a SD card. Just inserting the card on the device will run the script and change the registry for you.
Other option is to create a cab file with the registry change in it, and then setup a batch script to automatically install it on the users device when their PDA is connected to their PC. Here is something I put together that may help:
http://www.jaml.com/CreateApp/
Jwrightmcps - thanks for the offer, I will PM the details
Markvan - will check out the link. Looks like it will be handy for a couple of other projects I have. KISS principle definitely applies for execs and technology - if I can email them a cab that can run a couple of things offsite users shouldn't be able to screw it up too bad (they will find a way no doubt)
Build your own sliding app today!
Check out the latest version, AND read the new API Docs. Its a piece of cake making your own slide app. All you need to know is basic MortScript!
---------------------------------
Go to http://www.gslide.mobi
* New cool screenshots and examples on the site!
I am moving the discussions to my GSlide Google group. For queries turn to
I feel i need to to start fresh somewhere I will keep this updated anyway of course.
http://groups.google.se/group/gslide
Last updated with:
0.7
- Many usability improvements. About time you might say, after all the backend stuff
- "Easy access" buttons on the top bar. Implemented using the Faces API of course
- Much improved RSS handeling
- Super easy adding of RSS channels
- Super easy adding/editing of GSlide Settings
- A lot of tweaks here and there
0.6.9
- Super cool update, as always
- Real RSS reader
- Configurable alpha effects for many objects
- Lots of other good under-the-hoddie stuff
0.6.7
- New really cool message overlay feature which is totally configurable. Right sweep the top bar for an example. Why not use it for a preview of images?
- A really cool new Face feature which makes it possible to capture clicks where ever they occur on the screen!
- Much improved code!
- Improved the text viewer so that it expands with text size.
- Ships with a fully functional XML parser in MortScript!
I really need to update the API! I have made many main script functions much easier to access. With all the new features you can really make any kind of app. Not just sliding lists! Because of the Faces feature you can load any image and just create a simple script which tells at which click-coordinates scripts shall run. Check out the onMessageClick.mscr file.
0.6.5
- GSlideAPI.Remote ready! To get things started i made a Wazzup feature where you can download news from the GSlide site.
- Made a nice text viewer sample for the Wazzup context.
- Made a LOT of bug fixes.
- Added a lot of new features for the API. Almost all Context properties are now possible to change at runtime through the super simple script API.
- With all new features your can really create just about any app using GSlide!
The Wazzup feature might need a change of settings. Try to open the context, if it says it cannot connect:
- go to the Settings context
- then to Remote
- then double click on Internet Connection and fill in the name of your internet connection. The default value is "Internet" which usually works.
0.6.3
- Click X/Y positions. You now get the users current X/Y position from the GSlideAPI. This means that you can calculate where the user clicked. If you dont get the point now dont worry, i will soon write about this in the API Ref. But its MAJOR feature!
- You can now have a real fullscreen with no bottom menu if you set <hideBottomPanel> to true in the Context.xml file
0.6
- Optional static top bar with dynamic message text and dynamic background (settopbartext, settopbarimage)
Events supported for the top bar are onClick, onDoubleClick, onSweepRight, onSweepLeft.
- More event handlers are now available through the api such as onApplicationStart and onApplicationExit.
- More very cool things coming soon.
0.5.6
- All new Oxygen skin with much more complete icon set (drawback is total size in kb)
- Communication with GSlide is now xmlrpc standard.
- More possibilities to make adhoc changes to events handlers (onApplicationStart, onApplicationExit, onTapAndHold, onBackTapAndHold, onClick, onDoubleClick, etc).
- Tap and hold support
- Renaming the menues is now possible.
- Right sweep now takes you to the actions (cut and paste etc) as default (really easy to change in the context.xml file. Look for the onSweepRight tag.).
0.5.2
- New "GSlide Settings" Context which makes it easy to set system paths according to your whishes. Switch to the new Settings context and click on the "Contexts" folder. When you click on the different settings here you can input new paths. Dont mess around with paths that look like this: GSlideAPI[paths]... unless you know what your doing.
- Working zip features again.
- A bit reworked skins.
- Uses the latest MortScript beta.
0.5
- GSlide can now read JSON! This means that you can load data from basically any data source, straight from the net.
This could be anything from RSS to stock information or mail accounts.
Contact me through my xda-developers GSlide page for more info until I finish the docs.
- You can now set shortcuts in GSlide to access files or folders in a snap. Super cool feature! Make new shortcuts by selecting any file or folder. Go to the Actions View by choosing "Show Actions". Here simply click on "Create Shortcut". You are now asked if you want to save it in the default location which is the GSlide specific folder used with the Right Sweep. Otherwise you can make a regular shortcut anywhere you wish by selecting a folder.
<-- Sweep = Back
Sweep = Shortcuts -->
0.4.9
Custom file/app icon support
You have to make your own icons though. I put a bunch of ok samples in the Default contexts new Icons folder. to make your own, simply name them with the associated extension (txt.gif or whatever). exe files and lnk files can also have associated icons such as PocketArtist.gif or Opera.gif (it does not need to be gif, any common bitmap format should work...)
0.4.8
New "lock list" function which secures execution of actions.
0.4.7
- New Actions with the same sliding interface as the rest of the app.
- New filter action. Now you can actually open the windows folder, IF you apply the filter first.
- Many fixes and patches.
- A lot better structure of folders and files.
- No need to specify the location of scripts in the context.xml files. (though its still possible).
* When an action is executed, GSlide will automatically redirect to the previous view. It just takes a moment *
0.4.5
- Easier install/config. Checks many more paths automatically.
- Awaited bug fixes
- Much improved Context handling (no restart needed).
- Better sweep functionality.
- Right sweep now opens folders as default.
- Much improved Scripting API.
- New Contexts for changing Volume and Backlight.
- 250 less KB
0.4
- Horizontal sweep support
- More detailed list behaiviour config, per context.
- Support for external, custom, event handlers for:
-- onSweepRight (default, "Open with ZNote")
-- onSweepLeft (default, "Back")
-- onDoubleClick (default, "Open with shell")
IMPORTANT INSTALL NOTE:
All the actions for list behaiviour is set in the context.xml file (GSlide/context/Default/context.xml is standard). The default paths to the MortScript.exe and the different scripts are /Program/GSlide/actions/....
This will probably have to be changed to your local WM5 file system path naming (/Program Files/GSlide/actions/ for UK/US).
To skip the custom actions for double clicks and sweeps and make GSlide operate as usual, just remove the lines:
<scriptEngine>/Program/GSlide/actions/MortScript.exe</scriptEngine>
<onSweepRight>/Program/GSlide/actions/onSweepRight.mscr</onSweepRight>
<onSweepLeft>/Program/GSlide/actions/onSweepLeft.mscr</onSweepLeft>
<onDoubleClick>/Program/GSlide/actions/onDoubleClick.mscr</onDoubleClick>
0.3.9
- I improved the list control with two new settings in the context.xml
<listMaxSpeed>15</listMaxSpeed>
<listMinReleaseSpeed>10</listMinReleaseSpeed>
The first tag sets the max speed when sweeping.
The second tells the list when it should start to scroll away. The higher the value the faster you have to sweep to get it scrolling.
0.3.8
- New and improved actions
0.3.7
- Since a guy had an strange incident with files getting deleted without any clear reason (i have no idea if GSlide was to blame but still...), i have added a bunch of security features:
-- Execution of GSlideAPI scripts will exit at once if GSlide.exe is not running.
-- Folders can not be deleted from the root of Windows. This means for example: \Windows\, \Programs\, \Storage Card\ etc
PLEASE DOWNLOAD THIS RELEASE, just to keep on the safe side.
0.3.6
-Included ZNotepad and a cool new light skin.
-Also added a Refresh directory action.
-Removed some bugs
Have fun sliding
Ciao,
Lars
PS.
GSlide have, at the moment, only QVGA skins... VGA is onthe way. you can of course easily make a new skin yourself if you can't wait
You might have to update the GSlideAPI.mscr file in the /actions/ folder with new system paths...
Hallo Lars. The application still crashes on /windows, photos and so on ! so ..what should i say.... nice but not usefull.
Hi,
please help me out by telling me the number of files in your Photos folder.
And when you say crash, is itan unhandled exception or a GSlide popup?
My best suggestion for large folders at the moment is to keep the row size/icon size small (approx 30x30). this consumes far less RAM.
Thanks for trying it out
I'll let you know if I come up with some other solution.
Ciao,
Lars
i get an unexpected error (think it was from wm6) and the application closes. in photos i have just five 3 mpix pictures. same when i try to open the windows folder.
i uninstalled it and can't tell you more.
thanks man... this is wonderful.
Gslide seems to be moving forward really well.
it'll certainly switch my resco explorer soon
Hmm... Let me see what i can do...
The windows folder is a "No-can-do" folder until i make a new less memory intense scrolling list.
Can you help me by downloading and trying more of the functionality and give me feedback.
On my device it works like a charm
Also tried it on a Qtek 2020i WM2003SE with CF2 and it worked fine.
Ciao
Dont forget to try out the scripting API!
Update 0.3.5.1
Fixed a new Action menu with more thumb-friendly function
Uploaded 16:00 GMT+1, only the GSlide.exe file has changed.
Ciao
the zip file seems empty ...
corrupted upload?
the programs looks promising
t0k0m0k0 said:
the zip file seems empty ...
corrupted upload?
the programs looks promising
Click to expand...
Click to collapse
empty here too...
No files in the zip folder. Would really like to try out this program.
Sorry! Uploaded from my HTC
Let me try again
Now!
The zip should work
Let me know if you have any problems.
Ciao
Please remember to update the paths in the /GSlide/actions/GSlideAPI.mscr file if you get unexpected behaiviour. The file is richly commented (to be written by me anyway ) and is easy to edit.
Ciao,
Lars
PS.
Dont forget to read the small, but growing, "GSlide Developers Guide" in the /actions/ folder
This is simply fantastic!! Thank you for developing another file browser
Requests:
1. Can you make the files seen pick up the associated icon? (obvious)
2. Please make the up directory button only require one tap, I like having to double tap to execute files but not to go up a directory.
3. I notice sometimes the list stops scrolling right to the end, may want to look into this.
4.Application needs a name, it only displays “\” as program name in running apps.
5. Have had an error once (I have NETCFv3.5 in the ROM):
Code:
GSlide.exe
ArgumentOutOfRangeException
ArgumentOutOfRangeException
An error message is available for this exception but cannot be displayed because these messages are optional and are not currently installed on this device. Please install ‘NETCFv35.Messages.EN.wm.cab’ for Windows Mobile 5.0 and above or ‘NETCFv35.Messages.EN.cab’ for other platforms. Restart the application to see the message.
at System.Collections.ArrayList.get_Item(Int32 index)
at Scroller.KList.MouseDown(MouseEventArgs e)
at Scroller.ScrollingPane.ScrollingPane_MouseDown(Object sender, MouseEventArgs e)
at System.Windows.Forms.Control.OnMouseDown(MouseEventArgs e)
at System.Windows.Forms.Control.WnProc(WM wm, Int32 wParam, Int32 lParam)
at System.Windows.Forms.ContainerControl.WnProc(WM wm, Int32 wParam, Int32 lParam)
at System.Windows.Forms.Form.WnProc(WM wm, Int32 wParam, Int32 lParam)
at System.Windows.Forms.Control._InternalWnProc(WM wm, Int32 wParam, Int32 lParam)
at Microsoft.AGL.Forms.EVL.EnterMainLoop(IntPtr hwnMain)
at System.Windows.Forms.Application.Run(Form fm)
at Scroller.Program.Main(String[] args)
Please keep up development
Hi
Thanks for trying out my little app!
Let me help you out a bit,
1. Can you make the files seen pick up the associated icon? (obvious)
- I have tried this, but i think i will place assoc. icons in the skin folders for now. I didnt get the windows icons to work properly.
2. Please make the up directory button only require one tap, I like having to double tap to execute files but not to go up a directory.
- Okidoki, I will make it optional
3. I notice sometimes the list stops scrolling right to the end, may want to look into this.
- This is actually my "Select-Zone" feature It is helps you to select items by keeping the list still. The width of this region is set in the context.xml file of each context.
4.Application needs a name, it only displays “\” as program name in running apps.
- Ahh... Fix it i will
5. Have had an error once (I have NETCFv3.5 in the ROM):
- I think i have fixed that problem now. Download the new exe
Ciao
Lars
mysparkle said:
3. I notice sometimes the list stops scrolling right to the end, may want to look into this.
- This is actually my "Select-Zone" feature It is helps you to select items by keeping the list still. The width of this region is set in the context.xml file of each context.
4.Application needs a name, it only displays “\” as program name in running apps.
- Ahh... Fix it i will
Click to expand...
Click to collapse
Looking better
3. What I meant is if the app is run from a shortcut it shows the WM top bar and covers up the up folder icon. It opens in full screen and doesn't appear to do this if you run it from a file explorer (kinda defeats the purpose), any ideas?
4. Still showing "\"
6. Are you able to make the action list scrollable with gestures so I don't have to push the tiny up or down arrows to move through the list?
Still heaps of potential!!
BEWARE!!!!!
Okay, i have NO Idea what just happened but I know i'm pretty pissed off.
I extracted the zip to try gslide out and i decided i'll stick to my previous program. when i tried to delete the folder, it deleted everything but two files. then i was trying to get dynamo 3.2.01 (previous version ran fine) and i went to check a registry key so dynamo would run and before i could go back to my total commander, mortscript came up with a message saying "Deleted!" thinking it deleted remaining files from the gslide folder, i dismissed it. but apparently something somehow deleted just about every file on my storage card! 5 gigs of music, morphgear roms, pictures, BACKUP files, EVERYTHING!!!!
I have no idea what caused this but I wanted to warn everyone that this happened to me and tto be careful. maybe be safe and if you need to delete the gsfolder, take your memory card out and do it from your PC
UPDATE: I believe it has to do something with mortscript. I am using the rom in my sig and it has mortscript cooked in and has a folder of mortscript commands and now it is empty! I'll make sure that chef knows
Nice applications
Trying it now
Hope will work
Thanks
richabi said:
Okay, i have NO Idea what just happened but I know i'm pretty pissed off.
I extracted the zip to try gslide out and i decided i'll stick to my previous program. when i tried to delete the folder, it deleted everything but two files. then i was trying to get dynamo 3.2.01 (previous version ran fine) and i went to check a registry key so dynamo would run and before i could go back to my total commander, mortscript came up with a message saying "Deleted!" thinking it deleted remaining files from the gslide folder, i dismissed it. but apparently something somehow deleted just about every file on my storage card! 5 gigs of music, morphgear roms, pictures, BACKUP files, EVERYTHING!!!!
I have no idea what caused this but I wanted to warn everyone that this happened to me and tto be careful. maybe be safe and if you need to delete the gsfolder, take your memory card out and do it from your PC
UPDATE: I believe it has to do something with mortscript. I am using the rom in my sig and it has mortscript cooked in and has a folder of mortscript commands and now it is empty! I'll make sure that chef knows
Click to expand...
Click to collapse
Scary! I am sorry to hear of your major mishap
I am just wondering what happened?!
GSlide is contained in its root folder without any connections to the outside world except through MortScript. And the MortScript.exe is located in the GSlide folder as well...
I just can not see how deleting the GSlide folder could trigger anything... And GSlide has no MortScript saying just "Deleted!" so the dialog was not from GSlide.
* How, with which app, did you delete the GSlide folder?
* Which two files where left in the GSlide folder after your first delete attempt?
NEW UPDATE:
Did you delete the GSlide folder from within the GSlide app? This could maybe screw up things, and could explain the two locked files as you are basically deleting GSlide in it's own running process... kind of asking it to implode.
This is just a theory of course and does not account for the loss of the other data.
Didn't get the rom/sig thing
Please get back to me asap with help.
Thanks,
Lars
Here is what I'd like to do: I'd like to use Samsung Omnia 2's default Contact Manager with my other WM phone. So I copied the Omnia 2's contact manager program in the \Windows folder (SECContact.exe) to my other WM phone and tried to run it. But it only gives me a black screen.
I know you probably should install an app rather than copy the .exe file, but since it's only a single-file program, I was hoping this would work.
Is there any way to make this work? I really like Samsung Omnia 2's contact manager and calendar apps.
i dont know what wm phone youre trying but there are extracted samsung app in cab files floating around on modaco forum. that calendar is called touch calendar.. google search it
screwdriv said:
i dont know what wm phone youre trying but there are extracted samsung app in cab files floating around on modaco forum. that calendar is called touch calendar.. google search it
Click to expand...
Click to collapse
I'm trying to extract the calendar and contact apps.
Yes, I've seen them at Modaco.
But the problem is, they are not in CAB format. They are in just zipped files to be used when creating a custom ROM.
Is there an easy way to create an installable CAB file from these extracted files?
You got a black screen cos You didn't copy the corresponding DLL file(s) also. The ZIP files are not always for ROM creation, sometimes they are just for copying. And if You didn't find i8000 contact manager and calendar CABs, You didn't search enough, sorry.
For CAB file creation search for WinCECabManager.
If you have a PC with a Microsoft development environment on it, you can use the command DUMPBIN /ALL SECContact.exe to dump out the program's import table, which contains a list of the DLLs the program requires.
If you use a Borland/Embarcadero development setup, Rad Studio, Delphi, C++ Cuilder etc., TDUMP does a similar job.
If it has been written in .NET use Red Gate's .NET Reflector to open it up and see the address spaces it requires.
aiiro said:
You got a black screen cos You didn't copy the corresponding DLL file(s) also. The ZIP files are not always for ROM creation, sometimes they are just for copying. And if You didn't find i8000 contact manager and calendar CABs, You didn't search enough, sorry.
For CAB file creation search for WinCECabManager.
Click to expand...
Click to collapse
Well, I did get the i8000 contact manager and calendar apps from Modaco, but they result in the same black screen also.
http://windows.modaco.com/topic/298414-cabs-repository/
Is it possible that these apps are supposed to work only on Samsung phones from the beginning? It's conceivable that these apps check the device first and decide to operate or not based on the device.
stephj said:
If you have a PC with a Microsoft development environment on it, you can use the command DUMPBIN /ALL SECContact.exe to dump out the program's import table, which contains a list of the DLLs the program requires.
If you use a Borland/Embarcadero development setup, Rad Studio, Delphi, C++ Cuilder etc., TDUMP does a similar job.
Click to expand...
Click to collapse
You do NOT need these development environments to examine native apps, you simply need CFF Explorer, and the best is, it costs nothing because it is freeware!
Why do low-level actions on .exe analysis if probably the packaging on the donor device has done already all you need? A rough workflow could be:
Get the .nbh from the donor device
dump it with e.g. OS Builder
identify the package with the application you need
You could also pick it from a kitchen for the donor device.
It will require effort to analyze the dependencies (.rgu, .provxml) and linked .dll.
In general there are apps that are easy to get and others are difficult, no simple rule here.
@jwoegerbauer Good point!
CFF Explorer is a nifty bit of work for a freeware program.
Click on the Dependency Walker tree entry to see what the program requires.
My view of the things
tobbbie said:
Why do low-level actions on .exe analysis if probably the packaging on the donor device has done already all you need?
Click to expand...
Click to collapse
An .EXE (always by default) relies on COREDLL.DLL, regardless the .EXE is written either in managed or in native code, but COREDLL.DLL is not COREDLL.DLL. It is alone OEM's decision what functionality to pack into device's COREDLL.DLL . Means which API-functions COREDLL.DLL exports.
This also is known as OS's license level. For a core version, i.e small function range, OEM (actually) has to pay Microsoft a license fee of $3 USD, a pro version, i.e full function range, (actually) costs $16 USD.
This in mind, you first of all always have to compare the unit's COREDLL.DLL's export table and the .EXE's import table, if an .EXE will not run, hereby mostly reporting an error like "components missing".
Resume: Only if you find the APIs imported by .EXE in COREDLL.DLL's export table, the .EXE runs.