We needed an inter-process reader/writer lock.We decided to use a file and lock the first byte using LockEx and UnlockEx. The class creates a file in the system temp folder when it is created. The file is created with readwrite access and share read|write|delete.We also specify DeleteOnClose so we don't leave loads of temp files laying around. Obviously AcquireReader and AcquireWriter call LockEx with appropriate flags and ReleaseLock calls UnlockEx.We have tested this class using a small application that you can run several instances of and it works perfectly. The application that uses it has a problem, which we have managed to re-produce in another small test app. In pseudo code it is
Create InterProcessReaderWriter Dispose InterProcessReaderWriter without acquiring any locks Launch a child process which takes a reader lock
The first time this runs, it works fine. If you attempt to run it again, while the child process from the first time is still holding the lock, we get an UnauthorisedAccessException when trying to open the file.This appears to be a permission issue, not a sharing violation but all the processes in this test case are running as the same user.
I am experiencing a strange issue with a VB6 -> VB.Net conversion. There is a function that uses ADOX to look through the tables in a given database, and reset the seed values of any columns in said tables with the auto increment property set to true.I tracked the issue down to a call of "col.Properties("Autoincrement").Value". If this line of code is commented out, then the file handle properly terminates when I close both the ADO and the ADOX connections at the end of the function. If I leave that line in, the handle stays open despite the closing calls and forcing garbage collection.Here's how I am closing the objects:
System.Runtime.InteropServices.Marshal.ReleaseComObject(adoConn) Dim connection As ADODB.Connection = cat.ActiveConnection If Not connection Is Nothing Then
I have some code designed to locate a specific process based off of its window text, gather the main handle, and then all of the child windows. However, I have run into one problem. I cannot seem to gather all the handles and their respective text. For example, when I test my program and do a handle count on the specific process, it tells me that there are more than 400 handles for this one process. How do I get the handle pointers for this process and also gather the text associated with these handles.I have included my source code for reference.
Code:Public Class Form1 Const GW_CHILD As Integer = 5 Const GW_HWNDNEXT As Integer = 2 Const WM_GETTEXT As Integer = &HD Const WM_GETTEXTLENGTH As Integer = &HE Const BM_SETSTATE As Integer = &HF3 Const WM_LBUTTONUP As Integer = &H202 Const WM_LBUTTONDOWN As Integer = &H201
I have some code designed to locate a specific process based off of its window text, gather the main handle, and then all of the child windows. However, I have run into one problem. I cannot seem to gather all the handles and their respective text.
For example, when I test my program and do a handle count on the specific process, it tells me that there are more than 400 handles for this one process. How do I get the handle pointers for this process and also gather the text associated with these handles.
I have included my source code for reference.
Code:Public Class Form1 Const GW_CHILD As Integer = 5 Const GW_HWNDNEXT As Integer = 2 Const WM_GETTEXT As Integer = &HD Const WM_GETTEXTLENGTH As Integer = &HE Const BM_SETSTATE As Integer = &HF3 Const WM_LBUTTONUP As Integer = &H202 Const WM_LBUTTONDOWN As Integer = &H201
I have a filesystemwatcher that watches a certain folder.. Now i use system.thread.sleep to be sure that the file is completely copied to the folder that i watch..But this is not a good way!i know there is a way to check if the file is open or used by another process, but i dont know the code.[code]
I have a filesystemwatcher that watches a certain folder.. Now i use system.thread.sleep to be sure that the file is completely copied to the folder that i watch..[code]....
I have a filesystemwatcher that watches a certain folder.. Now i use system.thread.sleep to be sure that the file is completely copied to the folder that i watch..But this is not a good way!
I know there is a way to check if the file is open or used by another process, but i dont know the code..
I'm trying to open any file using Process.Start, but every time I try to open a file that isn't an executable the program crashes... This is the code I'm currently using:
vb.net Private Sub ListView1_MouseDoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles ListView1.MouseDoubleClick For Each lvi As ListViewItem In ListView1.SelectedItems Process.Start(path & "" & lvi.Text) Next End Sub
Path is a string that contains the selected folder path, and lvi is the text of the list view item (each item contains the icon and name of each file). It is working fine for .exe files, I was just wondering if it's JUST for .exe files...
Suppose I have this Dim proc As Process proc = Process.Start("Notepad.exe", "C: est.txt") Now, if I want to use Notepad.exe to open another text file (ie. C:2ndTextFile.txt) without closing it, how am I going to do it?
I need to logging the process list and saving it as a text file. I need it so that it will log any new program that opens up. Basically monitoring the process list.
I am trying to automate a process I do with a bank with vb.net. Basically I need to open a website and navigate through it (Automatically through the program obviously), enter a batch ID and enter a file path and name. For some reason when I get to the part where I need to enter the file name and path, it simply will not populate the text. I have attached a word document with screenshots and code. The only difference I can see, is that in the bank website's code the the input type for the file text is "FILE" rather than "TEXT" as it is for the batch id...
I was wondering if this code could be better optimized for multithreading. What it does is open a process and loops through the data, there could be any range of files to open (so I would like to have say 2 or 3 processes at once):
At the present moment I have four list boxes that save into one text file each seperated by a number telling me how many items are in each. The code is as follows[code]...
im learning vb.net and i am trying to build a program for practice.in this program you can open word files with an open file dialog, after the word files were opened the document is added to a listbox. then you can open it again, but from the list box by clicking a Button. everithing is fine, exept one thing, even if i add 5 documents to the list,when i try to open them from the list it only open the last one thant was open by the open file dialog.
Im using visual basic 2010 and im building a program that will basically, you click on something in the list it will automatically open a .dat file pull the information that it needs, and then proceed to enter it into a box on the right. Well heres my issue i know how to do everything else but i cant seem to imitate this image, i need to know how i can make a list like this where the whole row is selectable, and the items/subitems are divided.
I have searched far and wide and have not been able to find a solution to my problem.I have a typical situation where a process is gradually eating up memory. The process eventually throws an OutofMemory Exception. This problem has been dealt with in the past by just building a special machine that has greater memory.
This process bombs on only one of our clients which has around 450,000 records. We iterate through the collection of accounts and build a class object that is then passed into the xml serializer. This object has several properties and methods that would not all be populated at the same time. These objects are populated based on the information in each account record.
I've checked on the way we call the contructor for the XML Serializer and it is in the format that would store the xml assembly and not create new ones each time. So, I do not believe there is a memory leak due to the creation of the dynamic assemblies.How we call the serializer: Dim k1Serializer As New XmlSerializer(GetType(ClassObject))
My questions are:When serializing a large object, does the serializer look at every possible serializable object or just the ones that are populated by your object?
Could the serialization of this large class object be causing an issue?I noticed when we pass in the serialized object, it's not automatically written out to the file specified. It takes a few seconds to, I guess, serialize the object and then write it out. Could the fact that we are iterating over so many records, so quickly, that the serializer is not having enough time to write out to the file and then release the memory?
When I load my solution and compile it after first starting the IDE, everything works as expected. After changing source and recompiling, I get the following compile error:
Error 11 Unable to copy file "objDebugCAMDRS.Library.dll" to "binCAMDRS.Library.dll". The process cannot access the file 'binCAMDRS.Library.dll' because it is being used by another process. CAMDRS.Library.
After closing Visual Studio 2005 and reopening the solution I can compile again successfully. This is an old solution that has been fine for a long time. I just recently changed computers and reinstalled everything.I am running win XP Pro sp2, Visual Studio 2005 sp1.
My program writes to a .txt file (and this is the ONLY program that writes to it) in a thread (with lowest priority), but every now and then it gets an error "The process cannot access the file because another process has locked a portion of the file" when it executes this code: swLog.WriteLine(sPacket).Other program reads from the file, not write to it, why do I get this error, and how can I get around it, or what shall I do when I get this error since I can't write to the file ?
The process cannot access the file 'C:UsersdavidDesktopTest Folderdavid 2.xml' because it is being used by another process.
how do i end the prosess after I create the file? Or am I creating it in the wrong manner.The underlined line is where the error ocures.
Public Sub AddDTData(ByVal value1 As String, ByVal value2 As String, ByVal filename As String) dtUser.Rows.Add(value1, value2, Now.Date) If My.Computer.FileSystem.FileExists(filename) Then
I try to open a text file and write in some text, when i run the program it says the following error:The process cannot access the file 'D:VB projectsCategory_Characteristics.txt' because it is being used by another process.
THe code is as follows and the error hits in line :
Dim objWriter As New System.IO.StreamWriter(FILE_NAME) ----------------------------------------- Dim FILE_NAME As String = "D:VB projectsCategory_Characteristics.txt"