Interacting Command-Line Applications - Put Together A Simple GUI For Ffmpeg
May 14, 2008
I'm trying to put together a simple GUI for ffmpeg (a command-line video conversion, encoder, decoder etc..), mostly for video encoding/conversion... Now I am able to interact with ffmpeg.exe (the command line app that does all the big conversion work) with the System.Diagnostic.Process class (I know how to start the process with the arguments I need etc..) But the problem is, when I'm converting a moderately long video file it can take several minutes to complete...
I've been trying without success to get this working; I am trying to use 7zr.exe (7-zip) to archive things and the like in visual basic. There's a catch: I don't want the cmd window to show and most importantly. I keep getting errors.
To that effect, could someone please translate this to VB viable code (preferably using shell):
I didn't know where to post this question so I hope I put it in the right forum...I am not new to Visual Basic, however I am definitely not an advanced user. I would like to build an application that would allow me to interact with other programs on my computer. For example, if I were to build an application that could control iTunes, how would I go about this?
Or, I am looking to make an application that would allow me to do little things on my computer like disable my track pad if I have a mouse plugged in. How would I build something that could interact with windows (or iTunes) like that?
I am making an application where the listbox will load a text file that contains a number of different strings on each line. I want my application to interact with the first line, then go back, interact with the second line, then go back etc etc. The number of lines that will be in the listbox isn't set, and will change according to the text file that is loaded.
I have beginner skills using VB (am using the Express edition to learn). I would like to know how to set up a conditional statement in a Windows Form (WF) app that would check if a specific command line has been passed by another separate app that launchesthe Windows Form app using command lines, and if not passed, then the Windows Form app would shut down (exit, close).So far, I can use:
For Each s As String In My.Application.CommandLineArgs If s <> "xyz" Then Me.Close()
First let me say that I am not sure whether or not this should go in this section or the API section, and if it needs to be moved I apologize. My issue is fairly straight forward, but for some reason I cannot get it to work.
I am trying to send a command to a command line and then submit the command. I have been trying without success to get this to work in v2008 Express and v2010 Express, Here is the code I am trying to us:
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" ( _ ByVal lpClassName As String, _ ByVal lpWindowName As String _
what is the better option for simple desktop applications? what is the basic deferents about MySQL and SQL express..i found this very good tutorial and i was wondering because i m new at VB.NET its a good option to start with this tutorial?
I am using a CheckedListBox that is populated with Filenames (full path, i.e. C:TestTest.jpg)When I have the files that I want in the CheckedListBox I wish to click a Start Button which will process the list one at a time using an exe program that runs on the Command Line. There are arguments that need to pass to the command line as well as the file location in order for the program to process.I currently have it working but the issue is the loop finishes quickly and it is left up to the CMD.exe to finish the process. What I would like is for the LOOP to wait until each file completes processing before passing the command for the next file in the CheckedListBox.There some reasons I wish for it to work this way.
1) I would like to have a button that can Pause/Restart the Loop.
2) I would like to have a button that can Stop the Loop so the whole process can end.
3) I would like to have the Loop remove each file one by one from the CheckedListBox after it has been processed.
4) I would like to display a Message once all the files have been processed.
5) And if it were possible I would like to report the status either by text or a progress bar showing where it is at in the process.
6) And the ability to add some error handling if possible.
Since the Loop finishes so quickly as it just passes the command to the command line using the & as a seperator it is the command line that is handling the rest of the process. Because of this there is not control over it in the GUI.The code I am using allows the Command Line text to display in the Form so it won't open up a seperate window to run CMD.exe. This is the desired affect as I would like everything to appear to run from within the Form itself.
I apologize if this question is something of the most simple, but I'm not even sure what terms I should use to search. What I'm trying to do is create a 'Sub' that will do something when I call it in another Sub, however I am unsure in how I would pass variables from one another. Here is what I have;
Private Sub Log LogBox.AppendText(logstuff & vbNewLine) End Sub
I need to modify the simple insert command code here
Private Sub SaveButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SaveButton.Click Dim connectionString As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|DataGridSaveDB.accdb;Persist Security Info=True"
[code]...
it is Effective But I need to add a condition which is: Add only the rows where the column 4 is checked.
Note: the type of Column 4 is DataGridViewCheckBoxColumn
I am struggling to pass a parameter to a VB.NET application via a Windows scheduled task. It works perfectly in Visual Studio (passing a command line arguement via project properties).If I am calling a VB6 application, then I will supply the following parameters and it works:
Run: c:progra~1TestTest.exe TestParameter Start In: c:progra~1Test However, if I supply the same parameters in VB.NET, the program throws an exception when it tries to create an instance of a class in the Form.Load: System.NullReferenceException cannot create instance of object.
I have also tried the following:Run: c:program filesTestTest.exe TestParameter Start In: "c:program filesTest" This time the status of the scheduled task changes to "cannot start".What is the correct way to specify command line parameters in a scheduled task for a VB.NET program?UPDATE I found the solution on this web page:[URL}.. I am still confused as to why the program would not create an instance of an object when I used the 8 bit paths (i.e. progra~1)
I haven't touched VB or Visual Studio in an incredibly long time, so I appologize if this sounds ignorant.
Right now, my application (pictured below) is a simple button that executes a shell command. I was thrilled that I even managed that, but it got me to wondering if my application could execute that command, rather than sending the process to cmd.exe.
I'm using FFMPEG for the first time. The upload works. The *.avi file is uploaded to the virtual path just fine. When it runs through and attempts the conversion to an FLV file, it doesn't error out - but it doesn't convert the file either. The ffmpeg.exe and pthreadGC2.dllare in the same folder ({virtual_path}uploadvideo). I do see a cmd window flash when the process starts but can make out anything displayed.
Here's my code: File Upload Protected Sub Submit1_ServerClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Submit1.ServerClick If Not File1.PostedFile Is Nothing And File1.PostedFile.ContentLength > 0 Then Dim GetFileName As String = File1.PostedFile.FileName Dim fn As String = System.IO.Path.GetFileName(File1.PostedFile.FileName) [Code] .....
Its been a while since I posted here as i've moved away from VB for the last few months. Anyway, seen as the support is so good here, i'm having with ripping MP3 files out of a MP4 video using ffmpeg.
Here's my code so far, but for some reason it doesn't want to work for me
Imports System.IO Public Class Form1 Dim process As New Process
how to convert videos files using vb.net and ffmpeg. But as far as i know we cannot use multiple threads to run same exe file to convert files. Do you know how i can convert multiple videos using one external exe file (ffmpeg)?
I have not tried because my computer time was over. So iam just asking a general doubt whether if we attach it to one process then wouldn't the process get locked? Then can we multi-thread this application or not ?
I would like to know a simple method to create a simple line graph, with a grid and X and Y values... I tried just drawing in a picturebox but that was just annoying and not clear... Is there any simple way to create a little graph with prefixed values on X and Y (graph should just be lines drawns from different Y values, with always the same change of X)
I am making a GUI for ffmpeg. And i want a own namespace for it. So you can ex. write in Form1.vb:
ffmpeg.Execute("The command to execute")
or
ffmpeg.SetType.CBR
But i can't get it to work.This is what i have:
Imports System.IO Namespace ffmpeg Public Class Execute
[code]....
In the execute option, it gives me an error of Execute is a type in ffmpeg, not an expression.In the SetType thing, the two subs doesn't even come up when i call it.
I want to run the following command line program from VB.NET: rotor95.exe -d -k "password" -i "C:FileLocation" -o "C:FileLocation" The reason for this is that I don't want my users to have to drop out to a command line prompt in order to run a tiny program for 3 seconds. Typing in a 50 - 75 character file path twice isn't any fun either.
I tried using tooltask as discussed in the MSDN2 help but it appears to work with switches (/d etc.) but not parameters (-k "password"). I couldn't get the thing to work. See the following for the tooltask example:[URL]..light now I'm just using Shell("rotor95.exe -d -k "password" -i "C:FileLocation" -o "C:FileLocation") which works just fine but I'd like to use the .NET 2.0 super-whammy version of handling this problem if there is a better way to do it.
how to use basic FTP functions straight from the command line tool. and I started using Visual Studio to create "macros" for the command line tool (i.e. writing down specific functions to perform, write them to a txt file and then run Shell() to execute.)But what I want to know is if I can open a command prompt window and then interact with it. Say for example I'm writing an FTP class/object, I'd want to be able to keep a window up for my program to send commands to (And wishfully read data back from it.)Because it seems to me that whenever I use the Shell() command it just opens a prompt window and then closes it after my line of code has been executed. Is there way to interact with a command line window from Visual Studio? And maybe even scrape data from the terminal like with terminal emulator scripts?
I have a console application which reads .txt files. I want to be able to drag a txt file over my app and it would automatically open my app and show the text files contents. I think I have to use command line arguments like this:
Sub Main(ByVal cmdArgs() As String) End Sub Sub ReadFile(FilePath as String) End Sub
But how can I pass the text files path to my ReadFile sub?
OK! I've written my application in all it's GUI glory. I now just want to be able to run it from dos/a command line/batch, with no GUI appearing? So it just runs (& does its batch process).
How can I detect if my application has been initiated from command line/dos?
How do I then not open up the application and show its GUI etc?
Printing Work Orders from with in a .NET scripted screenSummary of code:
Public Overrides Sub onload(ByVal e As ScriptonloadEventArgs) Dim CWONO As String SetValue("CWONO") = "WO_Number" '(This field is automatically created with previous code)
I was wondering if it's possible to create a .vb source file from notepad and be able to build/compile from the command line without the need of a vb environment?
I have a forms app that contains a few forms. My task is to make it run invisibly when called from the command line with arguments.I have defined a Sub Main in a module and made it the startup item. I have an if/then/else that looks at args.length and if it equals 0 then I load the form and run the app normally. But how do I handle things when args are passed? I still need access to all the functions defined in my main form. Can I load the form invisibly and still "use" it?