Wanja Posted August 14, 2005 Share Posted August 14, 2005 Can I read out the temperature of my GFX Card (Nvidia) by using AutoIt? Is it possible to read out the nvidia driver temp display without opening the window? I want to write script supporting me with GPU temp messages while I playing games any suggestions? Excuse my bad english ^^ Link to comment Share on other sites More sharing options...
hgeras Posted August 14, 2005 Share Posted August 14, 2005 (edited) I have written such a proggie. The limitations are that the Nvidia Control Panel must be open when you run the program although it hides when it starts it logging.... Nvidia wouldnt share their resources to call the dll right away through DllCall() although i contacted them 5 times... Unfortunately i dont have the source code (formatted by accident) but i have an exe version...It logs the Temperature every 30 secs in a log file on desktop.... EDIT: And BTW "This is not a general support forum!" C ya Edited August 14, 2005 by hgeras Useful information about COM/Objects referenceMy Scripts:PapDefragNvidia Temperature Logger V3.0 with graph analyzerAutoiIt Update Checker And Downloader V1.0ArrayPush UDF Link to comment Share on other sites More sharing options...
44Harry Posted August 15, 2005 Share Posted August 15, 2005 Hello hgeras Found this on the Nvidia SDK site and thought you may be interested. It is the API documentation for the Nvidia Control Panel API.http://download.developer.nvidia.com/devel...olPanel_API.pdfSDK example page is (NVIDIA Control Panel API)http://download.developer.nvidia.com/devel...es/samples.html Link to comment Share on other sites More sharing options...
hgeras Posted August 15, 2005 Share Posted August 15, 2005 @44Harry: Thanx for the info...It seems that it is exactly what i wanted although i hadnt find it 6 months ago when i had made the other proggie.Now i'm gonna find out how to make this work and re-write the whole code....Expect it to come in a few days.... C ya Useful information about COM/Objects referenceMy Scripts:PapDefragNvidia Temperature Logger V3.0 with graph analyzerAutoiIt Update Checker And Downloader V1.0ArrayPush UDF Link to comment Share on other sites More sharing options...
Wanja Posted August 15, 2005 Author Share Posted August 15, 2005 Yeah thx for the api link ^^ so far I found this: NvCplGetThermalSettings() 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. >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> So I wrote some script stuff: Dim $pdwCoreTemp Dim $pdwAmbientTemp Dim $pdwUpperLimit $nWindowsMonitorNumber = 0 $dll = DllOpen("nvcpl.dll") $result = DllCall($dll, "NvCplGetThermalSettings", $nWindowsMonitorNumber, $pdwCoreTemp, $pdwAmbientTemp, $pdwUpperLimit) MsgBox(4096, "Test", $result , 10) DllClose($dll) >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> But I got the error message that the nummber of parameters in the function call is not correct...it only works with one parameter: $result = DllCall($dll, "NvCplGetThermalSettings", $nWindowsMonitorNumber) The result is zero ... well any suggestions how I can get my variables filled ? ^^ Link to comment Share on other sites More sharing options...
Wanja Posted August 15, 2005 Author Share Posted August 15, 2005 I worked out this: Dim $pdwCoreTemp Dim $pdwAmbientTemp Dim $pdwUpperLimit $nWindowsMonitorNumber = 0 $dll = DllOpen("nvcpl.dll") $result = DllCall($dll, "NvCplGetThermalSettings", $nWindowsMonitorNumber, "long_ptr", $pdwCoreTemp, "long_ptr", $pdwAmbientTemp, "long_ptr", $pdwUpperLimit) MsgBox(4096, "Test", $pdwCoreTemp) DllClose($dll) $pdwCoreTemp is still empty but no more errors so far ^^ seems the dll call fails... help ^^ Link to comment Share on other sites More sharing options...
w0uter Posted August 16, 2005 Share Posted August 16, 2005 $result is an array that contains the data. My UDF's:;mem stuff_Mem;ftp stuff_FTP ( OLD );inet stuff_INetGetSource ( OLD )_INetGetImage _INetBrowse ( Collection )_EncodeUrl_NetStat_Google;random stuff_iPixelSearch_DiceRoll Link to comment Share on other sites More sharing options...
hgeras Posted August 16, 2005 Share Posted August 16, 2005 Your syntax is not right... You have wrong number of parameters...Try this,I get no errors but right now I've given my 6800 Ultra and i have a MX440 which has no temperature control....Try this out and tell me... Dim $pdwCoreTemp Dim $pdwAmbientTemp Dim $pdwUpperLimit $nWindowsMonitorNumber = 0 $dll = DllOpen("nvcpl.dll") $result = DllCall($dll,"int", "NvCplGetThermalSettings", "int",$nWindowsMonitorNumber, "long_ptr", $pdwCoreTemp, "long_ptr", $pdwAmbientTemp, "long_ptr", $pdwUpperLimit) If @error then msgbox(0,"","ERROR") MsgBox(4096, "Test", $result[2]) DllClose($dll) C ya Useful information about COM/Objects referenceMy Scripts:PapDefragNvidia Temperature Logger V3.0 with graph analyzerAutoiIt Update Checker And Downloader V1.0ArrayPush UDF Link to comment Share on other sites More sharing options...
Wanja Posted August 16, 2005 Author Share Posted August 16, 2005 YEAH IT WORKS ^^ Thank you very much Link to comment Share on other sites More sharing options...
hgeras Posted August 16, 2005 Share Posted August 16, 2005 It works?!? I chose a bad time to not have my 6800.... Are u sure that works? Do me a favor and tell me this code works too.... $a = DllStructCreate("dword;dword;dword") if @error Then MsgBox(0,"","Error in DllStructCreate " & @error); exit endif $dll = DllOpen("nvcpl.dll") $result = DllCall($dll,"int","NvCplGetThermalSettings","int",0,"ptr",dllStructGetPtr($a,1),"ptr",dllStructGetPtr($a,2),"ptr",dllStructGetPtr($a,3)) If @error then msgbox(0,"","ERROR") MsgBox(4096, "Test", $result[0] & " " & DllStructGetData($a,1)) DllStructDelete($a) DllClose($dll) C ya Useful information about COM/Objects referenceMy Scripts:PapDefragNvidia Temperature Logger V3.0 with graph analyzerAutoiIt Update Checker And Downloader V1.0ArrayPush UDF Link to comment Share on other sites More sharing options...
Wanja Posted August 16, 2005 Author Share Posted August 16, 2005 It tells me: DllStructCreate(...) is an unknown function Link to comment Share on other sites More sharing options...
layer Posted August 16, 2005 Share Posted August 16, 2005 It tells me:DllStructCreate(...)is an unknown function <{POST_SNAPBACK}>You need the latest AutoIt BETA if you want those functions. FootbaG Link to comment Share on other sites More sharing options...
hgeras Posted August 16, 2005 Share Posted August 16, 2005 You have to have the latest beta installed as layer indicated.But even if you have it, SCiTe will again say that cos it isnt updated with the new definitions... Run it in "Beta Run" Instead of "Go".... C ya Useful information about COM/Objects referenceMy Scripts:PapDefragNvidia Temperature Logger V3.0 with graph analyzerAutoiIt Update Checker And Downloader V1.0ArrayPush UDF Link to comment Share on other sites More sharing options...
Wanja Posted August 16, 2005 Author Share Posted August 16, 2005 I tried again with Beta: it does work Link to comment Share on other sites More sharing options...
Wanja Posted August 16, 2005 Author Share Posted August 16, 2005 I've got another question if you don't mind: I'm not so familiar with AutoIt Gui, well does there exist a way to print (let's say the GPU temperature ^^) on screen even if I run a game in fullscreen? I tried to create a gui but when I started a game it always pops to background... I know some tools able to print the fps on screen does AutoIt got such a feature? excuse my bad english Link to comment Share on other sites More sharing options...
hgeras Posted August 16, 2005 Share Posted August 16, 2005 Go here and check why this is not possible...At least by me... and tell me if you like the program....C ya Useful information about COM/Objects referenceMy Scripts:PapDefragNvidia Temperature Logger V3.0 with graph analyzerAutoiIt Update Checker And Downloader V1.0ArrayPush UDF Link to comment Share on other sites More sharing options...
Wanja Posted August 17, 2005 Author Share Posted August 17, 2005 this would be a nice feature request ^^ btw: my Logitech Keyboard got some special funktions and if I activate them I get a message on the screen even in games. Perhaps the AutoIt authers can implement something like this? ^^ Link to comment Share on other sites More sharing options...
debbiejames Posted March 29, 2023 Share Posted March 29, 2023 hi hgeras i try to use this code to read NV VGA temp , but it failed... can you help to solve this code problem ? thanks! Link to comment Share on other sites More sharing options...
Developers Jos Posted March 29, 2023 Developers Share Posted March 29, 2023 Mmm 17 years later you expect an answer without telling us the problem other than "it doesn't" work.. good luck with that. SciTE4AutoIt3 Full installer Download page - Beta files Read before posting How to post scriptsource Forum etiquette Forum Rules Live for the present, Dream of the future, Learn from the past. Link to comment Share on other sites More sharing options...
debbiejames Posted March 29, 2023 Share Posted March 29, 2023 Sorry ! I should tell you more .. I had try this code , I found that DllCall() will return error , the @error return code is 1 , that means "unable to use the DLL file" so I dont know what next step to do .. and I also google about the "nvcpl.dll" file , but nothing help .. so i reply this post .. may someone can help ? thanks $result = DllCall($dll,"int","NvCplGetThermalSettings","int",0,"ptr",dllStructGetPtr($a,1),"ptr",dllStructGetPtr($a,2),"ptr",dllStructGetPtr($a,3)) If @error then msgbox(0,"","ERROR") Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now