MATLAB Answers

0

How to make a code to access the internet and other programs

Asked by Rainaire Hansford on 24 Jul 2017
Latest activity Commented on by Walter Roberson
on 15 Jan 2019 at 6:02
Is there a way to make a code open the internet browser and other programs.

  0 Comments

Sign in to comment.

Tags

Products

2 Answers

Answer by Jon Lobo on 24 Jul 2017

You can use system commands to do this. See system
You can also use the ! to do this.

  6 Comments

NET.addAssembly('System.Speech');
obj = System.Speech.Synthesis.SpeechSynthesizer;
obj.Volume = 100;
command = strtrim( input('What is your command', 's') );
parts = regexp(command, '\s+', 'split');
text_to_say = 'Unrecognized command';
if isempty(parts)
Speak(obj, text_to_say);
else
switch lower(parts)
case 'open'
if length(parts) == 2
filename = parts{2};
if exist(filename, 'file')
text_to_say = 'Opening file';
Speak(obj, text_to_say);
open(filename);
else
text_to_say = 'Could not find file to open it';
Speak(obj, text_to_say);
end
else
Speak(obj, text_to_say);
end
case 'search'
if length(parts) == 2
filename = parts{2};
cmd = sprintf('cd C:\; dir /s "%s"', filename);
text_to_say = 'Searching disk C for file';
Speak(obj, text_to_say);
[status, message] = system(cmd);
if isempty(message)
text_to_say = 'System had no response to search request';
Speak(obj, text_to_say);
else
text_to_say = 'System result of search follows';
Speak(obj, text_to_say);
Speak(obj, message);
end
else
Speak(obj, text_to_say');
end
otherwise
Speak(obj, text_to_say);
end
end
Ok Walter your going to have to walk me throught this cause I have no idea what any of this means haha I ran this code but it keeps giving error:
SWITCH expression must be a scalar or a character vector.
Error in Practice (line 11)
switch lower(parts)
Change
switch lower(parts)
to
switch lower(parts{1})

Sign in to comment.


Answer by Rainaire Hansford on 4 Aug 2018

ok well no error
What is your command parts
Undefined function or variable 'text_to_say'.
Error in Practice (line 45)
Speak(obj, text_to_say);

  15 Comments

%initializations. No need to keep doing these.
chromelocation = 'C:\Program Files (x86)\Google\Chrome\Application\chrome.exe';
local_file_prefix = 'file://';
NET.addAssembly('System.Speech');
obj = System.Speech.Synthesis.SpeechSynthesizer;
obj.Volume = 100;
%then inside loop
....
else
word1 = regexp(res, '\S+', 'match', 'once');
if strcmpi(word1, 'Open')
openwhat = regexprep(res, '\s*\S+\s*', '', 'once');
uri = regexp(openwhat, '^\w\w+:'); %with at least two characters before the :
if isempty(uri)
openwhat = [local_file_prefix openwhat];
end
text_to_say = sprintf('Opening %s', openwhat);
Speak(obj, text_to_say)
cmd = sprintf('%s "%s"', chromelocation, openwhat);
else
...
Could I get like an example with your directory?
Sorry, I am not running Windows most of the time, and I am having a lot of trouble with my virtual machine software these days.
Well my chrome is in the same location. But i really dont know what im really looking at lol.
the dots before and after else i never seen them in a code before. In all the codes that we have gone over where is this suppose to fit?
%initializations. No need to keep doing these.
chromelocation = 'C:\Program Files (x86)\Google\Chrome\Application\chrome.exe';
local_file_prefix = 'file://';
NET.addAssembly('System.Speech');
obj = System.Speech.Synthesis.SpeechSynthesizer;
obj.Volume = 100;
command = strtrim( input('What is your command ', 's') );
parts = regexp(command, '\s+', 'split');
if isempty(parts)
text_to_say = 'Unrecognized command';
Speak(obj, text_to_say);
else
switch lower(parts{1})
case 'open'
if length(parts) == 2
cmd = [];
filename = parts{2};
if exist(filename, 'file')
openwhat = [local_file_prefix filename];
text_to_say = 'Opening local file';
else
uri = regexp(filename, '^\w\w+:'); %with at least two characters before the :
if isempty(uri)
text_to_say = 'Local file not found';
filename = [];
else
text_to_say = 'Opening URL with browser.';
cmd = sprintf('%s "%s" &', chromelocation, filename);
filename = [];
end
end
Speak(obj, text_to_say);
if ~isempty(filename)
open(filename);
end
if ~isempty(cmd)
cmd = sprintf('%s "%s" &', chromelocation, openwhat);
system(cmd);
end
else
Speak(obj, text_to_say);
end
case 'search'
if length(parts) == 2
filename = parts{2};
cmd = sprintf('cd C:\; dir /s "%s"', filename);
text_to_say = 'Searching disk C for file';
Speak(obj, text_to_say);
[status, message] = system(cmd);
if isempty(message)
text_to_say = 'System had no response to search request';
Speak(obj, text_to_say);
else
text_to_say = 'System result of search follows';
Speak(obj, text_to_say);
Speak(obj, message);
end
else
Speak(obj, text_to_say');
end
otherwise
Speak(obj, text_to_say);
end
end

Sign in to comment.