Forum und email

Funções da W32api

Introdução

Essa extensão é uma API genérica de extensão para DLLs. Ela era originalmente escrita para permitir acesso à API Win32 a partir do PHP, embora você pode também acessar outras funções exportadas via outras DLLs.

Os tipos atualmente suportados são tipos genéticos do PHP (strings, booleans, floats, inteiros e nulls) e tipos que você define com a função w32api_deftype().

Nota: Esta extensão foi movida para o repositório » PECL e não é mais distribuida em conjunto com o PHP a partir do PHP 5.1.0.

Aviso

Este módulo é EXPERIMENTAL. Isso quer dizer que o comportamento neste módulo --- incluindo suas funções e seus nomes, e TUDO mais que está documentado sobre esse módulo --- poderá mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use este módulo por sua própria conta e risco.

Dependências

Essa extensão só funciona em sistemas Windows.

Instalação

Não há nenhuma instalação necessária para utilizar estas funções, elas fazem parte do núcleo do PHP.

Configurações em execução

Esta extensão não define nenhum parâmetro de configuração no php.ini.

Tipos Resource

Essa extensão define um tipo de recurso, usado por tipo definidos pelo usuário. O nome desse recurso é "dynaparm".

Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e somente estarão disponíveis quando a extensão foi compilada com o PHP ou carregada dinamicamente durante a execução.

DC_MICROSOFT (inteiro)
DC_BORLAND (inteiro)
DC_CALL_CDECL (inteiro)
DC_CALL_STD (inteiro)
DC_RETVAL_MATH4 (inteiro)
DC_RETVAL_MATH8 (inteiro)
DC_CALL_STD_BO (inteiro)
DC_CALL_STD_MS (inteiro)
DC_CALL_STD_M8 (inteiro)
DC_FLAG_ARGPTR (inteiro)

Exemplos

Esse exemplo pega a quantidade de tempo que o sistema está executando e mostra em uma caixa de mensagem.

Example#1 Pega o uptime e mostra em uma caixa de mensagem

<?php
// Define constantes necessárias, pegas do arquivo
// Visual Studio/Tools/Winapi/WIN32API.txt
define("MB_OK"0);

// Carrega a extensão
dl("php_w32api.dll");

// Registra a função GetTickCount de kernel32.dll
w32api_register_function("kernel32.dll",
                         
"GetTickCount",
                         
"long");

// Registra a função MessageBoxA de User32.dll
w32api_register_function("User32.dll",
                         
"MessageBoxA",
                         
"long");

// Pega a informação do uptime
$ticks GetTickCount();

// Converte a informação para um formato de gente
$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));

// Mostra uma caixa de mensagem com só um botão de OK e o texto de uptime
MessageBoxA(NULL,
            
$str,
            
"Uptime Information",
            
MB_OK);
?>

Índice