|
Just in case someone comes across this post looking for answers themselves, i solved the main problem by actually turning the PCB board on with a software command
But to try and answer the pointers delegate question here are my thoughts; First of all it can be confusing when you first look at it - well for me at least. If you look at converting C++ to VB there is always talk about Delegates as VB doesn't really have pointers, ... or does it? I knew already (from previous project) that pointers work and i had used them and delegates and 'addressof method' and various other stuff to interact with hardware and a DLL, which at the time seemed complicated to me but it worked, so why should i worry. Also why should it be different this time? This is one reason i ruled out the passing of 'String' instead of 'IntPtr' in the Function. And as it turned out relying on the 'string' being a 'kind of pointer' was not the way to a solution. To be honest using VB to access hardware etc is not the norm i know, but i am VB orientated not C++
In the current project the hardware and DLL interact to respond to a command and send back info to an address in ASCII format. So in the end i just had to be simple;
Declare Function
Create send Pointer and allocate some memory
Convert Code to ASCII
Copy the ASCII command to the Pointer
Create receive pointer (sRx) and allocate some memory
Call Function
Finally Decode the returned ASCII, which requires copying the "unmanaged data" to "managed data" and then converting.
Public Declare Function RFIDP1_TagComms Lib "myCom.dll" Alias "RFIDP1_TagComms" (ByVal sTx As IntPtr, ByVal sRx As IntPtr, ByVal sRxSize As Integer, ByVal timeout As Integer) As Integer
tagRead = "SRD"
Dim code() As Byte = System.Text.Encoding.ASCII.GetBytes(tagRead)
Dim codeLen As Integer = code.Length
result = PwrCtrl(1, True)
Threading.Thread.Sleep(500)
txtBxOutput.Text = "Module On"
Dim pointer As IntPtr = Marshal.AllocHGlobal(codeLen)
Marshal.Copy(code, 0, pointer, codeLen)
Dim sRx As IntPtr = Marshal.AllocHGlobal(127)
result = RFIDP1_TagComms(pointer, sRx, 127, 500)
If result = 0 Then
lbltagResult.Text = "Tag Read"
Else
lbltagResult.Text = result
End If
deCode(sRx)
Public Sub deCode(ByVal addr As IntPtr)
Dim managedArray2(127) As Byte
Marshal.Copy(addr, managedArray2, 0, 127)
Dim enc As New System.Text.ASCIIEncoding()
txtBxTN.Text = enc.GetString(managedArray2, 0, 18)
End Sub
So overall 'easy when you know how'
|
|
|
|
|
Is there any way to pass the value to scheduled task(.vbs file scheduled by same script) from vb script ?
|
|
|
|
|
Pass WHAT value to WHAT task?? Are you asking how to pass a value to whatever the task executes?
|
|
|
|
|
|
I have try to make exe file with vb 2010 and MS Access as database the result is not properly working and i get some error as follow:
System.Data.OleDb.OleDbException (0x80004005): Could not find file 'C:\Users\Ardana\AppData\Local\Apps\2.0\Data\C24JK049.G57\17RJNZZ5.CNB\kamu..tion_12200d4ff2448982_0001.0000_c7b275035b9dba0b\Data\dbfoto.accdb'.
at System.Data.OleDb.OleDbConnectionInternal..ctor(OleDbConnectionString constr, OleDbConnection connection)
at System.Data.OleDb.OleDbConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject)
at System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup)
at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
at System.Data.OleDb.OleDbConnection.Open()
at System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
at System.Data.Common.DbDataAdapter.Fill(DataTable[] dataTables, Int32 startRecord, Int32 maxRecords, IDbCommand command, CommandBehavior behavior)
at System.Data.Common.DbDataAdapter.Fill(DataTable dataTable)
at kamus_tanaman_new2.dbfotoDataSet2TableAdapters.tbfotokuTableAdapter.Fill(tbfotokuDataTable dataTable)
at kamus_tanaman_new2.tampil.tampil_Load(Object sender, EventArgs e)
at System.EventHandler.Invoke(Object sender, EventArgs e)
at System.Windows.Forms.Form.OnLoad(EventArgs e)
at System.Windows.Forms.Form.OnCreateControl()
at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
at System.Windows.Forms.Control.CreateControl()
at System.Windows.Forms.Control.WmShowWindow(Message& m)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
at System.Windows.Forms.Form.WmShowWindow(Message& m)
at System.Windows.Forms.Form.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
************** Loaded Assemblies **************
mscorlib
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.1 (RTMRel.030319-0100)
CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll
----------------------------------------
kamus tanaman new2
Assembly Version: 1.0.0.0
Win32 Version: 1.0.0.0
CodeBase: file:///C:/Users/Ardana/AppData/Local/Apps/2.0/ROQA591L.4ER/NHQGYEOJ.BHY/kamu..tion_12200d4ff2448982_0001.0000_c7b275035b9dba0b/kamus%20tanaman%20new2.exe
----------------------------------------
Microsoft.VisualBasic
Assembly Version: 10.0.0.0
Win32 Version: 10.0.30319.1 built by: RTMRel
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/Microsoft.VisualBasic/v4.0_10.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualBasic.dll
----------------------------------------
System
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.1 built by: RTMRel
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Core
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.1 built by: RTMRel
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
----------------------------------------
System.Windows.Forms
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.1 built by: RTMRel
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System.Drawing
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.1 built by: RTMRel
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System.Runtime.Remoting
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.1 (RTMRel.030319-0100)
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Runtime.Remoting/v4.0_4.0.0.0__b77a5c561934e089/System.Runtime.Remoting.dll
----------------------------------------
System.Data
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.1 (RTMRel.030319-0100)
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_32/System.Data/v4.0_4.0.0.0__b77a5c561934e089/System.Data.dll
----------------------------------------
System.Xml
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.1 built by: RTMRel
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
System.Data.DataSetExtensions
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.1 built by: RTMRel
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Data.DataSetExtensions/v4.0_4.0.0.0__b77a5c561934e089/System.Data.DataSetExtensions.dll
----------------------------------------
System.Numerics
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.1 built by: RTMRel
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Numerics/v4.0_4.0.0.0__b77a5c561934e089/System.Numerics.dll
----------------------------------------
System.Configuration
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.1 (RTMRel.030319-0100)
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
System.Transactions
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.1 (RTMRel.030319-0100)
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_32/System.Transactions/v4.0_4.0.0.0__b77a5c561934e089/System.Transactions.dll
----------------------------------------
************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.
For example:
<configuration>
<system.windows.forms jitdebugging="true">
When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.
I just a new be can any ones tell me how the step by step doing this, thanks
Ardana
ardanam@gmail.com
|
|
|
|
|
Two reasons.
0) There's no database file(dbfoto.accdb) in that path
1) Or you're referring the wrong path.
thatrajaCode converters | Education Needed
No thanks, I am all stocked up. - Luc Pattyn
When you're wrestling a gorilla, you don't stop when you're tired, you stop when the gorilla is - Henry Minute
|
|
|
|
|
send me link student birthday reminder
|
|
|
|
|
No, we're not doing your homework for you, and neither is anyone else.
If you've got a specific question about where you're stuck writing this code, that's where we'll help.
Besides, VB6 is long since dead.
|
|
|
|
|
I'm in a Visual Basic 2010 class. We have a homework assignment and I was hoping I could get some help. down is the homework
the file Words.txt contains a list of word S. Write a program that displays the words in a list box sorted by the number of different vowels(A.E.I) in the word. When two words have the same number of different vowels,they should be ordered first by their length(descending) and then alphabetically. the display should show both the word and the number of different vowels in the word.
here is the file's contents.
visual
two
tsk
sub
special
shh
sequoia
pulverize
psst
organized
open
next
important
for
facetious
equal
educate
discourage
dialogue
courage
close
cauliflower
brrr
break
basic
|
|
|
|
|
Ok, what do you need help with? We will not do your homework for you, you need to show some effort. We can help with specific pieces, but we aren't going to do the whole thing.
|
|
|
|
|
its work i already.
click here to see the result[^]
Public Class FrmDisplay
Private Sub Label1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
End Sub
Private Sub FrmDisplay_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.WindowState = FormWindowState.Maximized
End Sub
Private Sub BtnDisplayWord_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnDisplayWord.Click
Dim words() As String = IO.File.ReadAllLines("words.txt")
Dim query = From word In words
Order By VowelCount(word) Descending, word.Length Descending, word Ascending
Select VowelCount(word) & " " & word
For Each word In Words
ListResults.DataSource = query.ToList
Next
End Sub
Private Sub BtnRetour_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnRetour.Click
Me.Hide()
frmMain.Show()
End Sub
End Class
|
|
|
|
|
And? You stated the homework assignment, something you are expected to do.
You then posted your code.
So.... is there a question here? Or are you simply asking people to review/comment on what you've done?
|
|
|
|
|
I am simply asking people to review my code
|
|
|
|
|
Your VowelCount method isn't present in that class. We can't comment on it if we can't see it.
|
|
|
|
|
i post my code and the subject, i just want somebody help to check if its correct.
|
|
|
|
|
You haven't posted all your code though. As I pointed out, you are missing your VowelCount method in the code. How can we review it if we can't see it?
|
|
|
|
|
Caveat: I'm not a trained programmer. Self-taught to accomplish particular tasks.
OS: Windows 7
.NET version: 3.5
VS version: 2008
Key references: Microsoft Excel 14.0 Object Library, Microsoft Office 14.0 Object Library, Microsoft Visual Basic for Applications Extensibility 5.3
I wrote a program a couple of years ago that takes text files full of numbers (data files from behavioral research projects), transforms the data in particular ways, and displays the results on a form in both text boxes and charts (Microsoft Chart Control). In addition, I have it so that I can click on a button, select what parameters I want to save, and the program will dump all of the transformed data into an Excel workbook (full of several worksheets). The user can select whether to keep Excel open or have Excel open in the background long enough to create and save the file.
Program works great on my office computer (Windows 7, Excel 2010). I now want it to work on a second computer in my research lab (Windows 7, Excel 2013). To accomplish this, I moved only two files: my compiled .exe and a .dll required by the program that has nothing to do with the Excel problem.
When I run the program on this second machine, every function works fine until I go to dump the data to Excel. Then I get an unhandled exception message:
"
System.Runtime.InteropServices.COMException (0x800A03EC): A workbook must contain at least one visible worksheet.
To hide, delete, or move the selected sheet(s), you must first insert a new sheet or unhide a sheet that is already hidden. "
Now, because I generally just write programs for my own use, I know very little about how to distribute them, so this problem may be completely due to my failure to move some file to this new machine.
But the error seems to indicate that Excel 2013 works differently than 2010 (i.e., that I should have programmatically set some visible property for new Excel). I don't want to have 2 versions of my program just to work with 2 versions of Excel. (It's not possible for me to downgrade to 2010 on the new machine because our IT dept. will want to re-image the machine which is a big headache for other reasons.)
I can post code later if need be; for now I just was hoping someone familiar with working with different versions of Excel could steer me in the right direction before I get too deep into it. I don't know if I should be going first to the code, first to Excel (I've not used 2013 at all), or first to making sure all of my files are correctly copied. Perhaps I should be creating a setup package rather than just trying to copy files?
**One other note. I have a different program that saves a report in Word, and this program has worked fine on the machine with Word 2013 as on the machine with Word 2010 (and it was programmed back when it was 2007). Apparently that time, though, I made a setup file for this. Maybe not doing that this time was the mistake? (When I make setup files, I have very little idea what I'm doing.)
|
|
|
|
|
Quote: I moved only two files: my compiled .exe and a .dll required by the program that has nothing to do with the Excel problem I suspect that you need to copy the two following files as well from your original program location.
Interop.Microsoft.Office.Core.dll
Interop.Microsoft.Office.Interop.Excel.dll
|
|
|
|
|
Thank you for this suggestion. I would appreciate a little handholding here.
I cannot find these files. I know they are found in the GAC, but the GAC folder appears in such a way that I cannot simply copy these dlls. I guess I had assumed that since these were in the GAC, I wouldn't have to move the DLLs at all (both machines have .NET 3.5).
I have been working out of my debug/bin folder on the working machine; I've never set up a "published" version. If I do that, will these .dlls appear in my program directory?
|
|
|
|
|
I must apologize for sending you down the wrong path.
When I wrote that, it did not even occur to me that you had the Office Primary Interop Assemblies (PIA) installed in the GAC. You would have gotten a reference not found or something like that if they were missing.
The error message is pretty clear about the circumstances; at some point your code must be trying to delete/hide the last visible worksheet. This is easy to reproduce by calling the Delete method on the Workbook.WorkSheets object.
You need to inspect your code and find what causes this condition to occur.
As to why does it work fine on your development machine, but not on another? This is hard to say without seeing your code, but perhaps you are deleting the default WorkSheets (Sheet1 thru Sheet3) as some type of cleanup in your code and no other visible worksheets were added prior to this action on the subject installation.
Edit: corrected typo's
modified 10-Jan-14 17:16pm.
|
|
|
|
|
Thank you and now I think I know what I have to do.
For a long time, starting a new workbook in Excel caused the creation of 3 blank worksheets. As you guessed, my code starts by deleting 2 of these blank sheets as part of a pre-cleanup, before it added the variable number of sheets the user needs.
Excel 2013 apparently starts you off with only 1 blank sheet. Thus, either when I try and delete a non-existent sheet, or when my program assumes 1 sheet exists when it doesn't, I get the error.
So I will programmatically count the number of active sheets before I do any clean up, and this should give me a program that behaves regardless of the Excel version.
Thank you for focusing me on the right thing. (Fingers crossed.)
|
|
|
|
|
Thank you TnTinMn. I can now report this problem is solved. Indeed, I had a loop to remove 2 blank worksheets; I rewrote the loop to count the number of worksheets (would be 3 for older versions of excel, 1 for newer), to subtract 1 from this count, and to loop from 1 to this count deleting worksheets. In practice, this loops from 1 to 2 for older excel (how I had it hard-coded) and 1 to 0 in new excel. Should have done that in the first place!
--Steve
|
|
|
|
|
good day everyone i need help to my project i'm newbie in programming.
i want to make an file downloader using visual basic 2012.
i have a code for file downloader but i need some button to add.
i only have download button1 for (download)to download file.
now i need to add another button2 for (cancel) to stop the download file.
here's the code
Imports System.Net
Public Class Form1
Private Sub downloadFile(ByVal srcPath As String, ByVal destPath As String)
Dim wClient As New System.Net.WebClient()
AddHandler wClient.DownloadProgressChanged, AddressOf downloadFile_ProgressChanged
wClient.DownloadFileAsync(New System.Uri(srcPath), destPath)
End Sub
Private Sub downloadFile_ProgressChanged(ByVal sender As Object, ByVal e As System.Net.DownloadProgressChangedEventArgs)
ProgressBar1.Maximum = e.TotalBytesToReceive
ProgressBar1.Value = e.BytesReceived
Label7.Text = e.ProgressPercentage.ToString + "%"
Application.DoEvents()
If e.ProgressPercentage = 100 Then
Label5.Text = "Download Complete :"
DownloadBtn1.Enabled = True
End If
end sub
Private Sub DownloadBtn1_Click(sender As Object, e As EventArgs) Handles DownloadBtn1.Click
If Pm1.SelectedItem = ("item") Then
downloadFile("http://", "Location")
ProgressBar1.Visible = True
Label5.Visible = True
Label7.Visible = True
DownloadBtn1.Enabled = False
End If
end Sub
end class
anybody can edit the code for me
thaks.
|
|
|
|
|
Have you seen the WebClient.CancelAsync() method??
In your case you would just drop a button on the form and in the Click event handler put:
wClient.CancelAsync()
Nobody is going to edit your code for you. Nobody is doing it for us, so why would we do it for anyone else??
|
|
|
|
|
Hi friends,
I have a question. In form, If we maximize the form, if all the controls in the form is to be centered, we give ANCHOR->NONE to all the controls. But, If I gave ANCHOR->NONE to any one of the controls, it should affect others also.. How can I acheive this??
|
|
|
|
|