|
Thank you, Bernhard - that's indeed a very good point to look at. Unfortunately, right now I can't look up which overload was used in the sample... most probably I deleted it after having the code run for demonstration of its methods. But I'm going to check your hint later today.
|
|
|
|
|
Now, thanks to the insights of my helpers, I could make it clearer. I only checked the top-level number of files using
Directory.GetFiles(pfad, "*.*", SearchOption.TopDirectoryOnly))
Here's what I found:
• there's no redirection to "SysWOW64" once "System32" is specified as path. I can get the files of both, once set as path.
• the result 2560 was correct, but I could only verify this number after setting the system files (etc) to visible in the folder options!
• i.e. the GetFiles method counts hidden files as well (which it is supposed to do)
So in the end my question arose out of not considering that, in the Windows directory and it's subdirectories, many files are hidden and/or system files. The GetFiles method was completely ok, only my verification wasn't.
Thank you
Mick
|
|
|
|
|
Hi all,
I feel pretty much lost, despite (or because of?) of reading tons of material about delegates already. Maybe someone could help me understand a bit more and give me some hints?
I have
a) an MDI Form which serves as a plugin host (implements IPluginHost from b)
b) a plugin interface (defining "IPlugin" with an event named UIUpdate, "IPluginHost" and a delegate "UIUpdateDelegate")
c) a plugin (referencing IPlugin)
The plugin class holds a custom control, which works on a long lasting task in a separate thread. The custom control is not only supposed to report the progress of this task to it's own UI (which works), but to the MDI forms Interface as well. If ok, I want to see the progress bar counting up in both of the forms.
In a sample I saw that the plugins long lasting tasks method contained
DirectCast(Me.MdiParent, FrmMain).OnUpdateMe("Loading " & i.ToString, i) <----- not working
Me.OnUpdate("Loading " & i.ToString, i) <----- working
to report the progress to both UIs. This doesn't seem to work with the plugin pattern: The type "FrmMain", having an additional "onUpdateMe" Method, is unknown to the compiler, but replacing it with standard "Form" type doesn't work since this doesn't have the "onUpdateMe" Method. Considering it's a plugin, it would anyway make much more sense to learn how to address the MDI parent form without knowing its type, if that's possible.
Before I have to run around in circles for another few days, please help me out of this trap...
Thank you in advance
Mick
|
|
|
|
|
Hi,
I need to delete the folder C:\Windows\System32\Macromed using vbscript but I consistently get access denied no matter how my code is written. I have used an admin prompt to run the script and used psexec to get System rights but get the same access denied result.
•File Explorer - Can't delete manually without responding to request for elevated privileges. I don't want to click the Continue button because that is likely not the configuration for 99.9% of the clients that I will deploy against.
•User CMD - cannot delete folder with RD using command window
•Admin CMD - script cannot delete the folder
•System CMD (psexec) - script cannot delete the folder.
•Trying to shell out to run RD won't work either.
I thought that this could be due to files existing in subfolders but I get access denied when trying to delete just the files to empty the folder. This folder is created when Flash Player is installed but in this case, Flash Player is removed but the folder is left behind. I think it's unlikely that any of the files (4) involved are in use.
Inspecting the security settings shows me that the folder owner is System with full control and Trusted Installer also has full control. System gets an access denied message when it tries to delete the folder even though System is the owner.
How can I change the folder security so it will allow the script to delete the folder? I am using basic code seen in just about any example given for fso.DeleteFolder. I have seen a few forums that recommend using icacls.exe. I haven't tried that one yet but intend to.
Thanks,
Rob
modified 21-Apr-16 16:45pm.
|
|
|
|
|
The account the the code is running under either doesn't have permissions or the files inside the folder are in use by some running instance of Flash or a plugin in currently running browser. Those are the circumstances you get "Access Denied" under.
|
|
|
|
|
Do you want to delete the folder in any possible way or only with VBScript?
I had the problem that I couldn't delete a big bunch of older windows installation files and, with the help of a real 'guru', found a working solution using shell commands - it was the only working solution I found in many months. It was a matter of broken permissions. To fix really broken permissions, the best is to run these two commands one after the other (Admin Shell):
takeown /f "C:\path\to\folder" /r
icacls "C:\path\to\folder" /reset /T
The first one will give you ownership of all the files, however that might not be enough, for example if all the files have the read/write/exec permissions set to "deny". You own the files but still cannot do anything with them. In that case (which I had) run the second command, which will fix the broken permissions.
I don't know if it would work to call these functions from VBScript, maybe it's worth a try. I'm using Win7, but for Win8.1 it should work the same.
Regards
Mick
|
|
|
|
|
Dear Friends
i have no knowladge on networking so i really dont know how to get this work. it seams like group of classes and how can i intigrate it with my forms to try it ? pleas help me out i need it so badly . can any one show me how to get it working ?!
if you could build it in vb and share it with me as a zip file i would be thankful.
there are the offical examples
1. Client : Example
2. Server : Example
Thanks In Advance
|
|
|
|
|
You know those code samples come in both C# AND VB.NET, right?
All you do is click on the VB tab at the top of the code sample.
|
|
|
|
|
Dear Friend
after pasting the code in my form where should i read incoming signals and how to initiate the connection ???
all these thing i dont know how to do them.
|
|
|
|
|
Those examples are written into Console applications, not Windows Forms apps.
You better do it in Console applications first and learn how the code works before you try to adapt the code to work in Windows Forms.
|
|
|
|
|
I have form1 and there is two flags ("Yes" and "No").when i select "Yes" and click on save button.It will open another form2.Once save form2 it will save form1 automatically.But it is giving error "conversion from string to type integer is not valid".please note that when i select "NO" it is not giving any error.please see my below code.
1)code for form1 save
Public Sub frmElogsheet_SAVE()
btneditelog.Enabled = False
btndelelog.Enabled = False
Dim conn As New SqlConnection
Dim cmd As New SqlCommand
' Dim dr As SqDataReader
conn = GetConnect()
conn.Open()
cmd.Connection = conn
Try
Dim code1 As Integer
Dim code2, code4, code5, code6, code7, code13 As String
Dim code8, code9 As Integer
Dim code3, code10, code11, code12 As Date
code1 = txtallocateelog.Text.ToString
code2 = txtvehicleElog.Text.ToString
code3 = txtRequestdateElog.Text.ToString
code4 = txtDestElog.Text.ToString
code5 = txtdeptElog.Text.ToString
code6 = txttravellerElog.Text.ToString
code7 = txtdvr2.Text.ToString
code8 = txtkmreaddept.Text.ToString
code9 = txtkmarr.Text.ToString
code10 = dtpdepttime.Text.ToString
code11 = dtparr.Text.ToString
code12 = dtpovertime.Text.ToString
code13 = Combacci.Text
'g900 = code2 'it will pass value to accident form
cmd.CommandText = "insert into tbElogsheet(Allocate_id,Number_plate,Depart_date,Destination,Department,Traveller,NAME,km_read_dept,km_read_arr,Departure_time,Arrival_time,Over_time,Accident) VALUES (" & code1 & ",'" & code2 & "','" & code3 & "','" & code4 & "','" & code5 & "','" & code6 & "','" & code7 & "'," & code8 & "," & code9 & ",'" & code10 & "','" & code11 & "','" & code12 & "','" & code13 & "')"
cmd.ExecuteNonQuery()
MsgBox("ELOGSHEET Added Sucessfully")
'frmElogsheet_clear() 'clear elogsheet items after saving
'txtkmreaddept.Text = g101
Catch ex As Exception
MsgBox(ex.Message)
End Try
'conn.Close()
End Sub
2)
Private Sub btnsaveElogsheet_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Try
g900 = txtvehicleElog.Text.ToString
G901 = txtRequestdateElog.Text.ToString
G902 = txtdvr2.Text.ToString
Dim t13 As String
t13 = Combacci.Text.ToString
If t13 = ("Yes") Then
Dim frmeAccident As New frmeAccident 'Dim f1 As New frmeAccident()
frmeAccident.Show()
'Dim f1 As New frmeAccident()
Else
frmElogsheet_SAVE()
frmElogsheet_clear() 'clear elogsheet items after saving
End If
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
3)Save for form2
Private Sub btnsaveacc_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnsaveacc.Click
Dim conn As New SqlConnection
Dim cmd As New SqlCommand
' Dim dr As SqDataReader
conn = GetConnect()
conn.Open()
cmd.Connection = conn
Try
'frmElogsheet.frmElogsheet_SAVE() 'CALL procedure frmElogsheet_SAVE() from frmElogsheet
Dim t2, t3, t4, t5, t6, t7, t8, t9 As String
Dim t1 As Integer
t1 = txtaccident.Text
t2 = txtaccplate.Text
t3 = txtdriver.Text
t4 = dtpeaccdept.Text
t5 = Cmbpolice.Text
t6 = txtlocacc.Text
t7 = txtamnt.Text
t8 = txtdesc.Text
t9 = Combacctype.Text
cmd.CommandText = "insert into tbeAccident values(" & t1 & ",'" & t2 & "','" & t3 & "','" & t4 & "','" & t5 & "','" & t6 & "'," & t7 & ",'" & t8 & "','" & t9 & "')"
cmd.ExecuteNonQuery()
MsgBox("Data Added Sucessfully")
'CODE CHANGES START
'cmd.CommandText = "Select * from tbDept_proj"
'Dim Adpt As New SqlDataAdapter(cmd.CommandText, conn)
'Dim ds As New DataSet()
'Adpt.Fill(ds, "tbDept_proj")
'grdviewdept.DataSource = ds.Tables("tbDept_proj")
'CODE CHANGES END
'frmeAccident_clear()
'close form start
'Dim frmeAccident As New frmeAccident
'frmeAccident.Close()
'Close()
'close form end
frmElogsheet.frmElogsheet_SAVE() 'CALL procedure frmElogsheet_SAVE() from frmElogsheet
Close()
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
please help on this article urgently.
|
|
|
|
|
And you think we are going to look through that unformatted code dump to try and figure out (or guess) where this error occurs?
|
|
|
|
|
Dim code1 As Integer
code1 = txtallocateelog.Text.ToString
You declare code1 as an Integer but then you attempt to assign a String . The same goes for a bunch of other variables there which you have declared as Integer or DateTime . Take a look at Int32.TryParse Method (String, Int32) (System)[^] and DateTime.TryParse Method (String, DateTime) (System)[^] to solve this issue (other primitive types have equivalent .TryParse(..) -methods).
Apart from that: Calling .ToString() on a property of type String is redundant:
code2 = txtvehicleElog.Text.ToString
If the brain were so simple we could understand it, we would be so simple we couldn't. — Lyall Watson
modified 20-Apr-16 8:40am.
|
|
|
|
|
Don't concatenate strings to form your database queries - use Parameterised queries.
For example:
cmd.CommandText =
"insert into tbElogsheet(Allocate_id,Number_plate,Depart_date,Destination,Department,Traveller,NAME,km_read_dept,km_read_arr,Departure_time,Arrival_time,Over_time,Accident) VALUES (@code1,@code2,@code3,@code4,@code5,@code6,@code7,@code8,@code9,@code10,@code11,@code12,@code13)"
cmd.Parameters.AddWithValue("@code1", code1)
cmd.Parameters.AddWithValue("@code2", code2)
cmd.Parameters.AddWithValue("@code3", code3)
cmd.Parameters.AddWithValue("@code4", code4)
cmd.Parameters.AddWithValue("@code5", code5)
cmd.Parameters.AddWithValue("@code6", code6)
cmd.Parameters.AddWithValue("@code7", code7)
cmd.Parameters.AddWithValue("@code8", code8)
cmd.Parameters.AddWithValue("@code9", code9)
cmd.Parameters.AddWithValue("@code10", code10)
cmd.Parameters.AddWithValue("@code11", code11)
cmd.Parameters.AddWithValue("@code12", code12)
cmd.Parameters.AddWithValue("@code12", code13)
cmd.ExecuteNonQuery()
This might well cure your problem.
If it does not then use the Debugger to determine which line is causing the problem and let us know.
|
|
|
|
|
Hi chill,
i am getting same error after modified.
Public Sub frmElogsheet_SAVE()
btneditelog.Enabled = False
btndelelog.Enabled = False
Dim conn As New SqlConnection
Dim cmd As New SqlCommand
' Dim dr As SqDataReader
conn = GetConnect()
conn.Open()
cmd.Connection = conn
Try
Dim code1 As Integer
Dim code2, code4, code5, code6, code7, code13 As String
Dim code8, code9 As Integer
Dim code3, code10, code11, code12 As String 'date
code1 = txtallocateelog.Text
code2 = txtvehicleElog.Text
code3 = txtRequestdateElog.Text
code4 = txtDestElog.Text
code5 = txtdeptElog.Text
code6 = txttravellerElog.Text
code7 = txtdvr2.Text
code8 = txtkmreaddept.Text
code9 = txtkmarr.Text
code10 = dtpdepttime.Text
code11 = dtparr.Text
code12 = dtpovertime.Text
code13 = Combacci.Text
'g900 = code2 'it will pass value to accident form
'cmd.CommandText = "insert into tbElogsheet(Allocate_id,Number_plate,Depart_date,Destination,Department,Traveller,NAME,km_read_dept,km_read_arr,Departure_time,Arrival_time,Over_time,Accident) VALUES (" & code1 & ",'" & code2 & "','" & code3 & "','" & code4 & "','" & code5 & "','" & code6 & "','" & code7 & "'," & code8 & "," & code9 & ",'" & code10 & "','" & code11 & "','" & code12 & "','" & code13 & "')"
'cmd.ExecuteNonQuery()
cmd.CommandText ="insert into tbElogsheet(Allocate_id,Number_plate,Depart_date,Destination,Department,Traveller,NAME,km_read_dept,km_read_arr,Departure_time,Arrival_time,Over_time,Accident) VALUES (@code1,@code2,@code3,@code4,@code5,@code6,@code7,@code8,@code9,@code10,@code11,@code12,@code13)"
cmd.Parameters.AddWithValue("@code1", code1)
cmd.Parameters.AddWithValue("@code2", code2)
cmd.Parameters.AddWithValue("@code3", code3)
cmd.Parameters.AddWithValue("@code4", code4)
cmd.Parameters.AddWithValue("@code5", code5)
cmd.Parameters.AddWithValue("@code6", code6)
cmd.Parameters.AddWithValue("@code7", code7)
cmd.Parameters.AddWithValue("@code8", code8)
cmd.Parameters.AddWithValue("@code9", code9)
cmd.Parameters.AddWithValue("@code10", code10)
cmd.Parameters.AddWithValue("@code11", code11)
cmd.Parameters.AddWithValue("@code12", code12)
cmd.Parameters.AddWithValue("@code13", code13)
cmd.ExecuteNonQuery()
MsgBox("ELOGSHEET Added Sucessfully")
'frmElogsheet_clear() 'clear elogsheet items after saving
'txtkmreaddept.Text = g101
Catch ex As Exception
MsgBox(ex.Message)
End Try
'conn.Close()
End Sub
|
|
|
|
|
|
See the replies from Sacha and Richard. Fix the line
code1 = txtallocateelog.Text and also the lines for Code and Code.
Alternatively use the text box values for the cmd.Parameter values and you should not have to do any parsing or converting
|
|
|
|
|
Hi Team,
Now issue resoved.Thanks for your valauable support.
Regards
kishore
|
|
|
|
|
I'm not one to hate on VB6, but today's gonna be an exception. Also I want this message to be on the internet so the next poor swine who gets this message might be lucky enough to see this post.
I recently added some functionality to an OCX in our legacy VB6 system. The OCX compiled without errors, but any program that used it could no longer load it. When I tried to reference it in a new project, I got the error "File not found: 'C:\Users\???\AppData\Local\Temp\VBB685.tmp'".
About a week of tearing my hair out followed. I'd just upgraded to windows 10, I'm still not sure if that's relevant.
The thing is, I added a property. Removing it fixed the bug. Adding ANY property broke it again. Eventually I broke compatibility, made two functions which were Public but could/should have been Private .. um, Private, and added my property again. Now it's all good.
I can only assume there's some sort of really small limit on the number of exposed properties of a VB6 OCX. If this is/was common knowledge, well then what the hell google :p
|
|
|
|
|
There is no limit on the number of properties. I would guess, however, that it had something to do with your compatibility setting in the project. I'm not going to try and guess what because it's been about 15 years since I last touched VB6. Yay me!
|
|
|
|
|
By adding a property you broke the "contract" between the OCX and it's clients. Forcing the break compatibility is the only way (AFAIK) to get around it without supplying another interface. You will probably also have to rebuild any project that uses the OCX
|
|
|
|
|
Hi,
I need the minimum margin in vba excel or word.
I know how to set it in vba and in dot net. But I can't find the minimum in vba.
I guess I will need some API but if I find something usefull I must know the hdc and that I also can't find that. in vb6 there was printer.hdc but not in vba.
Who can help me?
Jan
|
|
|
|
|
Minimum margins are dependent on the print device that you are sending the output to. I would guess you need to look at printer properties.
|
|
|
|
|
Hi,
I know but I have looked and can't find it.
Our old printers have lesser margings that the new. now we have AGAIN different margings so I want to use the printer minimum possible margin and >.5cm so when I can read them a simple if then, structure will help me. but now I can't read it.
remember it's in VBA
Jan
|
|
|
|
|
Sorry, I am not a VBA expert, and this forum is mostly for VB/VB.NET questions.
|
|
|
|
|