AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Screenshot anhand Mausposition

Ein Thema von Nisbo · begonnen am 16. Mär 2005 · letzter Beitrag vom 23. Mär 2005
Antwort Antwort
Seite 1 von 2  1 2      
Nisbo

Registriert seit: 10. Mär 2005
191 Beiträge
 
Delphi 5 Standard
 
#1

Screenshot anhand Mausposition

  Alt 16. Mär 2005, 20:09
Moin Moin

ich versuche gerade einen Screenshot anhand der Mausposition zu machen, also der start soll die Mausposition sein und das ende unten links, allerdings passt das alles nicht so richtig, zuerst hatte ich zwar den beginn an der richtigen stelle, nur hatte dann links und oben schwarze balken, jetzt habe ich es mit 2 rect versucht, aber dann kommen teilweise verzerrte bilder raus oder nur schwarz

wie muß ich die rects jetzt am besten anpassen ?

Delphi-Quellcode:
procedure ScreenShot(Bild: TBitMap);
var
  c : TCanvas;
  r,a : TRect;
  breite, oben, links, hoehe : integer;
  MausPos: TPoint;
begin
  c := TCanvas.Create;
  c.Handle := GetWindowDC(GetDesktopWindow);

  try

    GetCursorPos(MausPos);

    links := MausPos.x;
    oben := MausPos.y;
    hoehe := Screen.Height - oben;
    breite := Screen.Width - links;
  
    a := Rect(links, oben, breite, hoehe);
    r := Rect(0, 0, breite, hoehe);
    Bild.Width := breite;
    Bild.Height := hoehe;
    Bild.Canvas.CopyRect(r, c, a);
  finally
    ReleaseDC(0, c.Handle);
    c.Free;
  end;
end;
Jens
  Mit Zitat antworten Zitat
Benutzerbild von sniper_w
sniper_w

Registriert seit: 12. Dez 2004
Ort: Wien, Österriech
893 Beiträge
 
Delphi 6 Enterprise
 
#2

Re: Screenshot anhand Mausposition

  Alt 16. Mär 2005, 20:55
Und so läuft es
Delphi-Quellcode:
procedure ScreenShot(var Bild: TBitMap);
var
  Mydc : cardinal;
  MausPos: TPoint;
begin
  MyDc := GetDC(0);
  GetCursorPos(MausPos);
  Bild.PixelFormat := pf32bit;
  Bild.Width := Screen.Width - MausPos.X;
  Bild.Height := Screen.Height - MausPos.Y;
  BitBlt(Bild.Canvas.Handle,0,0,Bild.Width,Bild.Height,Mydc,MausPos.X,MausPos.Y,SRCCOPY);
  Bild.SaveToFile('c:\Pic.bmp');
  ReleaseDC(0, Mydc);
end;

procedure TForm1.Button1Click(Sender: TObject);
 var MyPic : TBitmap;
begin
 MyPic := TBitmap.Create;
 ScreenShot(MyPic);
 MyPic.Free;
end;
Katura Haris
Es (ein gutes Wort) ist wie ein guter Baum, dessen Wurzel fest ist und dessen Zweige in den Himmel reichen.
  Mit Zitat antworten Zitat
Nisbo

Registriert seit: 10. Mär 2005
191 Beiträge
 
Delphi 5 Standard
 
#3

Re: Screenshot anhand Mausposition

  Alt 17. Mär 2005, 05:07
Das ist ja aber leider nicht das was ich vorhabe, denn ich lade es ja in ein TImage
deshalb ja auch die frage wie ich die rects anpassen muß
Jens
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Screenshot anhand Mausposition

  Alt 17. Mär 2005, 07:56
und was hindert dich daran das ganze in ein TImage zu laden?
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von sniper_w
sniper_w

Registriert seit: 12. Dez 2004
Ort: Wien, Österriech
893 Beiträge
 
Delphi 6 Enterprise
 
#5

Re: Screenshot anhand Mausposition

  Alt 17. Mär 2005, 13:54
Nun ja. Wie wäre es damit:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
ScreenShot(Image1.Picure.Bitmap);
end;
Katura Haris
Es (ein gutes Wort) ist wie ein guter Baum, dessen Wurzel fest ist und dessen Zweige in den Himmel reichen.
  Mit Zitat antworten Zitat
Nisbo

Registriert seit: 10. Mär 2005
191 Beiträge
 
Delphi 5 Standard
 
#6

Re: Screenshot anhand Mausposition

  Alt 17. Mär 2005, 16:58
... das er mir für diese Zeile:

ScreenShot(Image1.Picture.BitMap);

folgenden fehler ausgibt:

Argument cant't be assigned to
Jens
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#7

Re: Screenshot anhand Mausposition

  Alt 17. Mär 2005, 17:43
wahrscheinlich is Bitmap eine property, und die können net als var-parameter mitgegeben werden (mein ich zumindes)

probier es mal so:

Delphi-Quellcode:
Temp:=TBitmap.Create;
Temp:=xxx.Bitmap;
ScreenShot(Temp);
xxx.Bitmap:=Temp;
Temp.Free;
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
Nisbo

Registriert seit: 10. Mär 2005
191 Beiträge
 
Delphi 5 Standard
 
#8

Re: Screenshot anhand Mausposition

  Alt 17. Mär 2005, 18:32
jetzt satgt er mir:

no identifier found for xxx / Temp
als was muß das deklariert werden ?

var xxx : ???
var Temp : ???

Sorry bin nicht unbedingt der fitteste

EDIT:

var Temp: TBitmap;

aber xxx ?

EDIT 2: arg denke mal das war das: Image1.Picture

Delphi-Quellcode:
procedure TForm7.Button3Click(Sender: TObject);
var Temp: TBitmap;
begin
  Form7.Visible := False;
  Sleep(1000);
  // ScreenShot(Image1.Picture.BitMap);
  Temp:=TBitmap.Create;
  Temp:=Image1.Picture.Bitmap;
  ScreenShot(Temp);
  Image1.Picture.Bitmap:=Temp;
  Temp.Free;
  Form7.Visible := True;
end;
allerdings bekomme cih dann beim compilen:

Project Editor raised exteption class 'External: SIGSEGV'.

danach dann:

Die Datei "i386.inc" wurde nicht gefunden ?
Jens
  Mit Zitat antworten Zitat
Benutzerbild von sniper_w
sniper_w

Registriert seit: 12. Dez 2004
Ort: Wien, Österriech
893 Beiträge
 
Delphi 6 Enterprise
 
#9

Re: Screenshot anhand Mausposition

  Alt 17. Mär 2005, 19:37
Zitat:
Project Editor raised exteption class 'External: SIGSEGV'.

danach dann:

Die Datei "i386.inc" wurde nicht gefunden ?
Dieser Fehler liegt irgendwo anders, aber nicht im geposteten Code.
Katura Haris
Es (ein gutes Wort) ist wie ein guter Baum, dessen Wurzel fest ist und dessen Zweige in den Himmel reichen.
  Mit Zitat antworten Zitat
Nisbo

Registriert seit: 10. Mär 2005
191 Beiträge
 
Delphi 5 Standard
 
#10

Re: Screenshot anhand Mausposition

  Alt 18. Mär 2005, 05:01
mmm OK vielleicht könnten wir dann meinen ursprungscode versuchen umzustellen so das es passt ? sitze da jetzt schon 3 Tage lang fest und irgendwann verliert man dann leider die Lust daran
Jens
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:25 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz