Comment simuler la frappe de la touche "copie d'écran"? [Résolu]

Caribensila 2677 Messages postés jeudi 15 janvier 2004Date d'inscription 5 juillet 2018 Dernière intervention - 22 déc. 2004 à 01:06 - Dernière réponse : jmp77 1232 Messages postés lundi 4 février 2002Date d'inscription 4 octobre 2006 Dernière intervention
- 22 déc. 2004 à 11:49
Salut!

Pour simuler la frappe de la touche "copie d'écran" j'avais essayé avec :
Keybd_event(VK_Snapshot,0,0,0);
et des tas d'autres trucs de ce style...
Mais ça ne marche pas.

Alors j'ai cherché a connaitre le code que renvoyait cette touche avec la procédure ci-dessous....
Et, à mon grand étonnement, contrairement aux autres touches, cette touche "copie d'écran" ne renvoie rien! Je ne comprends plus... :s

procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
var i : integer;
begin
for i := 0 to 65535 do begin
Edit2.Text := IntToStr(i);
if Key = StrToInt(Edit2.Text then exit;
end;
end;

Quelqu'un peut-il m'expliquer et me donner une soluce? Ce serait bien sympa parce que je suis perdu, là. :)
Afficher la suite 

Votre réponse

7 réponses

Meilleure réponse
cupracing 28 Messages postés vendredi 3 novembre 2000Date d'inscription 24 février 2005 Dernière intervention - 22 déc. 2004 à 09:12
3
Merci
J'ai trouvé ceci ça peut surement t'aider !

http://www.elists.org/pipermail/delphi/2002-April/019635.html

le code que j'ai essayé:

procedure TForm1.SimulateKeystroke(Key : byte; extra : DWORD);
begin
  keybd_event(Key, extra, 0, 0);
  keybd_event(Key, extra, KEYEVENTF_KEYUP, 0);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
     SimulateKeystroke(VK_SNAPSHOT, 0);
end;


@lex

Merci cupracing 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 84 internautes ce mois-ci

Commenter la réponse de cupracing
Meilleure réponse
ni69 1529 Messages postés samedi 12 juin 2004Date d'inscription 5 juillet 2010 Dernière intervention - 22 déc. 2004 à 11:04
3
Merci
On peut faire plus simple pour une capture d'écran :
var
ImageBureau:TPicture;

procedure.....
begin
ImageBureau := TPicture.Create;
ImageBureau.Bitmap.Width := Screen.Width
ImageBureau.Bitmap.Height := Screen.Height
BitBlt(ImageBureau.Bitmap.Canvas.Handle,0,0,Screen.Width,Screen.Height,GetDC(GetDesktopWindow),0,0,SrcCopy)
ImageBureau.Free;


@+
Bonne Prog'
Nico

N'oubliez pas de cliquer sur Réponse acceptée lorsque la réponse vous convient ! ;)

Merci ni69 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 84 internautes ce mois-ci

Commenter la réponse de ni69
Caribensila 2677 Messages postés jeudi 15 janvier 2004Date d'inscription 5 juillet 2018 Dernière intervention - 22 déc. 2004 à 10:21
0
Merci
Merci bcp pour ta réponse, cupracing.
Mais je viens de trouver ce que je cherchais.
Simplement:

Keybd_event(VK_Snapshot,1,0,0);

C'était un problème de paramètre... :s
Commenter la réponse de Caribensila
Caribensila 2677 Messages postés jeudi 15 janvier 2004Date d'inscription 5 juillet 2018 Dernière intervention - 22 déc. 2004 à 11:25
0
Merci
Tu as tout à fait raison, ni69. Et c'était d'ailleurs ma première intention. Cependant, dans le cas de mon application, ça ne fonctionnait pas correctement car j'ai une Form avec la propriété AlphaBlend à True. Et danc ce cas, cette Form n'est pas prise dans la capture. A ma connaissance, il n'y a donc qu'une solution, dans ce cas particulier: c'est de simuler la frappe de la touche "copie d'écran"...

Mais je te remercie, ni69. Ta soluce est sans doute la meilleure dans la plupart des cas.
Commenter la réponse de Caribensila
Caribensila 2677 Messages postés jeudi 15 janvier 2004Date d'inscription 5 juillet 2018 Dernière intervention - 22 déc. 2004 à 11:30
0
Merci
Je précise, pour ceux que ça intéressent:

Keybd_event(VK_Snapshot,0,0,0); //Copie tout l'écran

Keybd_event(VK_Snapshot,1,0,0); //Copie la fenêtre active

Bonne prog à tous. Et encore merci.
Commenter la réponse de Caribensila
ni69 1529 Messages postés samedi 12 juin 2004Date d'inscription 5 juillet 2010 Dernière intervention - 22 déc. 2004 à 11:33
0
Merci
ok Caribensila :) Merci de ces précisions !

@+
Bonne Prog'
Nico
Commenter la réponse de ni69
jmp77 1232 Messages postés lundi 4 février 2002Date d'inscription 4 octobre 2006 Dernière intervention - 22 déc. 2004 à 11:49
0
Merci
Ouais c'est bon à savoir merci Caribensila.

Bonne prog,
JMP77.

N'oubliez pas de cliquer sur réponse acceptée.
Commenter la réponse de jmp77

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.