Como dice PiTheNumber, no puede simplemente crear o proteger un archivo en el disco del usuario.
Pero podría dejar que el usuario descargue el archivo generado para que pueda abrirlo con su aplicación de escritorio después de que termine de descargarlo.
Esto no es un problema con php, solo envía los encabezados correctos y casi todos los navegadores iniciarán la descarga.
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="'.basename($file).'"'); //<<< Note the " " surrounding the file name
header('Content-Transfer-Encoding: binary');
header('Connection: Keep-Alive');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
Consulte esta pregunta SO para obtener más información.
Otro enfoque sería modificar su aplicación de escritorio para que envíe una solicitud al servidor (con alguna información, IP pública, sistema operativo, navegadores instalados, etc.)
para que el usuario pueda iniciar sesión en el sitio web después de instalar la aplicación.
Una tercera solución posible sería una extensión del navegador escrita para la autenticación, por lo que su sitio web podría comunicarse directamente (o sobre un archivo) con su aplicación de escritorio.