private int GetLengthTextByHandle(IntPtr hWnd) { const int WM_GETTEXTLENGTH = 0x000E; IntPtr hndl = Marshal.AllocHGlobal(200); int numText = (int)DllImportMethods.SendMessage(hWnd, WM_GETTEXTLENGTH, (IntPtr)2000, hndl); return(numText); }
private string GetImportMemoText(IntPtr hControlBox) { uint WM_GETTEXT = 0x000D; int len = GetLengthTextByHandle(hControlBox); if (len <= 0) { return(null); } StringBuilder sb = new StringBuilder(len + 1); DllImportMethods.SendMessageForGetText(hControlBox, WM_GETTEXT, len + 1, sb); return(sb.ToString()); }
private IntPtr GetHandleTMemo() { var importForm = DllImportMethods.FindWindow("TFormImport", "ЗАПИСЬ В БАЗУ ASUSS"); if (importForm.ToString() == "0") { importForm = DllImportMethods.FindWindow("TFormImport", "ЗАПИСЬ В БАЗУ "); } var memoHandle = DllImportMethods.FindWindowEx(importForm, new IntPtr(0), "TMemo", null); if (memoHandle.ToString() == "0") { SetStatus("Не найдено окно Импорта"); } return(memoHandle); }
/// <summary> /// Закрываем всякого рода окна и не нужные сообщения Импорта /// </summary> public void CheckAndCloseErrorWindowImport() { // ловим заголовок сообщения об ошибке Импорта IntPtr messageErrorForm = DllImportMethods.FindWindow("TMessageForm", "Import"); if (messageErrorForm != IntPtr.Zero) { SetStatus("Закрыли сообщение " + messageErrorForm); CloseWindow(messageErrorForm); } //ловим заголовок диалога об ошибке IntPtr dialogErrorForm = DllImportMethods.FindWindow("#32770", "Import"); if (dialogErrorForm != IntPtr.Zero) { SetStatus("Закрыли диалог об ошибке " + dialogErrorForm); CloseWindow(dialogErrorForm); } }
/// <summary> /// Закрытие окна по Handle /// </summary> /// <param name="handle">Handle закрываемого окна</param> private void CloseWindow(IntPtr handle) { const uint WM_CLOSE = 0x10; DllImportMethods.SendMessage(handle, WM_CLOSE, IntPtr.Zero, IntPtr.Zero); }