Улучшен алгоритм настройки
This commit is contained in:
parent
b15929a0ac
commit
cc5daec86f
83
Compare.c
83
Compare.c
|
|
@ -24,8 +24,48 @@ typedef struct {
|
||||||
wchar_t captionWindow[_MAX_PATH];
|
wchar_t captionWindow[_MAX_PATH];
|
||||||
wchar_t pathWav1[_MAX_PATH];
|
wchar_t pathWav1[_MAX_PATH];
|
||||||
wchar_t pathWav2[_MAX_PATH];
|
wchar_t pathWav2[_MAX_PATH];
|
||||||
|
BOOL error;
|
||||||
} tCompareStruct;
|
} tCompareStruct;
|
||||||
|
|
||||||
|
|
||||||
|
static BOOL setTextHwnd(HWND hwnd, LPCWSTR text1, int timeout) {
|
||||||
|
|
||||||
|
wchar_t text2[_MAX_PATH];
|
||||||
|
wcscpy_s(text2, _MAX_PATH, L" ");
|
||||||
|
|
||||||
|
for (int i = 0; i < timeout; ++i) {
|
||||||
|
|
||||||
|
SendMessage(hwnd, WM_SETTEXT, 0, text1);
|
||||||
|
SendMessage(hwnd, WM_GETTEXT, _MAX_PATH, text2);
|
||||||
|
|
||||||
|
if (wcscmp(text1, text2) == 0) {
|
||||||
|
return FALSE;
|
||||||
|
} else {
|
||||||
|
Sleep(100);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
static BOOL setComboBoxHwnd(HWND hwnd, int index1, int timeout) {
|
||||||
|
|
||||||
|
for (int i = 0; i < timeout; ++i) {
|
||||||
|
|
||||||
|
ComboBox_SetCurSel(hwnd, index1);
|
||||||
|
int index2 = ComboBox_GetCurSel(hwnd);
|
||||||
|
|
||||||
|
if (index1 == index2) {
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
Sleep(100);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
static BOOL CALLBACK enum_wnd_proc(HWND hwnd, LPARAM lParam) {
|
static BOOL CALLBACK enum_wnd_proc(HWND hwnd, LPARAM lParam) {
|
||||||
tCompareStruct* compareStruct = (tCompareStruct*)lParam;
|
tCompareStruct* compareStruct = (tCompareStruct*)lParam;
|
||||||
|
|
||||||
|
|
@ -48,32 +88,50 @@ static BOOL CALLBACK enum_wnd_proc(HWND hwnd, LPARAM lParam) {
|
||||||
#ifdef DEBUG_PRINTF
|
#ifdef DEBUG_PRINTF
|
||||||
printf("Edit1 found!\n");
|
printf("Edit1 found!\n");
|
||||||
#endif
|
#endif
|
||||||
SendMessage(hwnd, WM_SETTEXT, 0, (LPARAM)compareStruct->pathWav1);
|
compareStruct->error = setTextHwnd(hwnd, compareStruct->pathWav1, 50);
|
||||||
|
|
||||||
|
if (compareStruct->error) {
|
||||||
|
printf("Error: Edit1\n");
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((wcscmp(classText, L"Edit") == 0) && (LocalTop == 73)) {
|
if ((wcscmp(classText, L"Edit") == 0) && (LocalTop == 73)) {
|
||||||
#ifdef DEBUG_PRINTF
|
#ifdef DEBUG_PRINTF
|
||||||
printf("Edit2 found!\n");
|
printf("Edit2 found!\n");
|
||||||
#endif
|
#endif
|
||||||
SendMessage(hwnd, WM_SETTEXT, 0, (LPARAM)compareStruct->pathWav2);
|
compareStruct->error = setTextHwnd(hwnd, compareStruct->pathWav2, 50);
|
||||||
|
|
||||||
|
if (compareStruct->error) {
|
||||||
|
printf("Error: Edit2\n");
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((wcscmp(classText, L"ComboBox") == 0) && (LocalTop == 109)) {
|
if ((wcscmp(classText, L"ComboBox") == 0) && (LocalTop == 109)) {
|
||||||
#ifdef DEBUG_PRINTF
|
#ifdef DEBUG_PRINTF
|
||||||
printf("ComboBox1 found!\n");
|
printf("ComboBox1 found!\n");
|
||||||
#endif
|
#endif
|
||||||
ComboBox_SetCurSel(hwnd, 1);
|
|
||||||
|
|
||||||
|
compareStruct->error = setComboBoxHwnd(hwnd, 1, 50);
|
||||||
|
|
||||||
|
if (compareStruct->error) {
|
||||||
|
printf("Error: ComboBox1\n");
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((wcscmp(classText, L"ComboBox") == 0) && (LocalTop == 184)) {
|
if ((wcscmp(classText, L"ComboBox") == 0) && (LocalTop == 184)) {
|
||||||
#ifdef DEBUG_PRINTF
|
#ifdef DEBUG_PRINTF
|
||||||
printf("ComboBox2 found!\n");
|
printf("ComboBox2 found!\n");
|
||||||
#endif
|
#endif
|
||||||
ComboBox_SetCurSel(hwnd, 1);
|
|
||||||
|
|
||||||
|
compareStruct->error = setComboBoxHwnd(hwnd, 1, 50);
|
||||||
|
|
||||||
|
if (compareStruct->error) {
|
||||||
|
printf("Error: ComboBox2\n");
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((wcscmp(classText, L"Static") == 0) && (LocalTop == 218)) {
|
if ((wcscmp(classText, L"Static") == 0) && (LocalTop == 218)) {
|
||||||
|
|
@ -83,7 +141,12 @@ static BOOL CALLBACK enum_wnd_proc(HWND hwnd, LPARAM lParam) {
|
||||||
wchar_t text[_MAX_PATH];
|
wchar_t text[_MAX_PATH];
|
||||||
wcscpy_s(text, _MAX_PATH, L" -200.0%");
|
wcscpy_s(text, _MAX_PATH, L" -200.0%");
|
||||||
|
|
||||||
SetWindowTextW(hwnd, (LPCWSTR)text);
|
compareStruct->error = setTextHwnd(hwnd, text, 50);
|
||||||
|
|
||||||
|
if (compareStruct->error) {
|
||||||
|
printf("Error: Static\n");
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -112,9 +175,10 @@ static BOOL CALLBACK enum_wnd_proc(HWND hwnd, LPARAM lParam) {
|
||||||
printf("Static found!\n");
|
printf("Static found!\n");
|
||||||
#endif
|
#endif
|
||||||
wchar_t text[_MAX_PATH];
|
wchar_t text[_MAX_PATH];
|
||||||
|
wcscpy_s(text, _MAX_PATH, L" ");
|
||||||
|
|
||||||
for (int i = 0; i < 50; ++i) {
|
for (int i = 0; i < 50; ++i) {
|
||||||
GetWindowTextW(hwnd, (LPCWSTR)text, _MAX_PATH);
|
SendMessage(hwnd, WM_GETTEXT, _MAX_PATH, text);
|
||||||
|
|
||||||
if (wcscmp(text, L" -200.0%") == 0) {
|
if (wcscmp(text, L" -200.0%") == 0) {
|
||||||
Sleep(100);
|
Sleep(100);
|
||||||
|
|
@ -145,10 +209,12 @@ static void CALLBACK TimerUpdate(UINT wTimerID, UINT msg, DWORD dwUser, DWORD dw
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
int wmain(int argc, wchar_t* argv[], wchar_t* envp[]) {
|
static int wmain(int argc, wchar_t* argv[], wchar_t* envp[]) {
|
||||||
|
|
||||||
tCompareStruct compareStruct;
|
tCompareStruct compareStruct;
|
||||||
|
|
||||||
|
compareStruct.error = FALSE;
|
||||||
|
|
||||||
wchar_t captionWindow[_MAX_PATH];
|
wchar_t captionWindow[_MAX_PATH];
|
||||||
wcscpy_s(captionWindow, _MAX_PATH, L"Sound-Similar 1.1 (Free Version) by Virtins Technology");
|
wcscpy_s(captionWindow, _MAX_PATH, L"Sound-Similar 1.1 (Free Version) by Virtins Technology");
|
||||||
|
|
||||||
|
|
@ -196,7 +262,8 @@ int wmain(int argc, wchar_t* argv[], wchar_t* envp[]) {
|
||||||
compareStruct.regim = REGIM_INIT;
|
compareStruct.regim = REGIM_INIT;
|
||||||
EnumChildWindows(hwnd, enum_wnd_proc, (LPARAM)(&compareStruct));
|
EnumChildWindows(hwnd, enum_wnd_proc, (LPARAM)(&compareStruct));
|
||||||
|
|
||||||
Sleep(200);
|
if (compareStruct.error)
|
||||||
|
return 3;
|
||||||
|
|
||||||
compareStruct.regim = REGIM_COMPARE;
|
compareStruct.regim = REGIM_COMPARE;
|
||||||
EnumChildWindows(hwnd, enum_wnd_proc, (LPARAM)(&compareStruct));
|
EnumChildWindows(hwnd, enum_wnd_proc, (LPARAM)(&compareStruct));
|
||||||
|
|
|
||||||
Binary file not shown.
Binary file not shown.
|
|
@ -1,8 +1,14 @@
|
||||||
Compare.c
|
Compare.c
|
||||||
C:\VC\Compare\Compare.c(117,39): warning C4090: функция: разные квалификаторы "const"
|
C:\VC\Compare\Compare.c(38,36): warning C4047: функция: "LPARAM" отличается по уровням косвенного обращения от "LPCWSTR"
|
||||||
|
C:\VC\Compare\Compare.c(38,36): warning C4024: SendMessageW: различные типы для формального и фактического параметров 4
|
||||||
|
C:\VC\Compare\Compare.c(39,44): warning C4047: функция: "LPARAM" отличается по уровням косвенного обращения от "wchar_t [260]"
|
||||||
|
C:\VC\Compare\Compare.c(39,44): warning C4024: SendMessageW: различные типы для формального и фактического параметров 4
|
||||||
|
C:\VC\Compare\Compare.c(181,46): warning C4047: функция: "LPARAM" отличается по уровням косвенного обращения от "wchar_t [260]"
|
||||||
|
C:\VC\Compare\Compare.c(181,46): warning C4024: SendMessageW: различные типы для формального и фактического параметров 4
|
||||||
|
C:\VC\Compare\Compare.c(295,1): warning C4008: wmain: пропуск атрибута "static"
|
||||||
Создание кода
|
Создание кода
|
||||||
Создание кода завершено
|
Создание кода завершено
|
||||||
0 of 6 functions ( 0.0%) were compiled, the rest were copied from previous compilation.
|
2 of 8 functions (25.0%) were compiled, the rest were copied from previous compilation.
|
||||||
0 functions were new in current compilation
|
0 functions were new in current compilation
|
||||||
0 functions had inline decision re-evaluated but remain unchanged
|
0 functions had inline decision re-evaluated but remain unchanged
|
||||||
Compare.vcxproj -> C:\VC\Compare\Release\Compare.exe
|
Compare.vcxproj -> C:\VC\Compare\Release\Compare.exe
|
||||||
|
|
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue