php4 en windows api (php_w32api.dll)

Alles over programmeren en development binnen de IT-wereld
Gebruikersavatar
Styno
Elite Poster
Elite Poster
Berichten: 1440
Lid geworden op: 06 nov 2003, 17:38
Locatie: Somewhere over the rainbow....

Onderstaand php scriptje zou in een reeds geopende notepad sessie de text "lalalalalaaa" moeten intypen dmv. de windows api.
Het gaat goed zolang ik bij de parent blijf (notepad) dan kan ik de titel veranderen, max/minimizen van het window.
Als ik wil werken met eigenlijke 'edit'-window (de child waar de text in moet terechtkomen) krijg ik dit van geen kanten werkende.... Er moet iets mis zijn met de SendMessage declaratie of uitvoering.

Iemand enige clue wat ik misdoe?
Ps. de NULL bij FindWindowEx neemt hij ook niet aan, maar ik heb manueel het nummer van de child opgezocht om te testen.

Alvast bedankt,
Styno

Code: Selecteer alles

<?php
dl("extensions/php_w32api.dll");

//start windows api class
$api =& new win32;

//defines
define('SW_MAXIMIZE',3);
define('SW_MINIMIZE',6);

//register windows functions
$api->registerfunction("long GetLastError 
        Alias GetError ()
        From kernel32.dll");
$api->registerfunction("long FindWindow
        (string ClassName, string WindowName)
        From user32.dll");
$api->registerfunction("long ShowWindow
        (long hWnd, long nCmdShow)
        From user32.dll");
$api->registerfunction("long SetWindowText
        (long hWnd, string lpString)
        From user32.dll");
$api->registerfunction("long SendMessage
	(long hWnd, string Msg, long wParam, long lParam)
	From user32.dll");
$api->registerfunction("long FindWindowEx
	(long hwndParent, long hwndChildAfter, string lpszClass, string lpszWindow)
	From user32.dll");

$class_string = 'Notepad';
$title_string = 'Untitled - Notepad';
$tt1= "Edit";
$tt = "lalalalalaaa";

if(!$hwnd = $api->FindWindow($class_string,$title_string))
	{	$error = $api->getError();
        	echo ' Oops FindWindow error: '.$error."\n";
	}	
else	
	{	
//		$api->ShowWindow($hwnd,SW_MAXIMIZE);
		$chwnd = $api->FindWindowEx($hwnd,0,$tt1,NULL); 
//		$api->SetWindowText($hwnd,$tt);
		$api->SendMessage($chwnd,WM_SETTEXT,0,$tt); 
	}

?>
echo '[q]sa[ln0=aln256%Pln256/snlbx]sb3135071790101768542287578439snlbxq'|dc
echo '16i[q]sa[ln0=aln100%Pln100/snlbx]sbA0D4D465452snlbxq'|dc
Afbeelding
Plaats reactie

Terug naar “Development”