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 è più rilasciato con il PHP dalla versione 5.1.0.
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.
Esempi
Nel seguente esempio si ottiene da quanto tempo il sistema è attivo ed il risultato viene visualizzato in una finestra.
Example#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);
?>
Indice dei contenuti
- w32api_deftype — ...) Definisce un tipo per l'uso con altre w32api_functions
- w32api_init_dtype — Crea un'istanza ai tipi di dati typename e li riempie con i valori forniti
- w32api_invoke_function — ....) Invoca la funzione funcname con gli argomenti passati dopo il nome della funzione
- w32api_register_function — Registra la funzione function_name dalla libreria con PHP
- w32api_set_call_method — Imposta il metodo di chiamata usato