|
Yep and it works perfectly. You should post some of your code so we can see what you're doing right/wrong. Also, any error messages that you get should be included.
All you have to do to use it is copy the .dll to the system32 folder and put this code in a module or at the top of a form class:
Public Declare Function Inp Lib "inpout32.dll" Alias "Inp32" (ByVal PortAddress As Integer) As Integer
Public Declare Sub Out Lib "inpout32.dll" Alias "Out32" (ByVal PortAddress As Integer, ByVal Value As Integer)
Now, to use the functions:
Dim inFromPort As Long
Dim outToPort As Long
inFromPort = Inp(&H3F8) ' Or whatever port your trying to use.
Out &H3F8, outToPort ' Or whatever port and value your try to output.
RageInTheMachine9532
|
|
|
|
|
Hi,
Thank you very much for the help. I really appreciate.
By the way, is it possible to create a 3 seconds delay in VB ?
Do I need a special DLL for such thing ?
Thank you,
Aldrin,
|
|
|
|
|
Sure! The .DLL you need is already part of Windows so, no, you don't need a special one...
Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Then just do this in your code where you need it to pause:
Sleep( 3000 ) ' 3 second delay...
RageInTheMachine9532
|
|
|
|
|
Hi,
Thank you very much, everything is working fine !
thanks to you,
Best regards,
Aldrin,
|
|
|
|
|
Set WshShell = Wscript.CreateObject("Wscript.Shell")
Pingtest = null
pCName = InputBox ("User I Number","Users I number","Btest")
drivelist = "A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z"
drivearray=Split(drivelist,",")
For I = 0 To UBound(drivearray)
pingtest = WshShell.Run ("cmd /c ping -n 1 "& pCName&Drivearray(I) , 6, True)
if pingtest = 0 Then
S = S & pCName&Drivearray(I) &VBLFCR
Else
End If
Next
MsgBox S
|
|
|
|
|
Ummm... You'll have to explain what you're trying to do a bit more that this.
From your code sample, your sending out 26 pings to 26 different names, all in their own command shells. They will all, of course, return success because the command you launched WILL launch, but the method your using will NOT return any kind of return code from PING itself.
RageInTheMachine9532
|
|
|
|
|
Dave,
Sorry for the confusion...here is what I am trying to do. I need a message box to popup for the actual computer names that I successfully ping, Would you like to continue" Yes or No (vbyesno).
You see the computer names in our environment should be named in succession a, b, c, d, and so on. (For example Britesta, Britestb, britestc.) However, some users on our network do not follow the naming conventions that we have used an name them out of order. (For example billtesta, billtestx, billtestz)
|
|
|
|
|
Sounds like a wacked naming scheme. Completely unenforcable without the special "policing" that your trying to do. Why the naming scheme in the first place and why rely on the users to name their own machines? That's expecting alot from a user...
Pinging names is not a reliable method to determine if a machine exists with that name or not. It can be broken simply by a machine being turned off or rebooting at the time the ping rolls around to it.
RageInTheMachine9532
|
|
|
|
|
Agreed! I did not implement this naming convention nor do I condone it. With the existing code how can I have a message box saying..."Ping successful would you like to continue" Yes or No. I am still sort of new at writing vbscripts, and new some assistance on this one. Thanks!
|
|
|
|
|
Well, you could put up a message box for every machine that comes back , but you would probably be better off just outputting a line for each result that comes back. That way, you can just walk away, let it do it's thing, and come back and look at the result:
Dim WshShell, PingResult, Target, PCName
Set WshShell = Wscript.CreateObject("Wscript.Shell")
PCName = InputBox ("User I Number","Users I number","Btest")
drivelist = "A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z"
DriveArray=Split(drivelist,",")
For I = 0 To UBound(DriveArray)
Target = PCName & DriveArray(I)
PingResult = WshShell.Run ("cmd /c ping -n 1 " & Target , 6, True)
Select Case PingResult
Case 0:
WScript.Echo "SUCCESS - " & Target
Case 1:
WScript.Echo "FAILURE - " & Target & "<<<"
End Select
Next
Run this using CSCRIPT from a CMD prompt. If you run this using WSCRIPT, the normal default, you'll get a dialog box on every ping, success or fail. But, this also makes it harder to terminate the script. You'll have to go into TaskManager to do it. Running it under CSCRIPT is just WAY more convenient:
C:\Documents and Settings\[userid]\Desktop>CSCRIPT PINGTEST.VBS
RageInTheMachine9532
|
|
|
|
|
Cool...Thanks for the Success Failure ping code! One last thing...Do you know how to use the answer function for the example below? I want to be able to continue or quit the wscript if possible. How would you code this?
Dim WshShell, PingResult, Target, PCName
Set WshShell = Wscript.CreateObject("Wscript.Shell")
PCName = InputBox ("User I Number","Users I number","BTest")
drivelist = "A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z"
DriveArray=Split(drivelist,",")
For I = 0 To UBound(DriveArray)
Target = PCName & DriveArray(I)
PingResult = WshShell.Run ("cmd /c ping -n 1 " & Target , 6, True)
Select Case PingResult
Case 0: WScript.Echo "SUCCESS - " & Target
MsgBox "Do you want to continue?", vbYesNo
End Select
Next
|
|
|
|
|
B Yac wrote:
Select Case PingResult
Case 0: WScript.Echo "SUCCESS - " & Target
MsgBox "Do you want to continue?", vbYesNo
End Select
The code should be:
.
.
.
For I = 0 To UBound(DriveArray)
Target = PCName & DriveArray(I)
PingResult = WshShell.Run ("cmd /c ping -n 1 " & Target , 6, True)
Select Case PingResult
Case 0: WScript.Echo "SUCCESS - " & Target
mbResult = MsgBox("Do you want to continue?", vbQuestion + vbYesNo)
If mbResult = vbNo Then
Exit For
End If
End Select
Next
RageInTheMachine9532
|
|
|
|
|
Greeetings,
I am attempting in VB.NET to somehow capture the network packet IIS gets before it checks for HTTP headers...
i.e. I wish to use IIS as my socket server(not create my own) and want the network packets it gets at port 80 regardless if it is an http or not.
How may I accomplish this in VB.NET ?
Thanks in advance.
incoming71
|
|
|
|
|
Check into ISAPI Filters. Warning: You'll have to P/Invoke a bunch of API calls to do this and the .NET FCL does not have anything to make this easy.
RageInTheMachine9532
|
|
|
|
|
hiiiii
i m developing an application in which i m picking pixel colors from an image and display these colors in a list box with the help of loop. can any body give me code.its urgent plz.
tc
regarfds
Tahir
|
|
|
|
|
You can use SetPixel and GetPixel its a win32 API
<br />
Public Declare Function SetPixel Lib "gdi32" Alias "SetPixel" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal crColor As Long) As Long<br />
<br />
Public Declare Function GetPixel Lib "gdi32" Alias "GetPixel" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long) As Long<br />
|
|
|
|
|
hiiiii
i m developing an application in which i have to create control "shape" dynamically in a loop against a button click event. can anybody give me code .its urgent plz
regards
Tahir
|
|
|
|
|
Hi there,
does anybody know if the .net framework has an utility to convert modules/classes from c# to vb.net and the other way?
i guess i read something like this somewhere, but i can't remember!
thank in advance!
Fuel2Run
|
|
|
|
|
No it doesn't. That's why there is this proliferation of translators on the 'Net.
See this Yahoo[^] search result.
RageInTheMachine9532
|
|
|
|
|
i'll take a look
thanks a lot!
cheers,
Fuel2Run
|
|
|
|
|
I want to run DOS commands thru a VB app?
I know that I can use Shell, but is there a better way?
/Jarek
|
|
|
|
|
VB6 or VB.NET???
VB6, use Shell...
VB.NET, use Shell or the Process class:
Dim startInfo As New ProcessStartInfo("IExplore.exe")
startInfo.WindowStyle = ProcessWindowStyle.Minimized
startInfo.Arguments = "www.northwindtraders.com"
Process.Start(startInfo)
RageInTheMachine9532
|
|
|
|
|
Its in VB6, I can't get it to work properly?
this is my test code, this code actualy openes upp 3 cmd's and show the dir in the last one?
I only want one cmd and be able to run different commands in it!
There is a second problem cmd only works in W2K, NT and XP but not in WIN95-98, there got to be a way to run commands?
<br />
Shell "cmd", 1 <br />
SendKeys "dir c:\ *.txt" + Chr(13), True<br />
|
|
|
|
|
Where to start...
OK. There are 2 command prompt shells in WinNT and above, CMD and COMMAND. 95/98 only has COMMAND.
Now, what you want to do by stuffing the keystrokes using SendKeys is problematic at best. This is because there is no facility to make sure that, when you start the command shell, that window retains the input focus. Another window can steal the focus or the user can click in a different window. On top of that, what if the user accidentally types something in the command window your launched?
I would HIGHLY recommend looking into the Win32 Console API's, especially if you want to keep reusing the same command windows. This way, you don't have to worry about Windows versioning problems either. The docs for the Console start here[^]. A word of warning though, the documentation is written for C++ and not VB.
RageInTheMachine9532
|
|
|
|
|
Thank you!
I am a C++ programmer I know the console API.
In STL C++ you can use system function but not in VB
It amazes me that there is no other way to run console commands in VB?
/Jarek
As far as the laws of mathematics refer to reality, they are not certain; and as far as they are certain, they do not refer to reality.
Albert Einstein
|
|
|
|
|