taultunleashed logoGW2 GPU stand-by : General Discussion
newtopic  postreply
 [ 1 post ] 
blue large dot

GW2 GPU stand-by : General Discussion

Posted: October 30th, 2012, 2:10 pm
 
arravilo

Total Posts: 1
Joined: October 30th, 2012, 1:57 pm
arravilo's Reps: 0
User avatar
I really don't know where to put this... it's not a bot nor a hack nor a exploit. I don't feel like putting it directly into GW2 forum, since using AutoIt is... suspicious to say the least.

Also, i'm not giving an executable, but the script itself, so you can check it's not a n00b virus/keylogger whatever.

I made a script that's able to suspend the Direct3D thread of GW2. This means that it will stop rendering to give your GPU a break (in case you're a lazy !@#$%^&* like me and you don't want to log out).

The problem is that you need one info: The Direct3D thread Id of the process. Each time you run GW2, it gets a new TID, so you will have to seek for it.

To find out the TID I use "process explorer" from microsoft (it's free). link (Google it if you think it's a virus and go to the microsoft page, it's the first result). When you open it you will see a tree (list) of processes, find the Gw2.exe and doubleclick on it. Go to tab "Threads" and find the thread that it's start address is something like d3d9.dll. If you follow that row to the right, you will find the TID you need.
From this window you can manually suspend that thread, but I made a shortcut to a key with my script (and its way faster).

Once you run the script, it will ask you for the TID. Then if you press F11, it will suspend the D3D thread and hide the window. If you press F11 again, it should pop up again and resume the thread.
If you leave the TID as 0, it will just hide the window (for those who play at work *giggle*), but it will continue rendering the graphics, so your GPU will still burn.

Here's the AutoIt code:
(!empty($user->lang['CODE'])) ? $user->lang['CODE'] : ucwords(strtolower(str_replace('_', ' ', 'CODE'))):
HotKeySet("{F11}", "toogle")
$tid = InputBox("", "TID", "0")

Global $hidden = False

While True
   Sleep(1000)
WEnd

Func toogle()
   If $hidden Then
      If $tid <> 0 Then
         _ThreadResume($tid)
      EndIf
      WinSetState("Guild Wars 2", "", @SW_SHOW)
   Else
      Send("!{TAB}")
      WinSetState("Guild Wars 2", "", @SW_HIDE)
      If $tid <> 0 Then
         _ThreadSuspend($tid)
      EndIf
   EndIf
   $hidden = Not $hidden
EndFunc

Func _ThreadResume($TID)
   $Handle = DllCall("kernel32.dll","ptr", "OpenThread","dword", "0x0002","int", "0","dword",$TID)
   $i_sucess = DllCall("kernel32.dll","dword","ResumeThread","ptr",$Handle[0])
   DllCall("kernel32.dll", "ptr", "CloseHandle", "ptr", $Handle)
EndFunc
Func _ThreadSuspend($TID)
   $Handle = DllCall("kernel32.dll","ptr", "OpenThread","dword", "0x0002","int", "0","dword",$TID)
   $i_sucess = DllCall("kernel32.dll","dword","SuspendThread","ptr",$Handle[0])
   DllCall("kernel32.dll", "ptr", "CloseHandle", "ptr", $Handle)
EndFunc


I hope it's usefull :o

Note: If you try to pause the process itself (all the threads) you will get disconnected out of server. Pausing the D3D thread doesn't cause you to disconnect.


Reply with quote
Want Advertisements After The Last Post Removed? Create A Free Account!

blue large dot Who is online
Users browsing this forum: No registered users and 347 guests

cron
Popular Sections
SWTOR Cheats
Guild Wars 2 Cheats
Guild Wars 2 Hacks
Guild Wars 2 Bots
Diablo 3 Cheats
Guild Wars 2 Mods

Popular Sections
WoW Cataclysm Cheats & Exploits
WoW Cataclysm Hacks & Bots
Star Wars The Old Republic Cheats
SWTOR Mods
Torchlight 2 Cheats
SWTOR Space Mission Bots
Site Nav and RSS
RSS Feed of General Discussion RSS Feed 
Sitemap of General Discussion Sitemap 
SitemapIndex SitemapIndex
RSS Feed RSS Feed
Channel list Channel list
left bottom corner Site and Contents Copyright 2001-2012 All Rights Reserved TaultUnleashed.com bottom corner
top left
top right
createaccount
Username:   Password:   Remember Me?