• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

не выводит директории!

  • Автор темы Guest
  • Дата начала
G

Guest

Моё задание заключалось в следующем: создать кнопки для дисков, которые активны и при нажатии на какую-либо кнопку, в ЛистБокс должна выводиться директория, соответствующая этому диску.
Здесь я создаю кнопки для активных дисков:
a[0]='A';
a[1]='B';
a[2]='C';
a[3]='D';
a[4]='E';
a[5]='F';
a[6]='G';
a[7]='H';
a[8]='I';
a[9]='J';
int i=0;
for (i=0;i<10;i++)
{
x[0]=a;
x[1]=':';
x[2]='/';
x[3]='\0';
if (_wchdir(x)==false)
{
j=j++;
but[j]=CreateWindow(TEXT("button"),x,WS_VISIBLE|WS_CHILD|BS_PUSHBUTTON,240,(35*j)+10,70,30,hWnd,(HMENU)33,hI
nstance,NULL);
}
}

обработчик нажатия на одну из кнопок:
case 33:
for (j=0;j<10;j++)
{
SendMessage(hList,LB_RESETCONTENT,0,0);
GetWindowText(but[j], tx, sizeof(tx));
_wchdir(tx);
SendMessage(hList,LB_DIR,DDL_DIRECTORY|DDL_READWRITE|DDL_HIDDEN|DDL_SYSTEM,(LPAR
AM)TEXT("*.*"));
}
break;
Проблема в том, что обработчик пробегает цикл и выводит в ЛистБокс только последний элемент, как будто я нажимала на последнюю кнопку. Как сделать так, чтобы в ЛистБокс данные именно с того диска, на который я нажала??
 
Z

ZZmiy

Согласно MSDN все child окна должны иметь уникальный id
поэтому как минимум в строчке
but[j]=CreateWindow(TEXT("button"),x,WS_VISIBLE|WS_CHILD|BS_PUSHBUTTON,240,(35*j)+10,70,30,hWnd,(HMENU)33,hI
nstance,NULL);
ошибка
Cоздаем кнопки с различными ID, ну а дальше дело техники :)
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!