Mewex |
Дата: Понедельник, 10.04.2017, 21:57 | Сообщение # 1
|
STEAM SELLER
Сообщений: 475
Статус: Offline
|
Взять иконку файла Способ 1, не надежный
Код //работает не со всеми файлами. //Залезаем в реестр #Include "registry.hpp" void exticon1(string filelocate,ticon *icon) { int lehgthp=filelocate.length(); string ext=""; for(int i=lehgthp;i>0;i--) if(filelocate[i]=='.'){ext=filelocate.substring(i,lehgthp);break;} tregistry *r=new tregistry(); r->rootkey=hkey_classes_root; r->openkey(ext,false); string s=r->readstring(""); r->closekey(); r->openkey(s+"\\defaulticon",false); string defaulticon=r->readstring(""); delete r; if(defaulticon!="") { int length,iconnum, sem; string path,iconnumstr; length=defaulticon.length(); sem = defaulticon.pos(','); path = defaulticon.substring(0,sem-1); iconnum = strtoint(defaulticon.substring(sem+1,length-sem)); icon->handle=extracticon(0,path.c_str(),iconnum); } }
Способ 2, единственный надежный
Код //работает со всеми файлами //Пользуемся winapi
void exticon(string filelocate,ticon *icon) { shfileinfo fileinfo; shgetfileinfo(filelocate.c_str(),null,&fileinfo,sizeof(fileinfo),shgfi_icon); icon->handle=fileinfo.hicon; }
Расшарить папку на ftp
Код //Пример расшаривания папки на ftp для консоли
#Include "windows.h" #Include "wininet.h" #Include "tchar.h" #Include "stdio.h" #Include "conio.h"
void scanftpfolder(tchar *szservername, lpstr szpathspec) { hinternet hopen = null,hinet=null,hftp=null; win32_find_data findfiledata; memset ((char *)&findfiledata, 0, sizeof(findfiledata)); char buffer[max_path+1]={0}; hinet = internetopen(text("ftp scanner"), internet_open_type_preconfig, null, null, 0); if (hinet!=null) { hftp = internetconnect (hinet, szservername, internet_invalid_port_number, null, null, internet_service_ftp, internet_flag_passive, 0); if (hftp!=null) { hopen = ftpfindfirstfile(hftp, szpathspec, &findfiledata, internet_flag_no_cache_write, 0); if(hopen!=null) { do { printf(findfiledata.cfilename); printf("\n"); if(findfiledata.dwfileattributes && file_attribute_directory) { strcpy(buffer,"/"); strcat(buffer,findfiledata.cfilename); strcat(buffer,"/*.*"); scanftpfolder(szservername ,buffer); } }while (internetfindnextfile(hopen, &findfiledata)); internetclosehandle (hopen); } internetclosehandle (hftp); } internetclosehandle (hinet); } }
int main() { scanftpfolder("192.168.0.91",""); getch(); return 0; }
Удалить temporary internet files
Код //Функция удаляет файлы из temporary internet files //Правда функция не работает с cookies //Но если ее немного переделать, то она будет //удалять и кукисы //обязательно инклюдим wininet.h
#Include "wininet.h"
bool deltempfiles() { bool bresult = false; bool bdone = false; lpinternet_cache_entry_info lpcacheentry = null; dword dwtrysize, dwentrysize = 4096; // размер буфера handle hcachedir = null; dword dwerror = error_insufficient_buffer; do { switch (dwerror) { case error_insufficient_buffer: delete [] lpcacheentry; lpcacheentry = (lpinternet_cache_entry_info) new char[dwentrysize]; lpcacheentry->dwstructsize = dwentrysize; dwtrysize = dwentrysize; bool bsuccess; if (hcachedir == null) bsuccess = (hcachedir = findfirsturlcacheentry(null, lpcacheentry, &dwtrysize)) != null; else bsuccess = findnexturlcacheentry(hcachedir, lpcacheentry, &dwtrysize); if (bsuccess) dwerror = error_success; else { dwerror = getlasterror(); dwentrysize = dwtrysize; } break; case error_no_more_items: bdone = true; bresult = true; break; case error_success: if (!(lpcacheentry->cacheentrytype & cookie_cache_entry)) deleteurlcacheentry(lpcacheentry->lpszsourceurlname); dwtrysize = dwentrysize; if (findnexturlcacheentry(hcachedir, lpcacheentry, &dwtrysize)) dwerror = error_success; else { dwerror = getlasterror(); dwentrysize = dwtrysize; } break; default: bdone = true; break; } if (bdone) { delete [] lpcacheentry; if (hcachedir) findcloseurlcache(hcachedir); } } while (!bdone); return bresult; }
Добавить файл в автозагрузку (builder c++)
Код //Функция добавляет файл filename в автозагрузку
#Include "registry.hpp"
void addfileinreg(ansistring filename) { treginifile *reg = new treginifile(""); reg->rootkey = hkey_local_machine; reg->openkey("\\software\\microsoft\\windows\\" + + "currentversion\\run", false); reg->writestring("\\software\\microsoft\\windows\\" + + "currentversion\\run", filename, filename); delete reg; } Добавлено (25.03.2017, 18:17) --------------------------------------------- ап Добавлено (28.03.2017, 12:51) --------------------------------------------- Ап Добавлено (30.03.2017, 10:42) --------------------------------------------- Ап Добавлено (03.04.2017, 19:36) --------------------------------------------- Ап Добавлено (05.04.2017, 20:14) --------------------------------------------- АП Добавлено (08.04.2017, 15:29) --------------------------------------------- Ап Добавлено (10.04.2017, 21:57) --------------------------------------------- Ап
|
|
|
|
TheUnity |
Дата: Воскресенье, 02.07.2017, 01:30 | Сообщение # 2
|
Боец
Сообщений: 54
Статус: Offline
|
Цитата Junger ( ) Добавить файл в автозагрузку (builder c++) Нужны будут адм. права? А так спасибо
|
|
|
|