public override bool DoFillWork(object fillValue) { bool result = false; FillValue3C value = fillValue as FillValue3C; if (value != null) { result = ApiSetter.SetComboBoxSelected(base.HWnd, _comboBoxHandle, value.Value, true); } ApiSetter.ClickButton(_okBtnHandle, base.HWnd, StartFillSelectFirm, this.FillValue); return(result); }
public unsafe override bool DoFillWork(object state) { FillValue3C fillValue = state as FillValue3C; if (fillValue == null || fillValue.Value == null || fillValue.Separators == null || fillValue.Separators.Length < 1) { return(false); } string[] values = fillValue.Value.Split(fillValue.Separators[0]); if (values == null || values.Length == 0) { return(false); } ApiSetter.SetComboBoxSelected(base.HWnd, comboBox, values[0]); if (values.Length > 1) { uint msg = WMMSG.LB_SETCURSEL; long style = NativeApi.GetWindowLong(listBox, -16); if ((style & ListBoxStyles.LBS_MULTIPLESEL) == ListBoxStyles.LBS_MULTIPLESEL) { msg = WMMSG.LB_SETSEL; } int count = NativeApi.SendMessage(listBox, WMMSG.LB_GETCOUNT, 0, 0).ToInt32(); StringBuilder text = new StringBuilder(256); for (int i = 0; i < count; i++) { RECT rect; IntPtr result = NativeApi.SendMessage(listBox, WMMSG.LB_GETTEXT, i, text); if (values.Contains(text.ToString())) { NativeApi.SendMessage(listBox, msg, i, 0); NativeApi.SendMessage(listBox, WMMSG.LB_GETITEMRECT, i, ((IntPtr)(&rect)).ToInt32()); NativeApi.SendMessage(listBox, WMMSG.WM_LBUTTONDOWN, MouseVirtualKeys.MK_CONTROL, (rect.Top << 16) | (rect.Left & 0xFFFF)); NativeApi.SendMessage(listBox, WMMSG.WM_LBUTTONUP, MouseVirtualKeys.MK_CONTROL, (rect.Top << 16) | (rect.Left & 0xFFFF)); } } ApiSetter.ClickButton(multiInstall, base.HWnd, null, null); } return(ApiSetter.ClickButton(finish, base.HWnd, null, null)); }
public override bool DoFillWork(object state) { FillValue3C fillValue = state as FillValue3C; if (fillValue == null || fillValue.Value == null || fillValue.Separators == null || fillValue.Separators.Length < 1) { return(false); } string[] values = fillValue.Value.Split(fillValue.Separators[0]); if (values == null || values.Length == 0) { return(true); } List <IntPtr> list = ControlSorter.SortContainer(_container); if (list == null) { return(false); } StringBuilder className = new StringBuilder(256); for (int i = 0; i < values.Length && i < list.Count; i++) { className.Clear(); NativeApi.GetClassName(list[i], className, 255); string classNameStr = className.ToString(); if (classNameStr.StartsWith(CCCFillManager.EditClassName)) { ApiSetter.SetText(list[i], values[i]); } else if (classNameStr.StartsWith(CCCFillManager.ComboBoxClassName)) { ApiSetter.SetComboBoxSelected(base.HWnd, list[i], values[i]); } } ApiSetter.ClickButton(_finishButton, base.HWnd, null, null); return(true); }
public override bool DoFillWork(object firm) { return(ApiSetter.SetComboBoxSelected(base.HWnd, _comboBoxHandle, firm as string) && ApiSetter.ClickButton(_okBtnHandle, base.HWnd, null, null)); }
private bool FillValue(string className, ref int index, IntPtr handle, FillValue3C value) { _asyncHandle.Wait(); string parameterValue = null; if (value == null) { return(false); } FillParameter3C parameter = _fillParameters[value.Key] as FillParameter3C; if (index == -1) { parameterValue = value.Value; } else { string[] values = value.Value == null ? null : value.Value.Split(parameter.Separators[0]); parameterValue = (values == null || values.Length <= index) ? (string.IsNullOrEmpty(value.Note) ? "" : value.Note) : values[index]; } StringBuilder text = null; switch (className) { case CCCFillManager.EditClassName: if (ApiSetter.IsEditable(handle, _handle) == false) { index--; break; } ApiSetter.SetText(handle, parameterValue); break; case CCCFillManager.ComboBoxClassName: if (ApiSetter.IsEditable(handle, _handle) == false) { index--; break; } ApiSetter.SetComboBoxSelected(_handle, handle, parameterValue, parameter.IsComboBoxPreciseMatch); break; case CCCFillManager.ButtonClassName: value.Separators = parameter.Separators; text = new StringBuilder(256); NativeApi.GetWindowText(handle, text, 255); if (text.ToString() == "附件" && value != null && string.IsNullOrEmpty(value.AttachFile) == false) { return(ApiSetter.ClickButton(handle, _handle, ListenAttachWindow, value)); } else if (text.ToString() == "编辑") { if (string.IsNullOrEmpty(value.OriginString)) { return(false); } if (string.IsNullOrEmpty(parameter.EditType)) { parameter.EditType = "add"; } switch (parameter.EditType.ToLower()) { case "add": return(ApiSetter.ClickButton(handle, _handle, ListenAddWindow, value)); case "radio": return(ApiSetter.ClickButton(handle, _handle, ListenRadioWindow, value)); case "select": return(ApiSetter.ClickButton(handle, _handle, ListenListBoxWindow, value)); case "multiselect": value.DoubleClick = true; return(ApiSetter.ClickButton(handle, _handle, ListenListBoxWindow, value)); case "text": return(ApiSetter.ClickButton(handle, _handle, ListenTextWindow, value)); case "column": return(ApiSetter.ClickButton(handle, _handle, ListenColumnWindow, value)); case "multinote": return(ApiSetter.ClickButton(handle, _handle, ListenMultiValueAndNoteWindow, value)); default: return(false); } } else { } break; } return(true); }
public override bool DoFillWork(object state) { FillValue3C fillValue = state as FillValue3C; if (fillValue == null || fillValue.Value == null || fillValue.Separators == null || fillValue.Separators.Length < 2 || inputCount == 0) { return(false); } foreach (char c in fillValue.Separators) { fillValue.Value = fillValue.Value.Replace(c, ','); } List <string[]> values = new List <string[]>(); string[] array = fillValue.Value.Split(new char[] { ',' }, StringSplitOptions.None); string[] group = null; for (int i = 0; i < array.Length; i++) { int mod = (i % inputCount); if (mod == 0) { group = new string[inputCount]; values.Add(group); } group[mod] = array[i]; } //List<string[]> values = new List<string[]>(); //foreach (var item in fillValue.Value.Split(fillValue.Separators[1])) //{ // values.Add(item.Split(fillValue.Separators[0])); //} bool result = true; StringBuilder className = new StringBuilder(256); for (int index = 0; index < values.Count && current != IntPtr.Zero; index++) { List <IntPtr> sorted = ControlSorter.SortContainer(current); if (sorted != null) { string[] parametrValues = values[index]; for (int i = 0; i < sorted.Count && parametrValues.Length > i; i++) { NativeApi.GetClassName(sorted[i], className, 255); string classNameStr = className.ToString(); if (classNameStr.StartsWith(CCCFillManager.EditClassName)) { ApiSetter.SetText(sorted[i], parametrValues[i]); } else if (classNameStr.StartsWith(CCCFillManager.ComboBoxClassName)) { ApiSetter.SetComboBoxSelected(base.HWnd, sorted[i], parametrValues[i]); } } } if (index < values.Count - 1) { ApiSetter.ClickButton(addButton, base.HWnd, null, null); } current = NativeApi.FindWindowEx(container, current, null, null); } return(result && ApiSetter.ClickButton(saveButton, base.HWnd, null, null)); }