2008-10-06 8 views
2

construit, je me demandais est il y a un moyen infaillible pour exécuter un programme sur les fenêtres telles que je suis garanti que pas de dialogue interactif de tout type sont affichés.Empêcher les boîtes de dialogue qui apparaissent dans sans surveillance

J'ai essayé le hachage ErrorMode du registre, en appelant _CrtSetReportMode(), etc., mais ils ont tous des trous ou nécessitent de modifier le programme.

J'ai besoin d'un moyen d'exécuter un programme arbitraire et de forcer pratiquement Windows à les exécuter de telle sorte qu'il n'y ait aucune possibilité pour eux d'ouvrir une fenêtre. Il est parfaitement possible que le programme se bloque s'il tente d'ouvrir une fenêtre.

L'exécution du programme en tant que service résoudrait-elle le problème?

Répondre

1

Je ne connais pas d'autres façons qui pourraient fonctionner. L'exécution en tant que service ne résoudra pas le problème, car la boîte de dialogue s'affichera sur le bureau du service auquel vous n'avez généralement pas accès.

+0

Qu'est-ce que cela signifie? L'application attend-elle toujours que la boîte de dialogue se termine? Je peux accepter que je ne vois pas la boîte de dialogue (je peux toujours relancer la construction manuellement), tant que l'application n'attend pas la boîte de dialogue. – JesperE

+0

Même lorsque vous exécutez un programme sur le bureau de service non visible, il attendra toujours que l'utilisateur inexistant appuie sur un bouton non visible pour fermer la boîte de dialogue. Ce n'est probablement pas ce que vous voulez. –

+0

Comme c'est sans signification. Comme d'habitude, le manque de design peut être vu dans tous les coins de Windows. – JesperE

1

Vous pouvez utiliser une bibliothèque telle que Detours pour intercepter tous les appels à des fonctions pouvant afficher une boîte de dialogue (cela peut en fait être presque tout dans user32.dll).

Questions connexes