yashsingh1/xdaforums huggingface dataset:
[Windows Phone 7 Development and Hacking] Martin7Pro:
Scheduling is in the future plane. I have a lot of to do with higher priority first. I seen any "Tasks" application on MarketPlace for scheduling. Try it, may be it is able to schedule system changing.
[Windows Phone 7 Development and Hacking] Magpir:
those apps in the marketplace only give u a reminder.

i need the app actually disable/enable things at a given time.
[Windows Phone 7 Development and Hacking] Martin7Pro:
I have a question:

Normally, in C++, I will make basic plugin class, inheritable to 3rd plugins dlls. When interface will changed in future, I will use multiple inheriting of additional behaviour class, in reverse order for "old generation" plugins.

But, what is the best practice in phone C# ? Multiple interfacing? Or dependency injection is implemented here? I must use something very simply for easy plugins creating. M.
[Windows Phone 7 Development and Hacking] GoodDayToDie:
If I understand what you're asking about correctly, multiple interface inheritance is probably your best bet, since .NET doesn't support multiple class inheritance. This usually means you need to have some kind of external factory as well, since interfaces can't have constructors or static methods.

Implementation-wise, one way to do this is to simply wrap the older objects, and pass calls to their interfaces through to them. This isn't ideal and still requires non-trivial coding, but it does provide good encasulation and relatively good code sharing. Dependency injection using Reflection APIs is certainly also possible, but requires some work.
[Windows Phone 7 Development and Hacking] Martin7Pro:
I am "old school" OOP Programmer, then I must study it much. Main problem is: I know interface for files, registry, tasks etc just now. But, application must accept today unknown interfaces in future by little addition only, without recompiling old generation plugins. Then I explain previous question: Are interfaces and namespaces in C# able to solve this problem? To have one interface for today plugins, new interface will added after any months and using one or second automaticly? TotalCommander solves it by different plugins extension (*.wfx , *.wcx etc), but, I mean, it is not right way in 21 century. Second problem is: Every plugin can contain more system access methods (Standard MS WP7 API, ProvXML, your HTCRoot, fiinix's CSharp_DllImport, something new...). Every this method need not be copletely implemented in all plugins, any common base may be stored in one library for each access method and plugins will prepare only parameters for them. When design will the best, old generation plugins can use future access methods too. Access methods can be sorted by priority (probably related to method speed), plugins must use highest method priority, which is allowed on device. If plugin will not know any hi priority access method itself, must automaticly hand over its pursuance to any newer library. What modern method I must study for mentioned behaviour?
[Windows Phone 7 Development and Hacking] huismeester:
Thanks man looks very good
[Windows Phone 7 Development and Hacking] GoodDayToDie:
I think that doing this is going to require the use of the Reflection APIs. In essense, these let you load assemblies (collections of classes, typically in namespaces) from .DLL files (by name), and let you load classes from within assemblies, and let you call functions of those classes.

Probably the easiest way to do it is a function pointer table. In .NET, function pointers are called "Delegates" and are technically objects (like everything, including primitive types) but they pretty much work exactly like strongly typed C++ function pointers.

When the app starts up, it looks in a known location (or possibly queries the registry, or something) for DLLs containing extensions. It then loads the assemblies from those DLLs. Each assembly should have a registration function (probably a static method o a static class) that returns a collection of delegates (and their priorities, if needed). Your app then uses those to build a function table that it uses whenever it needs to do a specific type of operation.

For example, you could have one entry in the table for "WriteFile" and might get function pointers for it from one assembly that uses the native APIs with no special permissions (works for some custom ROMs, or after using HtcRoot), one that uses isolated storage APIs (works for any ROM, but only to a specific folder), one that uses HtcFileUtility.dll (the driver that TouchXplorer uses), one that uses ntive APIs but wraps every call in an elevation call to HtcRoot, etc. It would be up to the framework (meaning up to you, if you're designing it) to define some way to indicate which one to use.

All that said, while extensibility is an excellent goal and probably necessary in the long run, you might want to just get a proof-of-concept working that is hard-coded to use a single known approach. Reflection isn't actually that difficult, but it seems like a distraction from getting a first version out the door. Release early, release often, and all that.
[Windows Phone 7 Development and Hacking] Martin7Pro:
I must finish other important work, after any days I will continue here. I will use simpliest way, which coul not be the best, but it will quick and independent. M.
[Windows Phone 7 Development and Hacking] ihabsad:
very cool

good luck
[Windows Phone 7 Development and Hacking] willverduzco:
Good luck with this app. Please drop me a PM when you finish so that I can feature it on the XDA front page. :)
[Windows Phone 7 Development and Hacking] TFGBD:
Err, why are you using drive letters like C:\? We all know Windows CE doesn't use such things. I think adding artificial drive letter paths will just confuse users in the long run. If they're going to be navigating the filesystem, they might as well learn how to do it right. But if you really must do this, at least make it easily disabled.

Also, are those native Windows CE common controls in the screenshot?
[Windows Phone 7 Development and Hacking] GoodDayToDie:
@Martin7Pro: One suggestion: with the semi-imminent release of WP7 Root Tools 0.9, which will allow elevating arbitrary apps (and will support more devices than the HtcRoot project), I suggest you focus on just using native APIs and don't worry about permissions. It will already work on full-unlocked ROMs, it will work on all devices that are supported by WP7 Root Tools once it releases, and it will be easy to add support for HtcRoot if for some reason that saspect of the project is still relevant.

I've got some exciting other directions I want to go with HtcRoot, like seeing whether I can modify ROM files or do other crazy things like that (it might be possible, what with the ability to tweak driver code directly). The elevation to TCB ("Admin") and policy-engine work was (and still is) a stepping stone to get there, but with WP7 Root Tools 0.9 supporting the most important policy engine changes directly, that's less of a concern now.
[Windows Phone 7 Development and Hacking] Martin7Pro:
Hi TFGBD. This is only example string in my user interface demo. But, I plane to add USB Host support in future. How we can mark external logical units better then by one letter?
[Windows Phone 7 Development and Hacking] Martin7Pro:
Hi GoodDayToDie.

Thanks for info. But, access method is only one level of interface creating. More important is possibility of two-panel collecting of any totally different structures (files, tasks, tiles, installed applications, system settings etc), like TCMD plugins.

And second feature - using apllication in two diferent modes - 1. two equal panels, 2. one panel as quick/property viever.

My idea is very small core apllication with very open interface for plugins. There is no design mistake allowed.

I have no free time still, I hope I will continue next weak. My demo code is unpublishable now. But, after refactoring, I will publish it as opensource probably.

M.
[Windows Phone 7 Development and Hacking] Martin7Pro:
No time

I am sorry, friends. I have no free time now. I will continue here probably in june. M.
[Windows Phone 7 Development and Hacking] GoodDayToDie:
That's too bad - with WP7 Root Tools out, the time is ripe for an app like this - but I definitely understand (having run into the "no time!" problem myself a few times). Good luck on whatever it is, and we look forward to hearing from you again.
[Windows Phone 7 Development and Hacking] Martin7Pro:
Hi friends. I will back probably in july. Meanwhile, look at wPhoManager and wPhoExplorer apps ( http://www.wappstore.org/wp/ ), ask W.I.N.C.O. for his progress. I will use his famous native libraries in my PhoneCommander UI. Martin
[Windows Phone 7 Development and Hacking] Martin7Pro:
First Pre-Alpha Release

Hi. There is the first PhoneCommander files-reading version (thanks to W.I.N.C.O. for his files-management library, see http://xdaforums.com/search.php?searchid=29496173). This is example of quick large directories reading (there are \\My Documents and \\Windows directories used), own scrollbar quick offset shifting (try green circles, combination with touch moving is in development), quick sorting by name, extension, last writing time and file size (try use top blue buttons). Other functions are in delelopment still. Unlocked phone required. M.
[Windows Phone 7 Development and Hacking] BigJeff:
Downloading your alpha right now... I guess I'm the first guinea pig? Quick question though, I read something about win CE native exe's, so does this require a full unlock, or just Heathcliffs Root Tools?
[Windows Phone 7 Development and Hacking] :
Any chance at a more toned down style? Rather crazy looking :]
[Windows Phone 7 Development and Hacking] GoodDayToDie:
Great work! Looking forward to seeing more. Multi-panel would be a big help.

For those asking, this app uses native DLLs (via COM interop) and will require "root" permissions (mark as Trusted in WP7 Root Tools if you aren't on a full-unlock ROM) but has no EXEs (native or otherwise) so should work fine with the current Root Tools version on stock ROMs that can run it.
[Windows Phone 7 Development and Hacking] Martin7Pro:
Phone Commander Alpha 1.1 version

Hi friends. There is first partially usable Windows Phone Commander version. Root access (or Full unlock) is neaded.

Just working:

Scrollbar and touch panel navigation cooperating,

Sorting by FileName, Extension, DateTime or Size, Upside or Downside,

Single file management ("Copy", "Delete", "Move"/Rename when left and right-side directory is identical),

Directory change (by doubletap or singletap+"Run"),

Panels swapping,

Second side and most usable directories quick access (by "R" and "L" button).

In the near future:

"Run", "View", "Edit" single file,

Multiple files management ("+/- *.*" etc.),

"Intellligent" Files and Directories searching,

Directories management,

"<<", "<", "><", ">", ">>" behaviour repair,

Working appplications management (system TaskManager).

In the 22nd Century:

FTP access, zip functions, StartUp, Profiles management,

SMS, Mailbox, Installed Apps, Tiles, Notes, Ringtones, MultiMedias, HW Keyboard Shortcuts management,

Registry editing, exporting and importing,

C# simple IDE for on device programming.
[Windows Phone 7 Development and Hacking] GoodDayToDie:
Nice! I've been looking forward to this for a while.
[Windows Phone 7 Development and Hacking] Martin7Pro:
Try this version, send comments. It contains only little part of prepared functions, but it is probably first WP7 application, which is able to work fast and clearly with files in large \Windows directory.
[Windows Phone 7 Development and Hacking] snickler:
None of the tasks, menu, SMS buttons work for me. I gave it root policy through root tools. Is there any prerequisites?
[Windows Phone 7 Development and Hacking] Martin7Pro:
See my post http://xdaforums.com/showthread.php?p=28152378#post28152378. I have no time to finish all function. Files and Directories management has highest priority now.
[Windows Phone 7 Development and Hacking] Martin7Pro:
Alpha 1.2 version:

There is finished full directories handling. Directories and files renaming is possible by 6th button, when left and right side is identical, and also by 9th button everytime.

3rd button launches primitive (only for testing) file preview (and editing, writable to \My Documents only) - temporary .txt copy is created (not deleted!!!) and launched in built-in word. Do you know somebody, how I can call shell for pword.exe to open file with any extension and write it to any directory?
[Windows Phone 7 Development and Hacking] Martin7Pro:
First Beta .... version 1.5.

All important bugs are repaired. The most usable change is file viewing and editing without any additional user manipulation. When select file, use button "3 View" and PWord is opened. You can view only or tap to pencil to edit. AFTER finishing editation doubleclick to left arrow in PWord and Phone Commander itself copies temporary file to original position (original file is renamed to.bak). Only, you must do it before commander tombstoning, I have no time to make tombstoning restauration version now. Multiple files and directories selecting is realised, buf multiple operations are not still implemented, wait to 2.0.
[Windows Phone 7 Development and Hacking] Martin7Pro:
Version 1.6

Small repairs occured.

Use carefully, from this version Phone Commander edits, deletes and replaces also readonly files!

With this tweak you can open html files (*.htm, *.html) in built in Internet Explorer by doubletap to file name (or tap + "Run").

Newest version is everytime here.
[Windows Phone 7 Development and Hacking] Martin7Pro:
Version 2.0

This is first version, which allowes multiple file operations. All unique operations must be confirmed in this beta version (for example - use *.* selecting, do "6/move" operation, but you must confirm every unique file moving in this multioperation). Multiconfirmation ("rewrite all" etc.) will allowed in prepared full version. Use carefully, WP7 filesystem operations are danger!
[Windows Phone 7 Development and Hacking] Martin7Pro:
Feature List

Feature List ... Help screenshot (9/Menu functions are still prepared to the future 2.1 version, which will able to run simple shell files):

<<,<,<>,>,>> ... Change panels ratio

SWAP ... Swap panels

Files ... FileManager

Task ... Still uninplemented

SMS ... Still uninplemented

REG ... Still uninplemented

Mail ... Still uninplemented

Next ... Next functions:

Tiles ... Still uninplemented

Note ... Still uninplemented

Scts ... Still uninplemented

MM ... Still uninplemented

App ... Still uninplemented

L,R ... Directory favorites

column header ... Order by column

tap filename ... Select one file/dir

tap extension ... Multiselect files/dirs

doubletap ... Go/run shell

gesture ... Scroll up/down

tap scrollbar ... Scroll up/down

+/- *.* ... Multi(un)select files/dirs

1 Help ... This Help

2 Run ... Go/run shell

3 View ... View/edit file

4 Rnm ... Rename file/dir\

5 Copy ... Copy files/dirs

6 Move ... Move files/dirs

7 Create ... Make directory

8 Del ... Delete files/dirs

9 Menu:

Create SH ... Create PlayList in SH file

Create Lnk ... Create Link(s) in Lnk file(s)

Create Txt ... Create empty text file

Create Doc ... Create empty Word file

Create Rtf ... Create empty Rtf file

Create Xls ... Create empty Excel file

0 Exit ... Still uninplemented
[Windows Phone 7 Development and Hacking] Nickg.:
is possible also delete inrom file?
[Windows Phone 7 Development and Hacking] Martin7Pro:
What is inrom file? PCMD is working on fully unlocked devices only. Before deleting file properties are changed to R/W. Actually used files (working dlls etc.) are undeletable only.
[Windows Phone 7 Development and Hacking] GoodDayToDie:
INROM and ROMMODULE are file attributes which specify that the file is to be considered to be in read-only storage. The filesystem driver won't allow those files to be modified, regardless of the process's permissions. I have some ideas for ways to get around this, by hacking the kernel storage stack in memory directly, but that's going to be a hell of a project even with the HtcUtility driver, and it won't work on any ROM without a working version of that driver (so, basically any stock ROM these days).
[Windows Phone 7 Development and Hacking] Martin7Pro:
Little repair file reading/editing.

Question: Do you know anybody Error 202 ERROR_INFLOOP_IN_RELOC_CHAIN? This error occures in PCMD, when sh file is interpreted, has more then one shell line, and VS debugger is not active. When I debug it or single shell line is writen to sh file, no error occures.

____________________________

Edit: There is two different errors. Error 202 means probably: My application wants to start another application, which is allready running. For example dde applications does not return right handle to WaitForSingleObject using. Second, bigger error is very crazy: When application runs outside debugger, WaitForSingleObject after ShellExecuteEx crashes most often. Do you know anybody, how it is? Is not it work of WatchDog?
[Windows Phone 7 Development and Hacking] Martin7Pro:
Version 2.1

To test primitive shell copy the Shl folder to your phone root and doubletap in installed PhoneCommander on \Shl\Example.sh . It does not function for DDE (such as HTML links) now and sometime crashes probably by WatchDog behaviour (try stop mp3 playing by return arrow phone key, if it crashes everytime, it is only first attempt). You can edit Sh file by built/in Word application by "3 View" button and pencil icon. M.
[Windows Phone 7 Development and Hacking] jigarb1992:
:good: nice......
[Windows Phone 7 Development and Hacking] Martin7Pro:
2.2 repaired

Hello. So here is a corrected and for some time the current version, I do not have free time to continue. Version is able to create simple playlists (link is in the 9/Menu, enabled when any files are rightsidetap multiselected) and merge the lists as text shell files. Shutdown error application I solved by the thread in the background, but I'd rather watchdog somehow turned off completely.

This version enables for me:

To manage all files very quickly include multioperations (like TotalCmd).

To copy mp3 files to any phone directory by desktop TotalCmd, create playlist on phone and hear music.

To do the same vith movies, photos etc.

To copy e-books from my desktop and read them in phone (formats: doc, RTF - the best reading, pdf etc).

To edit all files in phone (the same formats, include binaries).
[Windows Phone 7 Development and Hacking] Martin7Pro:
Version 2.3

Repaired saving of changed text document from Built-in Word application to any directory.

Added 3s timeout to JPG files shell showing in built-in Pictures application (you can make simple presentation from pictures, videos and sounds in sh file).
[Windows Phone 7 Development and Hacking] Martin7Pro:
Yes, you mean probably "system attribute" WinCE files. Phone Commander can replace it (on Fully unlocked devices only!!!) by any other (equal name) file, if file is not used (opened by any application or RAM loaded, if it is executable) actually. For security reason it cannot be deleted or renamed directly, substitution must be prepared first. For example - I want replace any system sound. I can create \Backup directory (on root etc), copy there xxx.wav file from \Windows directory. Now I can copy another sound file from \Windows (or another) directory to \Temp, rename it to equal name (xxx.wav) and copy or move it to \Windows directory. This way is working, I am using it to replace system dlls (drivers, language and hw keyboard layout files). But you must unload it from RAM first - for example change registry keys to another dll loading and restart device first. May be on not fully unlocked device cache copy must be prepared first (in dllcache directory etc, I do not know WinCE6 and WP7 security mechanisms).
[Windows Phone 7 Development and Hacking] Martin7Pro:
Version HTC7Pro only

Try it, but may be it will crash on other devices instead HTC7Pro. This is first version with unicate hardware keyboard support. Keys "0" to "9", "Enter" and cursor arrows works now.

Reboot device feature was aded in 9/Menu navigation.

Have you got somebody any BT hardware keyboard? We can probably make its connection to all WP7 phone and:

1. use HW keys in homebrew apps,

2. redirect HW keys to SIP emuation.
[Windows Phone 7 Development and Hacking] GoodDayToDie:
No, not System. I addition to the usual Readonly, Hidden, System, and Archive flags on FAT filesystems, the WinCE filesystem supports the INROM (indelible readonly mark) and ROMMODULE (can *only* be opened by the program loader, at least in theory, not even read like a normal file).

The degree to which WP7 enforces these restrictions, even on stock ROMs, is a bit unclear. For example, it's possible to "shadow" ROM files by overwriting them with a different file that has the same name. The old file doesn't actually get deleted or changed, though, and while attempting to just open the file by name will get the new version, it seems to still be possible to also get the old one, and deleting the shadowing file will just reveal the ROM file.
[Windows Phone 7 Development and Hacking] Martin7Pro:
I mean it may be really ROM including --> after hardreset those files are changed to original, is not it? I do not know WinCE and WP7 ROMs cooking, but I mean it can be similar to dllcache on Desktops, but hidden on WP7 filesystem. Then this is probably impossible to change it on running system, may be in boot time only (by mtty, GC, cab sending etc), what do you mean about it?

I found MS explanation here: http://social.msdn.microsoft.com/Fo.../thread/44ce4f7b-7037-4288-9480-1a3c8634bc21/

I have a important question:

Do you know, how to start Silverlight dll programmatically? Not by SHLaunchSessionByUri, this way is working good from Silverlight application only. I mean direct shell TaskHost.exe calling. Or it is not allowed on fully unlocked devices too? When I use SHLaunchSessionByUri from native exe, error 0x0202 occures everytime, from Silverlight code it works properly. Is not it problem of root access? Root manager on my phones (both DFT and Dynamics) ROMs knows managed dlls only. My native code is working, but COM calling from it is not allowed probably. Or I must load any next libraries to device? And, this is not right way for debugging, I want to call managed entry point by the same way as TaskHost.exe, but I do not know, how to do it.
[Windows Phone 7 Development and Hacking] Martin7Pro:
Import Registry files

New 2.4 (still beta) version is on usual place.

This version is able to import .reg files, like for example http://xdaforums.com/showthread.php?t=1938885, but within directorly listing panel.

Use carefully and at your own risk, this operation is very danger!

How to import .reg file? Simply tap to .reg file name in one of panels. File must be UNICODE!