|
Thanks Dave for that piece of advice. That looks like my only option at this point.
Now I just have to figure out the logistics of what needs to be done. Thanks again.
|
|
|
|
|
Hi every one I am New using VB and also new in this Web site I created and VB Application the Read, add, and delete Printers records from an Access database. But the Application don't know when the Printer is Online or Offline I have to manually update that. I want that the be automatically and this is what I have so far but is not saving it...Please help me
Private Sub SplashForm_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
PFCdbconnection = New OleDbConnection("Provider=microsoft.jet.oledb.4.0; data source =F:\Device Files\MFC\Common\Shared\Printer Control\PFC.mdb;jet OLEDB:Database Password=password;")
PFCdbconnection.Open()
printerscommand(0) = New OleDbCommand("SELECT Printer,IPAddress,OffLine,Online FROM PrinterInfo ORDER by ID", PFCdbconnection)
printersAdapter(0) = New OleDbDataAdapter()
printersAdapter(0).SelectCommand = printerscommand(0)
PrintersTable(0) = New DataTable
printersAdapter(0).Fill(PrintersTable(0))
PrintersManager(0) = DirectCast(Me.BindingContext(PrintersTable(0)), CurrencyManager)
Dim MaxRow As Integer
MaxRow = PrintersTable(0).Rows.Count
Dim RPosition As Integer = 0
Do Until RPosition = MaxRow
PrintersTable(0).DefaultView.Sort = "Printer"
PrintersManager(0).Position = RPosition
PrinterIPTextBox.DataBindings.Add("Text", PrintersTable(0), "printer")
If My.Computer.Network.Ping(PrinterIPTextBox.Text) Then
OnlineRadioButton.Checked = True
Else
OfflineRadioButton.Checked = True
End If
PrintersManager(0).EndCurrentEdit()
Dim CurrentInfoData As DataRow = PrintersTable(0).Rows(PrintersTable(0).Rows.Count - 1)
If RPosition = -1 Then
CurrentInfoData.Item("Online") = OnlineRadioButton.Checked
CurrentInfoData.Item("offline") = OfflineRadioButton.Checked
Dim PrinterInfoCom As New OleDbCommandBuilder(printersAdapter(0))
printersAdapter(0).Update(PrintersTable(0))
End If
PrinterIPTextBox.DataBindings.Clear()
RPosition = RPosition + 1
Loop
End Sub
modified 20-Oct-11 11:04am.
|
|
|
|
|
I would move the printer status to a background worker that monitors for a changing status e.g. going offline/online etc. then message this to the rest of the application.
That way you could set it off running at the start and forget about it, and only concern yourself with a state change.
Also ping is not a reliable method of determining the printers availability. The network interface could still happily respond to ping events, but the main printer is in fact dead.
You would be better to read the printer status directly using WMI.
|
|
|
|
|
Thanks DaveAuld
But How can I read the printer status directly using WMI that is New to me.
|
|
|
|
|
|
Hello everyone!
I'm trying to write a small application that will show the GPU temperature.
I'v found the following documentation about the subject:
http://developer.download.nvidia.com...lPanel_API.pdf
according to this documentation, I can use the nvcpl.dll file (which is a part of the NVIDIA driver) like this:
Function
Prototype
BOOL CDECL NvCplGetThermalSettings
(IN UINT nWindowsMonitorNumber,
OUT DWORD* pdwCoreTemp,
OUT DWORD* pdwAmbientTemp,
OUT DWORD* pdwUpperLimit);
Parameters In UINT nWindowsMonitorNumber -- The display number shown on
the Windows Display Properties->Settings page.
A value of 0 indicates the current primary Windows display device.
DWORD* must be a valid pointer --
pdwCoreTemp -- GPU temperature in degrees Celsius.
pdwAmbientTemp -- Ambient temperature in degrees Celsius.
pdwUpperLimit -- Upper limit of the GPU temperature specification.
Return Values True on success.
False on failure.
Now i wrote this code in VB.NET:
<DllImport("nvcpl.dll", CallingConvention:=CallingConvention.Cdecl)>
Private Shared Function NvCplGetThermalSettings(ByVal nWindowsMonitorNumber As ULong, ByRef pdwCoreTemp As UInt32, ByRef pdwAmbientTemp As UInt32, ByRef pdwUpperLimit As UInt32) As Boolean
End Function
Public Function Temperature(ByVal monitornumber As Long) As UInt32
Dim core As UInt32
Dim ambient As UInt32
Dim upperlimit As UInt32
If NvCplGetThermalSettings(monitornumber, core, ambient, upperlimit) Then
Return core
Else
Return 0
End If
End Function
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
MessageBox.Show(Temperature(0))
End Sub
Now the problem is that this code keeps sending back 0, which means somethin is wrong here and the function is not working. It's been two days now and i still can't figure it out :S
I'd really appreciate any help.. thanks alot!
|
|
|
|
|
Instead of using Long for data types, use Integer. Long is a 64-bit integer whereas the C function header is specifying an unsigned int (unsigned 32-bit integer). In this case, it really doesn't matter if you use UInt32 or Integer.
|
|
|
|
|
you mean that nWindowsMonitorNumber argument? I'v already tried using Integer and UInteger but still it doesn't help, I keep getting 0... :S
|
|
|
|
|
Have you tried:
If Not NvCplGetThermalSettings(monitornumber, core, ambient, upperlimit) Then
Debug the code step-by-step and watch all the values to see what you're getting.
|
|
|
|
|
don't worry too much about signed/unsigned integers, the one thing that matters is their size, and you got that right.
My best guess is: you are calling the function all right, and it fails, i.e. it returns false, probably (some googling suggests so) because you are running on Vista or higher, and giving you a temperature value is considered a risky thing to do.
|
|
|
|
|
I think your right. But what should i do ? does this mean i cannot have the GPU temperature with VB.NET? :S (
|
|
|
|
|
Member 8078870 wrote: I think your right.
I don't know, you still haven't told what OS you have.
Member 8078870 wrote: what should i do ?
google. Maybe it is possible, I don't know.
Member 8078870 wrote: does this mean i cannot ... with VB.NET?
if you can't get it without VB.NET, you can't with VB.NET either.
if you can with C or C++, then through P/Invoke you can also get it in a managed language such as VB.NET
|
|
|
|
|
I have windows 7 64bit.
with C/C++ it can be done and i'v seen it working, but i want to achieve this with VB.NET, that's the goal. google didn't help believe me i'v read evey possible related thread to this subject, and still found no answer.
|
|
|
|
|
Member 8078870 wrote: with C/C++ it can be done and i'v seen it working
on Vista or higher (without disabling UAC)? Then try and get that source code, and call the same function(s) from VB.NET
FWIW: Are your OS and your nvcpl.dll file the same as on the system that works?
|
|
|
|
|
actually i just checked again, it was a PureBasic code :S i didn't know this existed till now. I downloaded the code and checked it on my system (windows 7) and it gave perfect results.
The program uses different files, it use nvapi.lib and there is a different documentation for this library on how to access it and use it, but i dunno how i can use it with VB.NET. I don't think it's possible.
here is the program:
http://www.purebasic.fr/english/viewtopic.php?f=12&t=41747[^]
|
|
|
|
|
As I said before, language isn't a barrier.
If that app uses a LIB file, there must be a DLL file as well. My Vista/32 system has an nvapi.dll file in its Windows\system32 folder. My Win7/64 system doesn't, as it doesn't have NVidia hardware.
If you have a DLL that holds the functionality implemented in native code, and the system authorizes you to do whatever it is the function does, then you can call it, from the language of your choice. For managed languages such as C# and VB.NET, that would mean one or more P/Invoke calls, DllImport attributes, and the lot. It is quite doable, your link should provide the necessary inspiration.
One issue that is likely to surface is 32-bit vs 64-bit. I suggest you try and build your managed code app as a 32-bit app (i.e. targetting "x86", not "x64" or "AnyCPU"). First check if and where nvapi.dll is present, it should be in either windows\system32 (which holds 32-bit code on Win32, and 64-bit code on Win64!!!) or windows\sysWOW64 (which holds 32-bit code only). Note: you cannot combine 32-bit and 64-bit code in a single process.
|
|
|
|
|
IIS 7 Recycle Schedule Settings via WMI
Hi folks,
Im sitting here with a tricky VBScript question, specifically a need to set a IIS7 App Pool recycle schedule via VMI.
Currently this is in place - letting me set a specific time interval for an IIS7 App Pool, but this is not our strategy going forward, so i must enable a specific time of day where we recycle the Pool.
Set objPeriodicRestart = objWMIService.Get("PeriodicRestartSettings").SpawnInstance_
objPeriodicRestart.PrivateMemory = iMemory
'objPeriodicRestart.Schedule =
objPeriodicRestart.Time = ConvertSecondsToWMIDateTimeValue(iRecycleWorkerProcesses)
'*** Set Application Pool Recycling settings
Set objRecycling = objWMIService.Get("RecyclingSettings").SpawnInstance_
'objRecycling.DisallowOverlappingRotation = Null
'objRecycling.DisallowRotationOnConfigChange = Null
'objRecycling.LogEventOnRecycle = Null
objRecycling.PeriodicRestart = objPeriodicRestart
etc. etc.
This works perfectly for a time interval, but as you can see the "Schedule" is outcommented. I've tried to set the schedule with the IIS6 approach which accepts an array of strings defining the times of day to recycle. But with NO luck.
Can any of you define what code is needed (objects, classes) to define a schedule that the IIS7 WMI accepts.
Really hope to find some help here.
Best regards,
//EoniX
|
|
|
|
|
With VB2008 I am able to create a new Excel sheet as the following:
Dim conn2 As New OleDbConnection()
conn2.ConnectionString = m_sExcelConnection
conn2.Open()
Dim cmd As New OleDbCommand()
cmd.Connection = conn2
cmd.CommandText = "CREATE TABLE Detail (Invoice_No char(255),CheckIn char(255),CheckOut char(255),"
cmd.CommandText += "RNum integer,Guest_Name char(255),Base_Room_Charge Decimal,Service_Charge Decimal,"
cmd.CommandText += "HEBERGEMENT Decimal,TPS Decimal,TVQ Decimal,Total_Taxes Decimal,Total_Charges Decimal,"
cmd.CommandText += "Total_Deposit Decimal)"
Try
cmd.ExecuteNonQuery()
conn2.Close()
Catch ex As Exception
conn2.Close()
End Try
- However, after I INSERT data into their columns then try to sorting each column, the Header also being sorting
- But if I hight-light the Header row and right-click on it then selecting Cell Format --> Protection --> Mask ... then I can sort every column without touching the Headers
*) Since the user probably doesn't know how to do like me, I would like to program it automatically with VB ... any one can help?
Thanks in-advanced
|
|
|
|
|
i want to use inet control to create directory in the directory at the remote server, and i have written the following codes which are running and no error msg, but no folder is created! anyone can help this?
Inet1.AccessType = icUseDefault
Inet1.URL = "ftp://mysite/webfolder"
Inet1.UserName = "myuser name"
Inet1.Password = "my password"
Inet1.RequestTimeout = 40
Inet1.Execute , "MKDIR /myfolder"
Do While Inet1.StillExecuting
DoEvents
Loop
Inet1.Execute , "CLOSE"
MsgBox ("Update Completed")
|
|
|
|
|
The first question that should have been raised is why are you doing new development in VB6?? It's about to get its runtime support killed off with the release of Windows 8 some time next year.
VB6 has been dead for a quite long time now.
|
|
|
|
|
Come on - others still use Fortran, Cobol, Mumps etc.
So what's bad with VB6? It is far more modern and far easier to use!
|
|
|
|
|
No it's not easier it's different and no longer supported by MS and a lot of troubles when you want to used it in windows Vista or 7. 8 it almost there. Even more installing on these OS will have troubles also
Don't get me wrong. I have used it and I still used it for old programs that I didn’t get time to convert. It was very good in the prehistory; but now obsolete.
|
|
|
|
|
which one should i use for sending file to my remote server and download them?
|
|
|
|
|
I new program always in dotnet
Use vb6 only for SMALL changes in an existing program
|
|
|
|
|
Because there's a FAR better replacement for it and the VB6 runtimes days are numbered.
Also, notice in VS2010, you can no longer open a VB6 project and convert it. MS removed the Conversion Wizard. Nothing says "Get the 'F' off that thing" louder than that.
Come on, it's been 10 years since the release of .NET. There's really no excuse to start new development on VB6.
|
|
|
|