一个窗口下有多个EDIT控件,都是没有名称的,要如何区分输入

一个窗口下有多个EDIT控件,都是没有名称的,要怎么区分输入
大家好!

  请教一个窗口下有多个EDIT控件,且都是没有名称的,要怎么往每个EDIT控件里输入准确的内容?
我现在的用的是:先获取窗口下第一个edit控件的句柄,然后输入正确信息,再挨个的获取下一个句柄,按顺序一个一个输入。
代码如下:
HWND Account = FindWindowEx(Login,NULL,"EDIT",NULL);
SendMessage(Account ,WM_SETTEXT,6,(LPARAM)name);

HWND Password = FindWindowEx(Login,Account ,"EDIT",NULL);
SendMessage(Password ,WM_SETTEXT,6,(LPARAM)PW);

HWND TXPassword = FindWindowEx(Login,Password,"EDIT",NULL);
SendMessage(TXPassword,WM_SETTEXT,sizeof(TXPW),(LPARAM)TXPW);
这样的话,大部分时间是能正常工作的,但是有时候,在确认完后会提示没有输入数据。一旦遇到这种情况就必须要重启那个窗口才能正常。
请教一下,这样的现象可能是什么原因造成的?或者有什么其他方式能保证不出错?有没有什么检验错误的方式能在出错的时候提示是哪里错了?
还有补充问一下,窗口下句柄的排列顺序每次都是固定的吗?没有什么情况会导致句柄的顺序打乱了,或者少了多了之类的?
谢谢大家!

------解决思路----------------------
id应该不变,除非故意做成变化的。
------解决思路----------------------
引用:
那个窗口是别人的程序,就好比一个登录框,想做一个自动登录的,那些帐号,密码,以及其他一些信息都是要挨个的填。
每次重启PC或者程序后,每个进程的ID和句柄顺序都不变吗?

进程的ID和句柄可能改变,但控件的ID是固定的。
------解决思路----------------------
如果依赖遍历的方式获得的句柄不能准确代表顺序的话,还有一个折衷的笨办法,就是你获取一次,然后为每个edit框设置一个坐标,使用配置文件的方式给出这个坐标,以后每次获取句柄,在获取rect进行坐标匹配就能确定。能解决这个问题,但是如果控件更换了位置,你的坐标配置也需要跟着变。
------解决思路----------------------
没有完全看懂你的问题。
“没有名称”但是有ID呀,
直接
GetDlgItem(IDC_EDITXXX)->SetWindowText(Cstring& str);
不就OK了?
------解决思路----------------------
引用:
那个窗口是别人的程序,就好比一个登录框,想做一个自动登录的,那些帐号,密码,以及其他一些信息都是要挨个的填。
每次重启PC或者程序后,每个进程的ID和句柄顺序都不变吗?


即使是别人的程序,ID一般也是不变的吧