Link to home
Start Free TrialLog in
Avatar of sasllc
sasllcFlag for United States of America

asked on

How to run a .bat file from a vb.net app in Windows Mobile?

For years we have been using the code below to run a batch file on a shared LAN network drive, running our warehouse app on the Motorola 9190 with Windows CE:

        Try
           
            psWork8 = "\\accserv2008\c\ginscanfiles\runwx.bat"

            Dim myProcess As Process = System.Diagnostics.Process.Start(psWork8, "0")

            myProcess.WaitForExit()

        Catch ex As Exception
            psWork4 = "Cannot run process file!"
            GoTo Err2
        End Try

But now when I try to do this same thing running on the Motorola MC67 with Windows Embedded Mobile 6.5, the procedure will no longer work, and I get that error.

The scanner definitely IS properly connected to the LAN share wirelessly.  In fact, some previous statements actually copy files from the scanner to the share, and that part works fine.  Apparently it is dying on the "Dim myProcess" statement, according to multiple messagebox.show commands I inserted for testing.  I don’t know what the actual error is, because as you can see, I have inserted a user-friendly message in the catch area.  If I should find out what the exact error is, what kind of syntax should I use in the catch area in place of my comment about "Cannot run process file!'?

This is the exact same code I use in our warehouse app that runs on Motorola 9190s using Windows CE with no problem.  It has worked fine for years.  That’s where I got this code, adding it to my new app running on the MC67 with WM 6.5.

The next test I did was to deploy my warehouse app on the MC67, and I found that it errors out exactly the same way.  Not so on a 9190 on CE6; it fails only on the MC67 running WM 6.5.  So, all this makes me think maybe there is some kind of gotcha with WM 6.5.

Next I changed it to run a batch file locally on the scanner itself, in \my documents, just in case this is a network issue.  But I got the same error, where the try-catch errors out and shows my “Cannot run process file” message.  This makes me wonder if maybe WM 6.5 doesn’t like running .bat files any more, or something along that line.  

Has Microsoft somehow taken away the ability to run a batch file from WM 6.5?  If that is what this is all about, what can be done to replace that functionality?  TIA
Avatar of Neil Russell
Neil Russell
Flag of United Kingdom of Great Britain and Northern Ireland image

It would be much more use to see the details of ex as a dump so that you knew exactly what Exception was thrown.
Avatar of sasllc

ASKER

I agree, but I don't exactly know what to key in the catch area.  What code can I use to do this?
Avatar of Nasir Razzaq
Change

psWork4 = "Cannot run process file!"

to

psWork4 = "Cannot run process file! because: " & ex.ToString
Avatar of sasllc

ASKER

Here is what it says...Cannot run process file because:

System.Component.Model.Win32Exception:

Win32Excepton at System.Diagnostics.Process.StartWithShellExecuteEX(ProcessStartInfo startInfo) at....... etc.

This looks very generic to me--with my limited knowledge.  Does this actually tell me anything useful and helpful, so I can fix the problem--assuming it is fixable?
Yeah does not tell much. Has anything changed on the LAN share in terms of folder name, permissions, users etc?
ASKER CERTIFIED SOLUTION
Avatar of sasllc
sasllc
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of sasllc

ASKER

No one was aware of any usable answers.