[C++] Полезные функции для C++ - Форум Cheat-Master.ru
  • Страница 1 из 1
  • 1
Модератор форума: Sanoxxx, Alowir  
[C++] Полезные функции для C++
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++)

Нужны будут адм. права? А так спасибо
  • Страница 1 из 1
  • 1
Поиск:
Статистика Форума
Лучшие пользователи
Admin [39113]

GеNius [7210]

[CM]Russel [5557]

kenlo763 [4952]

[CM]AGRESSOR [4639]

Snake_Firm [4452]

Сэс [4416]

Artem_Buero [4223]

[CM]Durman [3204]

[CM]Рафаэль [3080]

iMaddy [2855]

sky_Woker [2854]

getrekt [2745]

Новые пользователи
klorofbravl456 [13:45]

PUPS12124 [02:09]

Bioksit [00:15]

Dafdaf [23:27]

ячеченец [21:00]

balbesbizad [12:02]

cpark [11:40]

Mario_Imperator [11:33]

leonovichstas97 [22:40]

ubeyefudu [18:53]

zheniakuzma [17:47]

Moonberg [16:04]

tamararl6 [15:04]