i want to use class Win32_DefragAnalysis(WMI) to scan status of other volume, but it is not active, exactly, the For-each is not work, please help me,
<pre lang="vb">Private Sub defrag_analysis()
On Error Resume Next
Set wmiOBJECT = GetObject("Winmgmts:\\.\root\cimv2")
nameSQL = "select * from Win32_DefragAnalysis" ' Where VolumeSize > 0 "
Set itemCOLLECTION = wmiOBJECT.ExecQuery(nameSQL)
For Each item In itemCOLLECTION
'not print properties of item
MsgBox "VolumeSize : " & item.VolumeSize
MsgBox "Name : " & item.VolumeName
MsgBox "FreeSpace :" & item.FreeSpace
MsgBox "AverageFileSize : " & item.AverageFileSize
In that case, you'll be writing a proxy server. When a client connects to the proxy for the first time, you record the current time. Every time the client makes another request, you check the current time against the one that was recorded on first connection. Greater than 30 seconds? Don't forward the request to the destination server.
For some reason, the 'instr' function and the 'string.indexof' is the same.
The problem is that one of the 2 string arguments, is a variable that is passed from the calling subroutine (not the literal characters) and it does not recognise the 'match'.
When I type in the literal characters with " " -- it works ok.
Here is a copy of the line that is not working.
'm' is the positional marker / 'largetxt' the body that is being searched and 'smalltxt' is the string that is being searched for.
intx = InStr(m, mainTxt, smallTxt)
The variable 'smallTxt' is the problem ---- if I have: intx = InStr(m, mainTxt, "house") --- it works ok
Also ... same thing for: intx = largeTxt.IndexOf(smallTxt, m)
PrivateSub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim maintext AsStringDim smalltext AsStringDim foundpos AsIntegerDim startpos AsInteger'startpos = 6 'should test not found
startpos = 0'should test matched
maintext = "Jack and Jill"
smalltext = "and"
foundpos = maintext.IndexOf(smalltext, startpos)
If foundpos > 0Then'found
MsgBox("match found at character " & foundpos)
MsgBox("no match found")
Thank you both .
It the 'indexof' function also not working .... it gives a true result may one time in 20 (when I know it is a true hit).
I think there may be a bug in vb.net. It doesn't matter what I do, it comes up with -1 all the time.
Did you try the code portion i added in my thread?
I tested it and it works fine...
obviously we can see the word AND is in the string JACK AND JILL.....
It makes me wonder what the ACTUAL strings are that you are comparing.
Maybe you could add them in a thread?
Its highly unlikely that the IndexOf method/function isnot working!
Its quite possible though that your installation of the development environment may have a corrupted file and possibly the next step would be to uninstall and re-install it again.
Still though, maybe you could save some time by adding your strings which your using in the comparision or even to upload the ACTUAL code block which is causing the offence?
Also, if your searching for a single character without specifying the number of consecutive characters to search, then the character must be in UNICODE, maybe that is of relavance?
Finally IndexOf is Zero based, so the FIRST character is position 0 then increases upwards, meaning it does not start with 1 but with zero.
Looking at the string "JACK AND JILL" and searching for a match of "AND" the code block I gave you states a match is found at charcter position 5, which taking it from a zero based index is ACTUALLY chracter 6 when starting from 1...
So maybe as a last resort you could subtract one from your start point (or start at zero anyway) and look for a match you KNOW exists in your string.
I have created a dll named myInterface.DLL that interfaces between my application and a 3rd party application. To do this I Added a reference to their Interop.3rdParty.dll and added an “Imports 3rdParty”. Everything works great. They released version 2 of the 3rd party app and added renamed their interops and name spaces. So What I am forced to do is create a new dll, myInterface_V2.DLL. This DLL is an exact copy of the myInterface.DLL with the exception of the what dll’s are referenced and the Imports directive changed to “Import CompanyName.3rdParty “ . Inside my DLL’s I have 3 forms and 2 Classes and as I stated above the only the only difference between my 2 dll’s is the “Imports” statement. So now my calling application checks to see what version of the 3rd party app the user has and calls the appropriate form in the appropriate DLL. So my question Without duplication the 3 forms and 2 classes is there a way to dynamically change the “Imports” statement, or can anyone suggest a way of doing this where I do not have so much duplicate code. I am hating the fact that every time I update the dll I have to duplicate it somewhere else. This is a vb.net dll and I am using VS2010 and a Windows 7 box.
I made 2 scripts under, the first for search all folders and subfolders (named "prive") in my R: Drive and the second for search security groups(begin by FR_DEPT ou LTGFR) on a folder.
I want to concatenate scripts for each "prive" folder, it could search if groups are affected.
Can you help me please?
Thanks in advance
'------------------------------------- 1er script
Dim Myfso, result
Set Myfso = CreateObject("Scripting.FileSystemObject")
path_start = "R:"
subfolder = "prive"
result = Find(path_start, subfolder)
Function Find (strPath, strFileName)
Dim MyDir, MyFile, MySubDir
If strFileName = Empty Then Exit Function
strFileName = Ucase(strFileName)
Set MyDir = Myfso.GetFolder(strPath)
For Each MyFile In MyDir.subFolders
If Ucase(MyFile.Name) = strFileName Then strResult = strResult & strPath & "\" & MyFile.Name & vbCrLf
For Each MySubDir In MyDir.SubFolders
strResult = strResult & Find(strPath & "\" & MySubDir.Name, strFileName)
Find = strResult
'---------------------------------- 2eme script
strFolderName = "Le dossier prive de mon 1er script"
Const INPUT1_FILE_NAME = "c:\test1.txt"
Const OVER_WRITE_EXISTING = True
Set WshShell = WScript.CreateObject("WScript.Shell")
Dim fso, f
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.OpenTextFile(INPUT1_FILE_NAME, FOR_APPEND,true)
Set objWMIService = GetObject("winmgmts:")
Set objFolderSecuritySettings = _
objWMIService.Get("Win32_LogicalFileSecuritySetting='" & strFolderName & "'")
intRetVal = objFolderSecuritySettings.GetSecurityDescriptor(objSD)
intControlFlags = objSD.ControlFlags
arrACEs = objSD.DACL
For Each objACE in arrACEs
if Left(objACE.Trustee.Name,7) = "FR_DEPT" then
f.write(strFolderName & " ")
f.write(objACE.Trustee.Domain & "\" & objACE.Trustee.Name + VbCrLf)