C#调用[DllImport("user32.dll")]、[DllImport("gdi32.dll")]半小时后失灵
C#调用[DllImport("user32.dll")]、[DllImport("gdi32.dll")]半小时后失效
本人用VS2010 、C# 想模拟按键精灵写一个脚本,循环 判断某点的颜色是否 等于某个数值。
前面循环几十次(大概半个小时这样) 用起来都没问题,可是用了半个小时左右,就判断不到 那一点的颜色了,然后我断电调试,发现程序还是在运行的,调试的时候到判断颜色的地方,判断出那点是255,255,255也就是白色。
主要代码如下
![C#调用[DllImport("user32.dll")]、[DllImport("gdi32.dll")]半小时后失灵 C#调用[DllImport("user32.dll")]、[DllImport("gdi32.dll")]半小时后失灵](/default/index/img?u=aHR0cDovL3d3dy5teWV4Y2VwdGlvbnMubmV0L2ltZy8yMDE1LzAxLzI5LzExNDg0NzEzLnBuZw==)
![C#调用[DllImport("user32.dll")]、[DllImport("gdi32.dll")]半小时后失灵 C#调用[DllImport("user32.dll")]、[DllImport("gdi32.dll")]半小时后失灵](/default/index/img?u=aHR0cDovL3d3dy5teWV4Y2VwdGlvbnMubmV0L2ltZy8yMDE1LzAxLzI5LzExNDg0NzE0LnBuZw==)
当程序失效的时候我调试过 前面没问题 当到了这个地方的时候 C是=0;代码如下
![C#调用[DllImport("user32.dll")]、[DllImport("gdi32.dll")]半小时后失灵 C#调用[DllImport("user32.dll")]、[DllImport("gdi32.dll")]半小时后失灵](/default/index/img?u=aHR0cDovL3d3dy5teWV4Y2VwdGlvbnMubmV0L2ltZy8yMDE1LzAxLzI5LzExNDg0NzE1LnBuZw==)
------解决思路----------------------
既然知道用GetDC,那怎么会不知道用ReleaseDC呢.
本人用VS2010 、C# 想模拟按键精灵写一个脚本,循环 判断某点的颜色是否 等于某个数值。
前面循环几十次(大概半个小时这样) 用起来都没问题,可是用了半个小时左右,就判断不到 那一点的颜色了,然后我断电调试,发现程序还是在运行的,调试的时候到判断颜色的地方,判断出那点是255,255,255也就是白色。
主要代码如下
当程序失效的时候我调试过 前面没问题 当到了这个地方的时候 C是=0;代码如下
------解决思路----------------------
既然知道用GetDC,那怎么会不知道用ReleaseDC呢.
[System.Runtime.InteropServices.DllImportAttribute("user32.dll", EntryPoint = "ReleaseDC")]
public static extern int ReleaseDC(System.IntPtr hWnd,System.IntPtr hDC);