|
I'm pretty new to VB, .NET, and windows in general. I'm trying to write a simple app (VB .NET) that plays a wav file and gets notified when the playing is complete. I've been trying to use MCI with a callback function, etc. but I can't get it to work. Does anybody have any sample code for doing this in .NET? Is using MCI the best approach? Would it be better to use windows media player or directX, or ...?
thanks
|
|
|
|
|
Mentalis has a multimedia class I like to use it's more in the Intermediate catagory but, you may want to give it a look at:
http://www.mentalis.org/soft/class.qpx?id=1
|
|
|
|
|
I like the Mentalis media a lot. I've used it several times previously and it works pretty good for me.
Clickety[^]
Aaron Eldreth
TheCollective4.com
My Articles
I hereby boycott this poll. Really....
- Leppie
|
|
|
|
|
I have about 6-10 different moderately complex queries that are returning a count.
I am wanting to figure out the best, most efficient method for running those queries and displaying the counts either in a table or a datagrid type view.
Currently, I have a function that gets all the SQL Commands that I need and places them in and array.
I setup a data adapter and fill a separate table on a dataset for each Count query I have.
TO display I set a table's specific cells to show the dataset.tables("whatever").row(0).Item(0)
It seems to take quite a long time for this method....
Does someone know something better??
I am still a beginner so any advice would be helpful.
Thanks
cavall
"Nothing is at last sacred, but the integrity of your own mind."
"What lies behind us and what lies before us are nothing compared to what lies within us." - Ralph Waldo Emerson
|
|
|
|
|
From your description, is would appear that 99% of the time it takes to come up with the final result is being taken up by the SQL queries themselves. The code to put the final table with the results is nearly nothing. If these queries are static, meaning you always use the same set of queries the same way, then you might want to look into have the SQL Server run a stored procedure that runs all of your queries for you and returns a small table with the results you want. Then, you would only have to write code to handle the returned table of results, bind your datagrid to it, and not worry about dataset.tables("whatever").row(0).Item(0) .
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
I am trying to connect to MATLAB trough a Visual Basic GUI progam. I found the documentation on ActiveX for MATLAB, and it had a very simple example in VB. However, when i try to run this simple execution, i get an error.
Code:Dim Matlab As Object
Dim res As String
Set Matlab = CreateObject("Matlab.Application")
res = Matlab.Execute("surf(peaks)")
Error: ActiveX component can't creat object
this occurs at the the set Matlab line.
Any suggestions? I am far from a pro at programing. Are there better examples of connecting VB to MATLAB out there? I couldn't find one. Or any better suggestions on how to go about connecting to MATLAB? (I learn best from examples)
Thank you!!!!!
|
|
|
|
|
Can you not add a reference to the application in the project references.
Then you should be able to address it through
Dim oMatlab as new Matlab.application
oMatlab.Whatever
if the reference is not there to be added, or if it is one of those inaccessible ones i'm not sure what you could do.
What it Matlab by the way?
"Small Pink Cheese"
|
|
|
|
|
That does not seem to be working either. it won't tatke matlab.application as an argument.
Matlab is a powerfull program used alot in the sciences. It has very powerfull computaional abilities. It can also be use as a programing language to develop prgrams for things such as signal processing and control systems.
I still need some information on how to link Visual Basic to MATLAB. My main purpose for this is to use Matlabs graphing capabilites, because the ones in VB are horrible.
Also, it anyone knows how to write a .MAT file directly from Visual Basic, that would be just as helpful!!
|
|
|
|
|
This may seem like a dumb question, but if the CreateObject call fails, I have to ask is MATLAB installed on your development machine? And if there is an SDK available for it, is that installed also?
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
MATLAB is installed and i'm not exactly sure what an SDK is. I am not a "programmer", i'm an entry level electrical engineer, with minimal programing experience. I am having alot of trouble with this problem, becasue i don't know much about the intricate details of different programs. I just want to get VB and MATLAB to connect! please help
|
|
|
|
|
Try here.
http://www.mathworks.com/access/helpdesk/help/toolbox/combuilder/examples26.html
|
|
|
|
|
One other note of Interest,
COM components from the Matlab for Excel version
will not work in VB.Net.
|
|
|
|
|
I have to play flash movies (.swf) files inside a C# application. The problem is I need an event to tell me when the playing of the file is complete, which the Shockwave Flash Control imported through ActiveX is not offering. Am I missing something on the Shockwave Flash Control or am I using the bad tool?
Any help in this matter will be much apreciated.
|
|
|
|
|
The Flash ActiveX control only fires three events, FSCommand , OnProgress , and OnReadyStateChange . The last one is probably the one your looking for. I think it will pass you a single int value:
0 - Loading
1 - Uninitialized
2 - Loaded
3 - Interactive
4 - Complete
If you get the Complete value, I THINK(!) the movie might be done playing.
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
By the way, This is teh VB Forum, not C#.
Cross posting in multiple forums is usually frowned upon.
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
Can I print by using 136 column wide printing in Visual Basic.NET? I want to print to A4 but to specify a row-column (fixed character width) rather than pixel to specify x-y coordinate to print. In PrintDocument fonts are not in fixed width and normal printdocuments graphics does not do my job. I have to print to some speedy dot printers some does not have graphical methods.
What the peoblem is that I used the DrawString and measureString methods and a graphical printing. It works fine with new printers but majority of my customers has old dot-matrix printers. Especially in win98 it prints a big SPAGETTİ or NOTHING I want to do a raw text printing. Printers has a wide mode printing option. I want to tell printer that this is a wide mode (wide mode is 136 columns while normal mode is 80 columns).
There is a famous article Microsoft Knowledge Base Article - 322090 HOW TO: Send Raw Data to a Printer by Using Visual Basic.NET. But the code inside does not work in win98.
I need immediate help. Thanks...
|
|
|
|
|
What is the problem that your having with the code? What are the errors? The code will work with Win98, but it may take a little modification to do so.
For instance, since Unicode support on anything other than an NT/2000/XP/2003 is questionable, you can have DLLImport hunt down the correct version of the imported functions without you having to guess at which version is available by making the following changes:
* Make sure that the EntryPoint names DON'T end in W or A.
* Change the CharSet option to CharSet.Auto.
* Change the ExactSpelling option to False.
You might want to start with this:
<DllImport("winspool.Drv", EntryPoint:="OpenPrinter", _
SetLastError:=True, CharSet:=CharSet.Auto, _
ExactSpelling:=False, CallingConvention:=CallingConvention.StdCall)> _
Public Shared Function OpenPrinter(ByVal src As String, ByRef hPrinter As IntPtr, ByVal pd As Long) As Boolean
End Function
<DllImport("winspool.Drv", EntryPoint:="ClosePrinter", _
SetLastError:=True, CharSet:=CharSet.Auto, _
ExactSpelling:=False, CallingConvention:=CallingConvention.StdCall)> _
Public Shared Function ClosePrinter(ByVal hPrinter As IntPtr) As Boolean
End Function
<DllImport("winspool.Drv", EntryPoint:="StartDocPrinter", _
SetLastError:=True, CharSet:=CharSet.Auto, _
ExactSpelling:=False, CallingConvention:=CallingConvention.StdCall)> _
Public Shared Function StartDocPrinter(ByVal hPrinter As IntPtr, _
ByVal level As Int32, ByRef pDI As DOCINFOW) As Boolean
End Function
<DllImport("winspool.Drv", EntryPoint:="EndDocPrinter", _
SetLastError:=True, CharSet:=CharSet.Auto, _
ExactSpelling:=False, CallingConvention:=CallingConvention.StdCall)> _
Public Shared Function EndDocPrinter(ByVal hPrinter As IntPtr) As Boolean
End Function
<DllImport("winspool.Drv", EntryPoint:="StartPagePrinter", _
SetLastError:=True, CharSet:=CharSet.Auto, _
ExactSpelling:=False, CallingConvention:=CallingConvention.StdCall)> _
Public Shared Function StartPagePrinter(ByVal hPrinter As IntPtr) As Boolean
End Function
<DllImport("winspool.Drv", EntryPoint:="EndPagePrinter", _
SetLastError:=True, CharSet:=CharSet.Auto, _
ExactSpelling:=False, CallingConvention:=CallingConvention.StdCall)> _
Public Shared Function EndPagePrinter(ByVal hPrinter As IntPtr) As Boolean
End Function
<DllImport("winspool.Drv", EntryPoint:="WritePrinter", _
SetLastError:=True, CharSet:=CharSet.Auto, _
ExactSpelling:=False, CallingConvention:=CallingConvention.StdCall)> _
Public Shared Function WritePrinter(ByVal hPrinter As IntPtr, _
ByVal pBytes As IntPtr, ByVal dwCount As Int32, ByRef dwWritten As Int32) As Boolean
End Function
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
I get no error. It just does not print. Do you have any knowledge about printers wide mode (136 columns)?
|
|
|
|
|
It's been a VERY long time since I played with a dot matrix printer, but yes I do know how the command set for them works.
Have you tried the modifications to the code that I posted?
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
I had no time to try your modification because of other deadlines. I will try it out. Thanks a lot.
|
|
|
|
|
You may not get a solution for Every Printer out there, I just tried that code(322090 HOW TO) on a win98se and a OKIData Microline 321 (with OKI Drivers) and it worked just fine.
Not all Dot Matrix printers follow the same Specifications and Standards.
|
|
|
|
|
Hi all, a rather basic question but...
Is it possible to create a VB.NET application that does not need the 20MB++ .NET framework installed when I distribute the program (need suport for 98, xp, nt and 2000)???
I have done some winodows programming before in VS6 and then you only needed the vbrundll files that are much smaller, I can accept to install them with my application but when the application is a small serial tool < 1MB in size I would rather not need to install 20MB++ of suport files. This might also scare the customers a bit with reboots and all.
If the answer is now, are there any other solution???
There are a lot of programs on the net and I have never seen any "small application" instalation files big enough to include the .NET framwork instalation, how do they solve the problem.
One option would be to use VB6 but Im about to start at a new company and need to get a new dev enviroment and I dont thik you can buy that anymore? It also feels a bit bad to start something new with buying old tools...
If the answer to all the questions is no, is the only solution to create a small standalone windows application to use VC++???
regards Me
|
|
|
|
|
Code written in VB.NET does not compile to machine code. Instead, intermediate language (MSIL) code is produced, which then needs to be Just-In-Time compiled in order to run. No runtime = no run.
There is a app called Thinstall [^] that is supposedly is able to compile your app along with whatever parts of the .NET framework you use into an executable that can run with the framework installed on the target machine, but I've never used it or spoken with anyone who has.
Also, the 23MB install for the framework is a one-shot deal (assuming you stick with one version of it), so you won't need to reinstall it with every app you distribute.
Using .NET can pay big dividends when it comes to developer productivity, though, so it's not exactly apples to apples when comparing runtime size. There are certainly other factors involved.
Charlie
if(!curlies){ return; }
|
|
|
|
|
aslm wrote:
There are a lot of programs on the net and I have never seen any "small application" instalation files big enough to include the .NET framwork instalation, how do they solve the problem.
Most applications you pickup off the 'Net are not written in VB.NET. If you do, then most will not come with the .NET Framework installation. They'll assume you have the correct version of the .NET Framework installed already.
Besides, a 23MB file being downloaded off the 'Net is nothing nowadays.
Also, if you concerned with future developement, keep in mind that every new version of Windows will now come with the latest .NET Framework as part of the OS. Windows Server 2003 comes with .NET Framework 1.1 already installed.
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
How do i convert the following into a fully multithreaded tcp server and remove the two addhandler(linerecieved,ondisconnected), i just know how
to remove the addhandler and make it into a separate thread.
any help would be appreciated.
thanks
jim
[UI form]
Option Strict On
Imports System.Threading
Imports System.Net.Sockets
Imports System.Net
Private myThread as thread
private mysocket as Tcplistener
Private Sub clsServer_load(...)
mythread = New threading.thread(addressof Dolisten)
mythread.start()
end sub
Pirvate dolisten()
dim localaddr = system.net.ipaddress
try
mysocket = new Tcplistener(localaddr,1234)
mysocket.start()
do
dim x as New clsClient(mysocket.AcceptTcpClient)
AddHandler x.Disconnected, AddressOf onDisconnected
AddHandler x.myReceived, AddressOf LineReceived
mcolClients.Add(x.ID, x)
Loop Until False
catch
end try
end sub
Public Sub LineReceived(ByVal sender As clsClient, ByVal strString As String)
'process recive data here
end sub
[clsClient.vb]
Option Strict On
Imports System.Net.Sockets
Imports System.Text
'client class to handle the new client connected to the server
Public Class clsClient
Public Event Disconnected(ByVal sender As clsClient)
Public Event LineReceived(ByVal sender As clsClient, ByVal Data As String)
Private mgID As Guid = Guid.NewGuid
Const BUFFER_SIZE As Integer = 512
Private mobjClient As TcpClient
Private marData(BUFFER_SIZE) As Byte
Private mobjText As New StringBuilder()
Public ReadOnly Property ID() As String
Get
Return mgID.ToString
End Get
End Property
Public Sub New(ByVal client As TcpClient)
mobjClient = client
mobjClient.GetStream.BeginRead(marData, 0, BUFFER_SIZE, AddressOf DoStreamReceive, Nothing)
End Sub
Private Sub DoStreamReceive(ByVal ar As IAsyncResult)
Dim intCount As Integer
Dim clientdata As String = Encoding.ASCII.GetString(marData)
Try
SyncLock mobjClient.GetStream
intCount = mobjClient.GetStream.EndRead(ar)
End SyncLock
If intCount < 1 Then
RaiseEvent Disconnected(Me)
Exit Sub
End If
RaiseEvent LineReceived(Me, clientdata)
SyncLock mobjClient.GetStream
mobjClient.GetStream.BeginRead(marData, 0, BUFFER_SIZE, AddressOf DoStreamReceive, Nothing)
End SyncLock
Catch ex As Exception
RaiseEvent Disconnected(Me)
End Try
End Sub
Public Sub Send(ByVal Data As String)
SyncLock mobjClient.GetStream
Dim w As New IO.StreamWriter(mobjClient.GetStream)
w.Write(Data)
w.Flush()
End SyncLock
End Sub
End Class
-just make it tough
|
|
|
|
|