Vari pezzi di codice in C++

In questo articolo pubblico vari pezzi di codice nel linguaggio c++

CATTURARE LO SCREENSHOT DI UNA FINESTRA
void CScreenShotDlg::OnPaint()
{
// device context for painting
CPaintDC dc(this);
// Get the window handle of calculator application.
HWND hWnd = ::FindWindow( 0, _T( “Calculator” ));
// Take screenshot.
PrintWindow( hWnd,
dc.GetSafeHdc(),
0 );
}
RIAVVIARE UNA MACCHINA IN REMOTO
// Riavvia la macchina remota – PCRemoto01
InitiateSystemShutdown( _T(“PCRemoto01”), // Nome della macchina.
_T(“ATTENZIONE! Riavvio in corso”),
5000, // timeout
TRUE, // Chiusura forzata delle applicazioni.
TRUE ); // Riavvio della macchina
OTTENERE L’ICONA ASSOCIATA UN FILE CON SHGETFILEINFO()
// Percorso e nome del file
CString FilePath = _T(“C:\\nomefile.zip”);
// Ottenere l’icona del file.
SHFILEINFO FileInfo = { 0 };
SHGetFileInfo( FilePath,
0,
&FileInfo,
sizeof( FileInfo ),
SHGFI_ICON );
TROVARE L’APPLICAZIONE ASSOCIATA ALL’ESTENSIONE DI UN FILE
#include “Shlwapi.h”

DWORD dwSize = MAX_PATH;
TCHAR tchApplicationPath[ MAX_PATH ] = { 0 };
HRESULT hr = AssocQueryString( 0,
ASSOCSTR_EXECUTABLE,
_T( “.mp3” ),
_T( “open” ),
tchApplicationPath,
&dwSize );
if( FAILED( hr ))
{
// Associazione dell’applicazione fallita.
}
CONVERTIRE L’ORARIO LOCALE IN FORMATO UTC O GMT
// Ottenere l’ora locale.
SYSTEMTIME LocalTime = { 0 };
GetSystemTime( &LocalTime );
// OTTENERE LE INFORMAZIONI SUL TIMEZONE.
TIME_ZONE_INFORMATION TimeZoneInfo;
GetTimeZoneInformation( &TimeZoneInfo );
// CONVERTE L’ORA LOCALE IN UTC.
SYSTEMTIME GmtTime = { 0 };
TzSpecificLocalTimeToSystemTime( &TimeZoneInfo,
&LocalTime,
&GmtTime );
// ORA LOCALE ESPRESSA IN GMT
float TimeZoneDifference = -( float(TimeZoneInfo.Bias) / 60 );
CString csLocalTimeInGmt;
csLocalTimeInGmt.Format( _T(“%ld:%ld:%ld + %2.1f Hrs”),
GmtTime.wHour,
GmtTime.wMinute,
GmtTime.wSecond,
TimeZoneDifference );
FORMATTARE I MILLISECONDI IN FORMATO LEGGIBILE
#include “Shlwapi.h”
// Ottiene il tempo in millisecondi
DWORD dwTickCount = GetTickCount();
const int BufferSize = 255;
TCHAR CurrentTime[BufferSize];
// Ottiene la data formattata.
StrFromTimeInterval( CurrentTime,
BufferSize,
dwTickCount,
3 ); // ora:min:sec
CONTROLLARE CHE LA CONNESSIONE INTERNET SIA ATTIVA
#include “intshcut.h”

// controlla se la connessine Internet รจ attiva.
if( !InetIsOffline( 0 ))
{
// Connessine disponibile.
}
GESTIRE I TASTI CTRL+C NELLE APPLICAZIONI CONSOLE
BOOL CtrlHandler(DWORD dwCtrlType)
{
if( CTRL_C_EVENT == dwCtrlType)
{
// lettura di CTRL+C.
// scrivere qui il proprio codice
}
}
void main()
{
SetConsoleCtrlHandler(
(PHANDLER_ROUTINE) CtrlHandler,
TRUE);
}
VISUALIZZARE LA FINESTRA “SFOGLIA CARTELLE” CON LA CARTELLA DI DEFAULT SELEZIONATA
#include <windows.h>
#include <shlobj.h>
int CALLBACK BrowseForFolderCallback(HWND hwnd,UINT uMsg,LPARAM lp, LPARAM pData)
{
char szPath[MAX_PATH];
switch(uMsg)
{
case BFFM_INITIALIZED:
SendMessage(hwnd, BFFM_SETSELECTION, TRUE, pData);
break;
case BFFM_SELCHANGED:
if (SHGetPathFromIDList((LPITEMIDLIST) lp ,szPath))
{
SendMessage(hwnd, BFFM_SETSTATUSTEXT,0,(LPARAM)szPath);
}
break;
}
return 0;
}
BOOL BrowseFolders(HWND hwnd, LPSTR lpszFolder, LPSTR lpszTitle)
{
BROWSEINFO bi;
char szPath[MAX_PATH + 1];
LPITEMIDLIST pidl;
BOOL bResult = FALSE;
LPMALLOC pMalloc;
if (SUCCEEDED(SHGetMalloc(&pMalloc)))
{
bi.hwndOwner = hwnd;
bi.pidlRoot = NULL;
bi.pszDisplayName = NULL;
bi.lpszTitle = lpszTitle;
bi.ulFlags = BIF_STATUSTEXT;
bi.lpfn = BrowseForFolderCallback;
bi.lParam = (LPARAM)lpszFolder;
pidl = SHBrowseForFolder(&bi);
if (pidl)
{
if (SHGetPathFromIDList(pidl,szPath))
{
bResult = TRUE;
strcpy(lpszFolder, szPath);
}
pMalloc->Free(pidl);
pMalloc->Release();
}
}
return bResult;
}