This time something different but related to mobile phone. Sometimes you may think that you can control your PC with your mobile phone. This is a simple example to control your PC with your mobile phone. Actually, I did this for my college project.
I dreamed to control my PC like shutting down, sending mails, sending files, starting or stopping services etc. from any where from this universe using my mobile phone with lesser cost. Finally I did it with simple logic.
Logic behind the scene
I am having a mobile phone and I can send SMS to my mail id. My mobile phone service provider allows me to send Mail through SMS service. I will send message to my mail Id like SHUTDOWN (Command to shutdown machine). Assume my system is switched on and opened Outlook 2000 (I did not tried with other versions). I set Outlook to check my mail account every 60 seconds
I have written a listener application in VB. This application will be running in my system. This listener will check if any new mail is arrived to my inbox. If any new mail received then it will open the mail and check if the message is sent from my mobile phone. If it is verified then it will read the command, that I sent in mail. If the command matches to the pre-configured command in my program, then it will fire the event to the Operating system.
I used Outlook as my mail client. Create an outlook application object. From that getting name space of my inbox. After that checking each unread mail is it sent from my mobile phone. If it so then it parse the message and sent it to API function.
Here is the code to parse mail
Collapse
Private Function ParseMail() As String
‘Lets iterate through an each mail
For Each oMails In oNpc.GetDefaultFolder(olFolderInbox).Items
If oMails.UnRead Then
sParam = “”
‘Change the Subject comparition string
‘based on your service provider message
If UCase(oMails.Subject) = UCase(Trim(txtSubject.Text)) Then
sCommand = Mid(oMails.Body, 1, InStr(1, oMails.Body, Chr(13)) – 1)
If InStr(1, sCommand, “~”) <> 0 Then
ParseMail =
Mid(sCommand, 1, InStr(1, sCommand,
“~”) – 1)
sParam =
Mid(sCommand, InStr(1, sCommand,
“~”) + 1) Else
ParseMail =
sCommand End If
oMails.UnRead = False End If ‘ If
Send Unread mail Header is checked then
send
info to
mobile If
chkUnReadMail.Value =
1 Then If
UCase(oMails.Subject) <> UCase(Trim(txtSubject.Text)) Then
If InStr(1, sAlertedMails, Trim(oMails.EntryID)) = 0 Then
sAlertedMails = sAlertedMails & Trim(oMails.EntryID) & “,”
sMsgHead = “From: ” & oMails.SenderName & vbCrLf
sMsgHead = sMsgHead & “Sub: ” & oMails.Subject & vbCrLf
sMsgHead = sMsgHead & “DT: ” & oMails.SentOn & vbCrLf
sMsgHead = sMsgHead & “MSGID: ” & oMails.EntryID & “~”
SendSMS sMsgHead
End If
End If
End If
End If
Next oMails
�.
�.
End Function
I used more API functions and you can find it in
Using this application we can send commands to the system and also the system will report the status.
For example I like to know is there any new mail in my inbox then I will send command like CHECKMAIL. When the Listener receives this information then it will check count of unread mails and sends it to my mobile as SMS. Here is the code to parse mail
I thank Team for providing special SMS service for doing this application. I used XMLHTTP to pass the information as SMS to my Mobile.
Collapse
Private Sub SendSMS(sMessage As String,
Optional sFrom As String = “rasheedsys”)
�
�
Dim oXml As New MSXML2.XMLHTTP
Call oXml.Open(“POST”,
& sFrom & “&msg=” & sMessage & “~”)
‘Cange your vendor URL appropriately
Call oXml.setRequestHeader(“Content-Type”, “text/xml”)
Call oXml.Send
txtLog = txtLog & “Status of: “
& sFrom & “&msg=” & sMessage & “~” & vbCrLf
txtLog = txtLog & oXml.responseText & vbCrLf
�
�
End Sub
Here is the Command list and it�s functionality
SHUTDOWN
If we send SMS as SHUTDOWN then the machine will get shout downed
FILELIST~Folder Path~email Id
This command receives two parameters, Folder path and email Id to which we have to send the file list.
If we know the filename and file path we can use SENDFILE command to send a file from the machine to any email Id. In case we do not know the file name and path we can use FILELIST command. This command will get list of files, which is in the particular folder or Drive.
Example
FILELIST~C:\temp~rasheed1979@hotmail.com
When this message reaches my inbox then it search Temp folder in C drive and builds file list. The same is sent to the specified email id. In our example this file will be sent to
SENDFILE~File Name With Path~email Id
This command used to send a specific file from my system to specific email Id.
Example
SENDFILE~C:\myfile.txt~rasheed1979@hotmail.com
The file myfile.txt will be sent to the mail id
WHO
This command used to find the user who currently logged in the machine
NETSEND~System name~Message to send
Using this command we can send message from one machine to another machine without physical presence.
Example
NETSEND~SYS1~Hi
A message Hi will be sent to the machine named SYS1
CHECKMAIL
This command used to check number of unread mails in inbox. This command counts number unread mails in inbox and sends SMS to your mobile device
READMAILHEADER
This command used to check important information about the mail like from whom the message received, subject, Date time and message id (Used to read message).Read mail header info like From, Subject and Message id
READMSG~msgid
We can get message important detail using READMAILHEADER function. This function will returns message id. If we pass that message id like READMSG~adwerv354yjgh5fgrweg then the content of mail is sent to your mobile phone.
Using the application
You need VB runtime in your machine. I am not used any additional component in this application. You need MSXML 3.0 parser in your machine. You can find it in download section
When you compile and run this application an icon will be displayed in the system tray
Conclusion
We all know that we can control a PC from another PC. This is an initial approach to control PC using mobile phone. Not only controlling a PC we can get report from PC, File list, PC status, any other information stored in PC and much more. It is a beginning�
History
Initial version 0.1.0
Version 0.1.1
Commands Added
FILELIST
SENDFILE
WHO
NETSEND
CHECKMAIL
READMAILHEADER
READMSG