[Testing] Uizz.UW:
\\ Development frozen because I've got more important projects to take care of right now .\\

\\ Don't get your hopes for this app to be revived , though . Way too much work to do for no actually productive reason .\\

PRE-ALPHA

Requirements

First of all and to get it out of the way , beware that this is a CLIENT-SERVER setup . This means that you will also have to run an app on your PC for this to work .

A Windows PC and an Android (2.3+) device .

.NET Framework 4

A Wi-Fi router .

​

IN-DEPTH GUIDE TO USING THE APP

PLEASE READ THIS FIRST IF YOU HAVE NO IDEA WHAT IT DOES OR HOW TO USE IT!

What does the app do ?

Briefly said : PC remote control . How ? Keep reading .

It basically just allows you to start / stop processes on your PC by sending predefined commands via Wi-Fi .

More functions coming after the app will exit the pre-alpha stage . Right now I'm interested in conectivity stability rather than functionality .

However , if you have any new idea about what kind of actions the app may perform on the PC , please let me know .

Setting up the client-server connection .

So first make sure both your PC and Android device are on the same Wi-Fi network (no Internet needed , just Wi-Fi) . Then start the server on your PC . At this point , if you have a firewall , it will ask you to give it permission to connect to your Wi-Fi network , just like this :

This is because the app is using Wi-Fi to receive commands .

Note : there should be a tray icon with a magenta-ish "m" icon in your task bar . This is how you can access the server settings .

Then , after you allow it to connect , fire up the client on your Android device .

The app will have 4 tabs : Server List , Console , List and Settings . The one we're interested in right now is the Server List . Make sure you're on it (it will start on it by default , but if by some chance you've change it , you can navigate through them by swiping on the screen or by tapping on their header names) .

Now the server's IP should appear on the list . Tap on it to try to connect . A prompt should appear on the PC screen with the device's IP Address and ask you whether you want to allow this device to connect . Press "Yes" and the device will be added to the White List (you can manage your White List by right-clicking the tray agent in the taskbar and selecting "White list") .

Okay so now it's time to make first contact with the server setup window . Here's where it gets interesting .

What's an "mLNK" ? Setup mLNKs and send them from your Android device .

So this is the main server setup interface :

... and even though it may make you feel a little trippy , let us concentrate on its functionality right now .

Note : you will not see the buttons labelled , I labelled them just for refference in this tutorial . However these notations actually do have a meaning in the workflow of the app . Anyways , moving on .

The first thing one would think of doing right now is clicking a button . Click one . You will see it light up and the "Current mLNK" field will change and will add its notation .

Now we can properly explain the way the app works .

So when you click multiple buttons , a string , or in more end-user terms , a chain of the pressed buttons' notations is being created . I gave these kinds of strings the nickname of mLNKs and from now on I will be using this term when reffering to them .

mLNKs are combinations of pressed buttons , both number AND order counting . Meaning A1 A2 is different from A2 A1 (if you try to , you will see you can't disable a button if it isn't the last one enabled) .

Each of these mLNKs can have a command linked to them . But best way to explain this I think is to try it yourself . Press A1 and then the middle round button (consider the middle button an "OK" button) (also , yes , there can be single-button mLNKs) . Now 3 parameters should appear on the right , speciffically "mLNK" , "Type" and "Param" . Right now the only two types of commands I implemented are "EXEC" , which in end-user terms means "start a file / directory / program" , and in dev terms means "System.Diagnostics.Process.Start(param);" , and also the command type "STOP" , which means "stop the process that has the name in the param" , or System.Diagnostics.Process.Kill();

Say we want to open "C:\" when sending the "A1" mLNK from our device . Just choose "EXEC" for type , type "C:\" in the param field and hit Save . Now you can minimize this . Let's move over to our phone .

So presuming the client-server connection has been made , now all we have to do is press A1 on the phone interface , then press the middle round OK button . This should send the command to the server , which should open "C:\" in the Windows Explorer . That's it ! You've just ran your first mLNK ! Now try doing it with files / programs as well and see what happens!

Security & Advanced Tips

Some may ask what TPBox.dll is . This is a .NET control I used for the console buttons , and because the app interface needs it , the app cannot run without it . Source for it can be found here (8th post , by Chris Vega , credits for it go to him) .

magentalinklist.xml contains the configuration for all the mLNKs .

I have chosen to save the White List in the .exe's internal settings , for security reasons .

Known Bugs

Design could be better - still working on it . Right now I'm concentrating on stability . After I have a stable app , I can photoshop the heck out of it :P

Possible conectivity workflow issuses I may have omitted . I am a newbie at working with sockets . That's why I try-catched pretty much all the code xD .

- tell me if you find more .

Usually you'll see message boxes pop up when there's an error on the server , or the green text in the top left on the client modify when there's an error on the client . Screenshot these and post them here , and please try to explain the thing that caused the error as accurately as possible for me to reproduce it .

I could also use some screenshots on different resolutions , just to make an idea about how to further work on the layout (I'm talking about the client) .

Future Plans :

Way more user-friendly (will implement this as I go)

Media player handling & media commands (play / pause / stop etc)

Command list on client (plain list , no mLNK console needed)

Internet connectivity via an intermediate server (this one's the last one on the list , even though I know it sounds the most fun of all , but be sure I will be implementing proper security for it when the time comes) .

... if you have any more suggestions , please let me know . Maybe you have an even crazier immagination than I do xD !

Changelog :

Download

Download - ALPHA 0.4 - 18 / 05 / 2013 - Server + Client - Dropbox

Download - PRE-ALPHA 0.3a - 04 / 05 / 2013 - Server + Client - Dropbox

Download - PRE-ALPHA 0.2 - 25 / 04 / 2013 - Server + Client - Dropbox

Download - PRE-ALPHA 0.1 - 24 / 04 / 2013 - Server + Client - Dropbox

People who have provided me with testing feedback :

Sabyn

DeltaSync

theinlinaung2010

Aessaya

As I said above , any feedback will greatly be appreciated . This is my first major developed Android app and I know it's yet to have a professional look & feel , but I'm working on it alot and also enjoying it alot in the process , so expect alot of progress :D .

Cheers!

-Uizz