AGB  ·  Datenschutz  ·  Impressum  







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

nur weiße screenshotes

Ein Thema von Harry M. · begonnen am 17. Apr 2005 · letzter Beitrag vom 19. Apr 2005
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Harry M.
Harry M.

Registriert seit: 29. Okt 2004
Ort: Halle
462 Beiträge
 
#1

nur weiße screenshotes

  Alt 17. Apr 2005, 09:52
ich habe mir nen tool gebaut, das screenshots macht... aber nur weiße. am code kann es eigendlich nicht liegen da ich diesen schon mehrfach verwendet habe... und das problem tritt auch nicht auf meinem rechner auf sondern auf den eines freundes welcher das tool haben wollte. ich habe den code auch schon durch anderen ersetzt. aber das problem bleibt. auf meinem rechner läuft alles wunderbar. woran könnte das liegen das verwendete betriebssystem ist das gleiche.
Harry
Gruß Harry
www.H-Soft.info
  Mit Zitat antworten Zitat
Benutzerbild von Airblader
Airblader

Registriert seit: 29. Okt 2004
Ort: Geislingen an der Steige
742 Beiträge
 
#2

Re: nur weiße screenshotes

  Alt 17. Apr 2005, 10:19
Meine Glaskugel ist mir vorhin leider rutnergefallen, könntest du also auch mal ein bisschen Code zeigen?

air
Ingo Bürk
Es nimmt der Augenblick, was Jahre geben.

Johann Wolfgang von Goethe
  Mit Zitat antworten Zitat
Benutzerbild von Harry M.
Harry M.

Registriert seit: 29. Okt 2004
Ort: Halle
462 Beiträge
 
#3

Re: nur weiße screenshotes

  Alt 17. Apr 2005, 10:24
nimm meine glaskugel...
*g

Delphi-Quellcode:
// procedure zum anlegen des screenshotes
procedure ScreenCapture(Bmp: TBitmap);
var
  DeskWnd: HWnd;
  DeskDC: HDC;
  DeskCv: TCanvas;
  R: TRect;
  W, H: Integer;
begin
  if Bmp = nil then Exit;
  DeskWnd := GetDesktopWindow;
  DeskDC := GetWindowDC(DeskWnd);
  DeskCv := TCanvas.Create;
  DeskCv.Handle := DeskDC;
  W := Screen.Width;
  H := Screen.Height;
  R := Bounds(0, 0, W, H);
  try
    Bmp.HandleType := bmDIB;
    Bmp.PixelFormat := pf24Bit;
    Bmp.Width := W;
    Bmp.Height := H;
    Bmp.Canvas.CopyMode := cmSrcCopy;
    Bmp.Canvas.CopyRect(R, DeskCv, R);
  finally
    DeskCv.Free;
    ReleaseDC(DeskWnd, DeskDC);
  end;
end;

// zum kovertieren in jpg
function setJPGFileName(fbmp: string):string;
var
  I : integer;
begin
  s := ExtractFileName(fbmp);
  for i := 1 to 3 do Delete(s,Length(s),1);
  result := s + 'JPG'
end;

// screenshot machen
self.Image1.Picture.Bitmap:=TBitmap.Create;
ScreenCapture(self.Image1.Picture.Bitmap);

// und kovertieren
    Try
    pic := TImage.Create(nil);
    //pic.Picture.LoadFromFile('Temp.bmp');
    pic.Picture := Image1.Picture;
    with TJPEGImage.Create do begin
      Performance := jpBestQuality;
      CompressionQuality := 20;
      Assign(pic.Picture.Graphic);
      //fNameJPG := setJPGFileName('Temp.bmp');
      SaveToFile('Temp.jpg');
      Free
    end;
    except; end;
    pic.Free;
wie gesagt auf meinem rechner läuft alles wunderbar.
Harry
Gruß Harry
www.H-Soft.info
  Mit Zitat antworten Zitat
Benutzerbild von Airblader
Airblader

Registriert seit: 29. Okt 2004
Ort: Geislingen an der Steige
742 Beiträge
 
#4

Re: nur weiße screenshotes

  Alt 17. Apr 2005, 11:10
Sicher dasses läuft?
Da ist doch ein Fehler nachm andern drin...das sollte nichmal kompiliert werden können.

zum Beispiel: wo deklarierst du "s"?

und für den dateinamen gibts es imho noch ChangeFileExt

air
Ingo Bürk
Es nimmt der Augenblick, was Jahre geben.

Johann Wolfgang von Goethe
  Mit Zitat antworten Zitat
Benutzerbild von Harry M.
Harry M.

Registriert seit: 29. Okt 2004
Ort: Halle
462 Beiträge
 
#5

Re: nur weiße screenshotes

  Alt 17. Apr 2005, 11:13
na klar bin ich sicher das es läuft. nur um den ganzen code hier vorzustellen ist er zu umfangreich. das ist das wichtigste und wie gesagt ich habe den code auch schon durch anderen erstezt...
Harry
Gruß Harry
www.H-Soft.info
  Mit Zitat antworten Zitat
Benutzerbild von Assun
Assun

Registriert seit: 3. Feb 2005
Ort: Hilzingen am Bodensee
469 Beiträge
 
Delphi 2005 Personal
 
#6

Re: nur weiße screenshotes

  Alt 17. Apr 2005, 11:38
nimm den Code :

Delphi-Quellcode:
  
public
Bmp : TBitmap;
Jpg : TJpegImage;
end;
[..]

Delphi-Quellcode:
function GetCursorInfo2: TCursorInfo;
var
hWindow: HWND;
pt: TPoint;
pIconInfo: TIconInfo;
dwThreadID, dwCurrentThreadID: DWORD;
begin
Result.hCursor := 0;
ZeroMemory(@Result, SizeOf(Result));
// Find out which window owns the cursor
if GetCursorPos(pt) then
begin
   Result.ptScreenPos := pt;
   hWindow := WindowFromPoint(pt);
   if IsWindow(hWindow) then
   begin
     // Get the thread ID for the cursor owner.
     dwThreadID := GetWindowThreadProcessId(hWindow, nil);

     // Get the thread ID for the current thread
     dwCurrentThreadID := GetCurrentThreadId;

     // If the cursor owner is not us then we must attach to
     // the other thread in so that we can use GetCursor() to
     // return the correct hCursor
     if (dwCurrentThreadID <> dwThreadID) then
     begin
       if AttachThreadInput(dwCurrentThreadID, dwThreadID, True) then
       begin
         // Get the handle to the cursor
         Result.hCursor := GetCursor;
         AttachThreadInput(dwCurrentThreadID, dwThreadID, False);
       end;
     end
     else
     begin
       Result.hCursor := GetCursor;
     end;
   end;
end;
end;

// 2. Capture the screen
function CaptureScreen: TBitmap;
var
DC: HDC;
ABitmap: TBitmap;
MyCursor: TIcon;
CursorInfo: TCursorInfo;
IconInfo: TIconInfo;
begin
// Capture the Desktop screen
DC := GetDC(GetDesktopWindow);
ABitmap := TBitmap.Create;
try
   ABitmap.Width := GetDeviceCaps(DC, HORZRES);
   ABitmap.Height := GetDeviceCaps(DC, VERTRES);
   // BitBlt on our bitmap
   BitBlt(ABitmap.Canvas.Handle,
     0,
     0,
     ABitmap.Width,
     ABitmap.Height,
     DC,
     0,
     0,
     SRCCOPY);
   // Create temp. Icon
   MyCursor := TIcon.Create;
   try
     // Retrieve Cursor info
     CursorInfo := GetCursorInfo2;
     if CursorInfo.hCursor <> 0 then
     begin
       MyCursor.Handle := CursorInfo.hCursor;
       // Get Hotspot information
       GetIconInfo(CursorInfo.hCursor, IconInfo);
       // Draw the Cursor on our bitmap
       ABitmap.Canvas.Draw(CursorInfo.ptScreenPos.X - IconInfo.xHotspot,
                           CursorInfo.ptScreenPos.Y - IconInfo.yHotspot, MyCursor);
     end;
   finally
     // Clean up
     MyCursor.ReleaseHandle;
     MyCursor.Free;
   end;
finally
   ReleaseDC(GetDesktopWindow, DC);
end;
Result := ABitmap;
end;

procedure SaveAsJpeg(const Filename: String; Quality: TJPEGQualityRange=100);
var
 Bmp: TBitmap;
 Jpg: TJpegImage;
begin
Bmp := TBitmap.Create;
Jpg := TJpegImage.Create;
try
  Bmp.Assign(CaptureScreen);
  Jpg.CompressionQuality:=Quality;
  Jpg.Assign(Bmp);
  Jpg.SaveToFile(ChangeFileExt(Filename, '.jpg' ));
finally
  Jpg.Free;
  Bmp.Free;
end;
end;
PS : Sehe gerade, dass herbei auch noch der Mauszeiger drauf ist. hoffe das macht nix

mfg,

Assun
Sebastian Dietrich
http://Assun.de - bald komplett überarbeitet
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#7

Re: nur weiße screenshotes

  Alt 17. Apr 2005, 11:48
Zitat von Assun:
nimm den Code :...
Und wo kommt der her?
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von Harry M.
Harry M.

Registriert seit: 29. Okt 2004
Ort: Halle
462 Beiträge
 
#8

Re: nur weiße screenshotes

  Alt 17. Apr 2005, 12:35
den code check ich etwas später... wenn da der maus zeiger drauf ist... ist das super! und wer so feine functionen schreibt würde mich auch interessieren
Harry
Gruß Harry
www.H-Soft.info
  Mit Zitat antworten Zitat
Benutzerbild von Assun
Assun

Registriert seit: 3. Feb 2005
Ort: Hilzingen am Bodensee
469 Beiträge
 
Delphi 2005 Personal
 
#9

Re: nur weiße screenshotes

  Alt 17. Apr 2005, 19:40
ich leider nicht
Sebastian Dietrich
http://Assun.de - bald komplett überarbeitet
  Mit Zitat antworten Zitat
BenjaminH

Registriert seit: 14. Okt 2004
Ort: Freiburg im Breisgau
713 Beiträge
 
Turbo Delphi für Win32
 
#10

Re: nur weiße screenshotes

  Alt 17. Apr 2005, 20:08
Ich glaube, das ist von den Schweizern: http://www.swissdelphicenter.ch/de/showcode.php?id=1396
Benjamin
  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 19:37 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