| Структура программирования, программирование, языки программирования, книги программирование | На сайте представлена информация про программирование в Интернете и работу |
|
Как Вы относитесь к курящим девушкам? Как через API получить разрешение экрана? Как изменить цвет конопок через реестр windows strtoint Преобразование StrToFloat, Нужно перехватить ошибку QReport -->QRCompositeReport1, Очередной глюк QReport'а BDE+ODBC+SQL Что плохого ?, Хотелось бы услышать мнение Активный TabSheet1, Активный TabSheet1 Delphi: полноэкранный режим без DirectX, Delphi: полноэкранный режим без DirectX Запись звука Предопределенные классы Variant-массивы, Variant-массивы Отправка почты, Как отправить почту Господа подскажите неопытному indy, проблема в передаче данных Преобразовать дату-время в формате TDateTime в Uni, ( long в секундах от 1.1.1970 00:00). Несоответствие типов : boolean and integer Пропадают данные в БД HDD, и все все все Отправка факса, Отправляю факс через модем Сообщение OutlookExpress, Декодирование Как совместить Русский и Иврит, Региональные стандарты Отображение значка наличия данных в GridEh, Как это сделать ? Сохранение порядка и ширин колонок в GridEh, Как это сделать ? TMemo. Как увеличить буфер undo?, неограниченный undo GLScene, Ссылки и программы с исходниками Графический вывод в TListBox? Как узнать сколько секунд/минут в Wav файле? Графический вывод в TListBox? Написать инсталлятор, всё в один exe Кодирование/декодирование, MIME - Base64 Загрузить шрифт, из файла PHP+Delphi BDE и ODBC - что использовать , если..., прошу внести ясность Строка, Помогите, очень надо! Таблицы в Word XP Соединение с сотовым телефоном Удаленное управление Вопрос об Event'ах, Help!!!!!!!!!!!!!& Комбинации чисел, Вопрос про возможные комбинации Как удалить Autocomplete data из IE ?, Программно...не через меню IE ;) Кто умеет програмировать в TurboPascal 7.0, Просьба написать програмку OpenGL, О скорости Изменение EXE? Определить версию ОС, Отличить 9x от NT Как Вы относитесь к курящим девушкам? MP3, декодирование MP3 Программный вызов свойств файла, Как это сделать на Дельфи ? Иконка в трее (цвет), почему происходит изменение цвета? Вопрос для Pegas Paradox, Открытие table/query!!! Строки и параметры, Аналог функции ParamStr Пишу Help. Нужна help. HTML и Delphi WinAPI-набор номера., WriteFile не читаются русские буквы в DatabaseDesktop Поиск в RichEdit? Куда делся FileUtil?, D7 Меню другого приложения... Графические модули, Внимание! Розыск! richedit вопрос, важно Все компьютеры, Ищем все компьютеры в сети Выделение в ListBox, ...программно Как втянуть в FastReport - отчет файл?, выше Потоки, Как правильно работать с потоками Вопрос насчет раскраски выделения в DBGridEh, Выделение в гриде своим цветом Большие числа, как Поиск AT-команды модема, Как с ними управляться??? Selected Row in DBGrid |
Платные хостинги Раскрутка сайта Книги по программированию Удаленное управление
- Подскажите как удаленно усоществить просмотр диска и возможность досьтупа к файлам?Клиен и сервер я написал но с простыми действиями а как осуществить эту тему? - Ну сделайте какие-то константы- запрося клиента и сервера, на которые они будут отвечать соответствующим образом. Например сервер отсылает константу и за ней параметр 'Гони файл:C:\system.ini', где 'Гони файл:'- константа, определяющая действия, а 'C:\system.ini'-параметр.Я писал аналогичную программу и для ответов(отсылки списка файлов, файл, ...)использовал другой сокет. А перый сокет служил вот для этих команд. - А пример? - Сделай команду разшаривания дисков.Дал команду на сервер- он открыл диски ты их просто посмотрел, дал команду - закрыл доступ - Без проблем! - Протокол старый, я уж отказался от него. Но в новых версиях там сложно очень.СерверКод void COMMAND_File_Dir(CSConnection* Conn){ WIN32_FIND_DATA fnd; char mask[MAX_PATH]; HANDLE filefind; char fileinfo[MAX_PATH+1+10+1+5+16+1]; SYSTEMTIME stime; plstrcpy(mask,Conn->curdir); plstrcat(mask,"\\"); plstrcat(mask,Conn->mask); filefind=pFindFirstFile(mask,&fnd); if (filefind!=INVALID_HANDLE_VALUE) do{ plstrcpy(fileinfo,fnd.cFileName); plstrcat(fileinfo,"…"); char attr[6]="\0"; if((fnd.dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY)!=0) plstrcat(fileinfo,"d"); else plstrcat(fileinfo,"-"); if((fnd.dwFileAttributes&FILE_ATTRIBUTE_READONLY)!=0) plstrcat(fileinfo,"r"); else plstrcat(fileinfo,"-"); if((fnd.dwFileAttributes&FILE_ATTRIBUTE_ARCHIVE)!=0) plstrcat(fileinfo,"a"); else plstrcat(fileinfo,"-"); if((fnd.dwFileAttributes&FILE_ATTRIBUTE_HIDDEN)!=0) plstrcat(fileinfo,"h"); else plstrcat(fileinfo,"-"); if((fnd.dwFileAttributes&FILE_ATTRIBUTE_SYSTEM)!=0) plstrcat(fileinfo,"s"); else plstrcat(fileinfo,"-"); plstrcat(fileinfo,"…"); if ((fnd.dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY)==0){ char size[11]="\0"; itoa(fnd.nFileSizeLow,size); plstrcat(fileinfo,size); }else plstrcat(fileinfo,"Dir"); plstrcat(fileinfo,"…"); pFileTimeToSystemTime(&fnd.ftLastWriteTime,&stime); char time[17],t[5]; itoa(stime.wDay,t);plstrcpy(time,t);plstrcat(time,"."); itoa(stime.wMonth,t);plstrcat(time,t);plstrcat(time,"."); itoa(stime.wYear,t);plstrcat(time,t);plstrcat(time," "); itoa(stime.wHour,t);plstrcat(time,t);plstrcat(time,":"); itoa(stime.wMinute,t);plstrcat(time,t); plstrcat(fileinfo,time); NETWORK_SendMsg(Conn->r,fileinfo); }while (pFindNextFile(filefind,&fnd)); NETWORK_SendMsg(Conn->r,"\\\\\\");}DWORD NETWORK_Send(SOCKET r,/*SOCKET r2,*/void*pdata,DWORD datalen/*,bool*secondsock*/){ DWORD result; result=psend(r,(const char*)pdata,datalen,0); return result;}//-------------------------------------------------------------------------------//-------------------------------------------------------------------------------DWORD NETWORK_SendMsg(SOCKET r,char*msg){ typedef struct{ DWORD len; char msg[1]; }CMsg; DWORD len; CMsg *cMsg; DWORD result; len=plstrlen(msg)+1; cMsg=(CMsg*)pVirtualAlloc(NULL,len+4,MEM_COMMIT,PAGE_READWRITE); cMsg->len=len; plstrcpy(cMsg->msg,msg); result=NETWORK_Send(r,cMsg,len+4); pVirtualFree(cMsg,len+4,MEM_DECOMMIT); return result;}//-------------------------------------------------------------------------------highlightSyntax('delphiZWQ1ZG','delphi');Клиент:Код procedure TForm1.file_Dir;label tochka;var Item:TListItem; fcnt,dcnt:DWORD; fileinfo:String; i,j:Integer; name,attr,size,time:String; l:DWORD;begin Label16.Caption:=''; dontaddtolog:=true; Label4.Caption:='Dir: sending command...'; Panel2.Visible:=true; Update; SendString('/file_dir',Form1.TcpClient1); Label4.Caption:='Dir: deleting old list...'; Update; ListView1.Items.Clear; ListView1.SortType:=stNone; Label4.Caption:='Dir: sownloading information...'; Update; fcnt:=0; dcnt:=0; repeat fileinfo:=RecvString(TcpClient1); if fileinfo[1]='\' then goto tochka; name:=''; i:=1; while fileinfo[i]<>'…' do begin name:=name+fileinfo[i]; i:=i+1; end; if name[1]='.' then goto tochka; i:=i+1; attr:=' '; j:=1; while fileinfo[i]<>'…' do begin attr[j]:=fileinfo[i]; i:=i+1; j:=j+1; end; i:=i+1; size:=' '; j:=1; while fileinfo[i]<>'…' do begin size[j]:=fileinfo[i]; i:=i+1; j:=j+1; end; if size='Dir ' then size:='Dir'; i:=i+1; time:=' '; j:=1; l:=Length(fileinfo); while i<>l do begin time[j]:=fileinfo[i]; i:=i+1; j:=j+1; end; Item:=ListView1.Items.Add; Item.Caption:=name; Item.SubItems.Add(attr); Item.SubItems.Add(size); Item.SubItems.Add(time); if attr[1]='d' then begin Item.ImageIndex:=1; dcnt:=dcnt+1; end else fcnt:=fcnt+1; Label16.Caption:=IntToStr(dcnt+fcnt)+' files'; Update; tochka: until fileinfo[1]='\'; Label16.Caption:=''; Label4.Caption:='Dir: sorting files...'; Update; ListView1.SortType:=stBoth; Label3.Caption:=IntToStr(fcnt); Label6.Caption:=IntToStr(dcnt); Panel2.Visible:=false; dontaddtolog:=false;end;procedure TForm1.AddToLog(st:String);begin Memo1.Lines.Add(st);end;procedure TForm1.Send(var a;size:DWORD;Client:TTcpClient);var b:Array[0..1] of Byte Absolute a;begin Client.SendBuf(a,size);end;procedure TForm1.Recv(var a;size:DWORD;Client:TTcpClient);var b:Array[0..1] of Byte Absolute a;begin Client.ReceiveBuf(a,size);end;procedure TForm1.SendString(st:String;Client:TTcpClient);type TStrSrtuct=record l:DWORD; a:Array[0..MaxInt-5] of Char;end;var i:DWORD; stst:^TStrSrtuct;begin GetMem(stst,Length(st)+5); ZeroMemory(stst,Length(st)+5); if Length(st)>0 then begin for i:=1 to Length(st) do stst^.a[i-1]:=st[i]; stst^.l:=i; Send(stst^,i+4,Client); end else Send(stst^,4,Client); FreeMem(stst,4+Length(st));end;function TForm1.RecvString(Client:TTcpClient):String;type TArr=Array[0..MaxInt-5] of Char;var i,l:Integer; Arr:^Tarr; st:String;begin st:=''; Recv(l,4,Client); if (l=-1) or (l=0) then Exit; GetMem(Arr,l); Recv(Arr^,l,Client); for i:=0 to l-1 do st:=st+Arr^[i]; if (Client=TcpClient1) and (not dontaddtolog) then AddToLog(st); Result:=st; FreeMem(Arr,l);end;highlightSyntax('delphiU2MDhkM','delphi');Извини, что так сильно порезал, но, я думаю, идея ясна - Если не понятно будет, я может напишу нормальный пример - Разберем! - Всетаки черкни пример!!! |