Manuale PHP
Indietro |  | Avanti

# CLVI. Funzioni W32api

# Introduzione

Questa è una generica API verso le DLL. In origine fu scritta per consentire l'accesso alle API Win32 dal PHP, sebbene si possa anche accedere a funzioni esportate da altre DLL.

Attualmente i tipi di dati supportati dal modulo sono i generici tipi PHP (strings, booleans, floats, integers e null) e i tipi definiti dall'utente tramite w32api_deftype().

> Nota: Questo modulo è stato spostato nel repository PECL e non sarà più rilascio con il PHP dalla versione 5.1.0.

Avvertimento
Questo modulo è SPERIMENTALE. Ovvero, il comportamento di queste funzioni, i nomi di queste funzioni, in definitiva tutto ciò che è documentato qui può cambiare nei futuri rilasci del PHP senza preavviso. Siete avvisati, l'uso di questo modulo è a vostro rischio.

# Requisiti

Questo modulo gira solo su sistemi Windows.

# Installazione

Non è necessaria nessuna installazione per usare queste funzioni, esse fanno parte del core di PHP.

# Configurazione di Runtime

Questa estensione non definisce alcuna direttiva di configurazione in `php.ini`

# Tipi di risorse

Questo modulo definisce un solo tipo di risorsa utilizzata per i tipi di dati definiti dall'utente. Il nome i questa risorsa è "dynaparm".

# Costanti predefinite

Queste costanti sono definite da questa estensione e sono disponibili solo se l'estensione è stata compilata nel PHP o se è stata caricata dinamicamente a runtime.

`DC_MICROSOFT` (integer)

`DC_BORLAND` (integer)

`DC_CALL_CDECL` (integer)

`DC_CALL_STD` (integer)

`DC_RETVAL_MATH4` (integer)

`DC_RETVAL_MATH8` (integer)

`DC_CALL_STD_BO` (integer)

`DC_CALL_STD_MS` (integer)

`DC_CALL_STD_M8` (integer)

`DC_FLAG_ARGPTR` (integer)

# Esempi

Nel seguente esempio si ottiene da quanto tempo il sistema è attivo ed il risultato viene visualizzato in una finestra.

Esempio 1. Ottenere il tempo di attività e visualizzarlo in una finestra

`<?php
// Definizione delle costanti richieste, dati ottenuti da
// Visual Studio/Tools/Winapi/WIN32API.txt
define("MB_OK", 0);
// Carico il modulo
dl("php_w32api.dll");
// Registrazione della funzione GetTickCount da kernel32.dll
w32api_register_function("kernel32.dll",
"GetTickCount",
"long");
// Registrazione della funzione MessageBoxA da User32.dll
w32api_register_function("User32.dll",
"MessageBoxA",
"long");
// Ottiene il dato cercato
$ticks = GetTickCount();
// Converte in formato umano
$secs = floor($ticks / 1000);
$mins = floor($secs / 60);
$hours = floor($mins / 60);
$str = sprintf("You have been using your computer for:" .
"\r\n %d Milliseconds, or \r\n %d Seconds" .
"or \r\n %d mins or\r\n %d hours %d mins.",
$ticks,
$secs,
$mins,
$hours,
$mins - ($hours*60));
// Visualizza la finestra con il bottone di OK
MessageBoxA(NULL,
$str,
"Uptime Information",
MB_OK);
?>`

Indietro | Partenza | Avanti
vpopmail_set_user_quota | Risali | w32api_deftype