Convert/Cast 字符串(从文本框)到 IntPtr C#
Convert/Cast String (from a textbox) to IntPtr C#
我有一个文本框,我想在其中输入(手动)句柄 (http://i.imgur.com/S1bCyPy.png)
我的问题:要从文本框中获取值,我需要这样做:
textBoxHandle.Text;
但是当我将 Handle 初始化为 IntPtr(句柄)时,这不起作用:
IntPtr h = new IntPtr(textBoxHandle.Text);
我试过
(IntPtr) textBoxHandle.Text
还有许多其他选项我在这里阅读过,例如 Marshal.StringToHGlobalAnsi 方法,但它们不起作用/它们更改了内容。
我的问题:如何从文本框中的字符串(具有句柄格式)中获取 IntPtr(句柄)?
编辑:例如,在文本框中我会写 0x00040C66。
最终代码应该是:
IntPtr hWnd = new IntPtr(0x00040C66);
但更改 IntPtr 以获取文本框中的值。
编辑:我的问题被标记为重复(How can I convert an unmanaged IntPtr type to a c# string?),但不一样。这不是我想要的从 IntPtr 到 String 。我需要相反的东西,从 String 到 IntPtr。
需要先将字符串解析成int
或long
,再构造IntPtr
.
IntPtr handle = new IntPtr(Convert.ToInt32(textBoxHandle.Text, 16));
// IntPtr handle = new IntPtr(Convert.ToInt64(textBoxHandle.Text, 16));
Convert.ToInt32
和 ToInt64
的第二个参数指定了数字的基数,因为你正在解析一个十六进制数字字符串,它需要是 16。
我有一个文本框,我想在其中输入(手动)句柄 (http://i.imgur.com/S1bCyPy.png)
我的问题:要从文本框中获取值,我需要这样做:
textBoxHandle.Text;
但是当我将 Handle 初始化为 IntPtr(句柄)时,这不起作用:
IntPtr h = new IntPtr(textBoxHandle.Text);
我试过
(IntPtr) textBoxHandle.Text
还有许多其他选项我在这里阅读过,例如 Marshal.StringToHGlobalAnsi 方法,但它们不起作用/它们更改了内容。
我的问题:如何从文本框中的字符串(具有句柄格式)中获取 IntPtr(句柄)?
编辑:例如,在文本框中我会写 0x00040C66。
最终代码应该是:
IntPtr hWnd = new IntPtr(0x00040C66);
但更改 IntPtr 以获取文本框中的值。
编辑:我的问题被标记为重复(How can I convert an unmanaged IntPtr type to a c# string?),但不一样。这不是我想要的从 IntPtr 到 String 。我需要相反的东西,从 String 到 IntPtr。
需要先将字符串解析成int
或long
,再构造IntPtr
.
IntPtr handle = new IntPtr(Convert.ToInt32(textBoxHandle.Text, 16));
// IntPtr handle = new IntPtr(Convert.ToInt64(textBoxHandle.Text, 16));
Convert.ToInt32
和 ToInt64
的第二个参数指定了数字的基数,因为你正在解析一个十六进制数字字符串,它需要是 16。