Цитата:
регулярка конечно страдает и сразу серийные номера всех дисков
CODE:
if (createpipeprocess("C:\Windows\System32\cmd.exe"));
{
sendpipe("wmic diskdrive get serialnumber^n");//Отправляем команду dir
waitpipe();//Ждем пока отработает и появятся данные
sleep(500);//для надежности
int C;
string S;
C=getpipe(#S);//Читаем
S=d866tow1251 (S);//перекодирует текст из DOS 866 в WINDOWS 1251
//messagebox (S);
closepipeprocess();//Завершим процесс и закрываем канал
string result[99];
string tmp;
string PathKibor;
regexreplace(1, #PathKibor, pathfolder(), ".$", "");
regexreplace(-1, #PathKibor, PathKibor, "\\", "\\");
regexsearch(1, #tmp, S, "(?<=SerialNumber).+?(?="+PathKibor+")", SINGLELINE);
int count = regexsearch(99, #result[0], tmp, "[A-Z0-9\-]+");
for(int i=0; i<count; i++)messagebox(result[i]);
}
{
sendpipe("wmic diskdrive get serialnumber^n");//Отправляем команду dir
waitpipe();//Ждем пока отработает и появятся данные
sleep(500);//для надежности
int C;
string S;
C=getpipe(#S);//Читаем
S=d866tow1251 (S);//перекодирует текст из DOS 866 в WINDOWS 1251
//messagebox (S);
closepipeprocess();//Завершим процесс и закрываем канал
string result[99];
string tmp;
string PathKibor;
regexreplace(1, #PathKibor, pathfolder(), ".$", "");
regexreplace(-1, #PathKibor, PathKibor, "\\", "\\");
regexsearch(1, #tmp, S, "(?<=SerialNumber).+?(?="+PathKibor+")", SINGLELINE);
int count = regexsearch(99, #result[0], tmp, "[A-Z0-9\-]+");
for(int i=0; i<count; i++)messagebox(result[i]);
}