Başka bir programı izlemek için C# uygulamasını kullanıyorum ve etkin olmadığında bir düğmeyi tıklamanız yeterli.Onaltılık değerleri program ayarlarından veya IN # (özel sınıf) C# olarak int türünde nasıl yüklerim?
Pinvoke kullanıyorum ve bu harika çalışıyor. Sorunum, düğme denetim kimliğini onaltılık biçimdeki bir INI'den yüklemektir. inif sadece INI dosyasını onaltılık dize ("000003F2") için okur.
//Load control id from INI file
public int m_button_id;
int m_button_id = Int32.Parse(inif.Read("MMonitor", "button_id"));
Şimdi
[DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)]
static extern IntPtr GetDlgItem(IntPtr hWnd, int nIDDlgItem);
[DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)]
static extern IntPtr SendMessage(IntPtr hWnd, int Msg, int wParam, IntPtr lParam);
//Click Button
IntPtr hWndButton = GetDlgItem(m_handle, m_button_id);
int wParam = (BN_CLICKED << 16) | (m_button_id & 0xffff);
SendMessage(m_handle, WM_COMMAND, wParam, hWndButton);
m_button_id onluya değil onaltılık biçiminde olması gerekir ... Bu şu çalışmak gerekir. Bu "000003F2" yi INI'den yüklemeli ve m_button_id'e eşit olarak ayarlamalıdır. Bir dize olmasından dolayı çok fazla sorun yaşıyorum.
el ayarlarsanız bu iyi çalışıyor ...
public int m_button_id = 0x3F2;
ben o cevapsız inanamıyorum. Cevap için teşekkürler! –
Özel durum atıldı: System.dll'de 'System.ComponentModel.Win32Exception' - Bunu alıyorum ve int'ye hex yüklemiyor. 0x'yi kesecek ve herhangi bir sayıyı tutacaktır. Ancak, dize altıgen harf içeriyorsa yukarıdaki gibi bir istisna atar. –
Hata (çizgi) ve cadı giriş verileri nerede? – Kalten