Entwickler-Ecke

Windows API - ALT + Druck simulieren


wolle87 - Fr 12.02.10 16:36
Titel: ALT + Druck simulieren
Hi,

wie der Titel schon verrät, suche ich eine Möglichkeit wie ich die Tastenkombination "ALT+DRUCK" simulieren kann.

Gruß


Xion - Fr 12.02.10 18:26

Durch die Suche hab ich das gefunden:
http://www.delphi-forum.de/viewtopic.php?t=63605&highlight=screenshot+vom+fenster

Das verlinkt dorthin:
http://www.swissdelphicenter.ch/de/showcode.php?id=259

Da steht der Code

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
// Capture the entire screen
// Screenshot des gesamten Bildschirms
procedure ScreenShot(Bild: TBitMap);
var
  c: TCanvas;
  r: TRect;
begin
  c := TCanvas.Create;
  c.Handle := GetWindowDC(GetDesktopWindow);
  try
    r := Rect(00, Screen.Width, Screen.Height);
    Bild.Width := Screen.Width;
    Bild.Height := Screen.Height;
    Bild.Canvas.CopyRect(r, c, r);
  finally
    ReleaseDC(0, c.Handle);
    c.Free;
  end;
end;


Wenn du da jetzt das Bild/Rect so anpasst, dass es so groß ist wie dein Fenster und Top/Left in das Rect schreibst => fertig :)


wolle87 - Fr 12.02.10 18:33

Danke für deine Antwort, allerdings wollte ich jetzt nicht wissen wie ich einen Screenshot machen kann sondern ich will diesen Tastendruck (ALT+Druck) simulieren.


Astat - Fr 12.02.10 18:35

user profile iconwolle87 hat folgendes geschrieben Zum zitierten Posting springen:

..Möglichkeit wie ich die Tastenkombination "ALT+DRUCK" simulieren kann.


Hallo wolle87


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
//-- EDIT: Druck
keybd_event(VK_SNAPSHOT , 000);
keybd_event(VK_SNAPSHOT , 0, KEYEVENTF_KEYUP, 0);


//-- EDIT: Alt + Druck
keybd_event(VK_MENU , 000);
keybd_event(VK_SNAPSHOT , 000);
keybd_event(VK_SNAPSHOT , 0, KEYEVENTF_KEYUP, 0);
keybd_event(VK_MENU , 0, KEYEVENTF_KEYUP, 0);


lg. Astat


wolle87 - Fr 12.02.10 21:59

Jo das isses :)
Besten Dank!


Bitburki - Do 03.06.10 15:02

Könnte ich das jetzt auch direkt noch an den Standarddrucker senden?

Ich suche ein Coding, wo ich den Screenshot meiner Anwendung mache (oder einer Form) und dann direkt an den Drucker schicke... Vll. hat da jemand was...


jaenicke - Fr 04.06.10 14:52

user profile iconBitburki hat folgendes geschrieben Zum zitierten Posting springen:
Ich suche ein Coding, wo ich den Screenshot meiner Anwendung mache (oder einer Form) und dann direkt an den Drucker schicke...
Und was soll dann der Blödsinn mit dem simulierten Tastendruck? Das packt das in die Zwischenablage (noch dazu unnötig kompliziert), wo du es gar nicht haben willst... Was hat das denn damit zu tun was du machen willst?

Oben steht der Quelltext wie du an das Bild mit dem Screenshot kommst (musst eben den Device Context des betreffenden Fensters angeben) und das kannst du dann ganz normal in Delphi drucken, fertig...