| Autor |
Beitrag |
Mindforce
      
Beiträge: 358
Win XP Pro / MCE, Win 98, Slax (Linux)
Delphi 07 PRO, Delphi 3+7 (mit Prdx)
|
Verfasst: Mi 03.01.07 00:11
Hi,
wie kann ich einen bestimmten Teil des Desktops in ein TImage packen, und wie könnte ich diesen Teil makieren?
Es gibt ja viele ScreenShot Programme mitdem man eine Zone makieren kann was "Fotografiert" werden soll.
Genau das möchte ich gerne machen!
Nur, wie?!
Thx!
M!ndforce
_________________ Our force; in mind.
|
|
Coder
      
Beiträge: 1383
Erhaltene Danke: 1
WinXP
D2005 PE
|
Verfasst: Mi 03.01.07 01:55
Such mal nach Screenshot und nach malen oder zeichnen auf den Desktop.
MfG
|
|
Mindforce 
      
Beiträge: 358
Win XP Pro / MCE, Win 98, Slax (Linux)
Delphi 07 PRO, Delphi 3+7 (mit Prdx)
|
Verfasst: Mi 03.01.07 22:11
Hmmmm,
ich finde nex 
_________________ Our force; in mind.
|
|
jaenicke
      
Beiträge: 19346
Erhaltene Danke: 1754
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mi 03.01.07 23:02
Also bei der Suche nach "Screenshot Desktop" habe ich z.B. diesen Thread gefunden:
www.delphi-forum.de/...t=screenshot+desktop
|
|
Mindforce 
      
Beiträge: 358
Win XP Pro / MCE, Win 98, Slax (Linux)
Delphi 07 PRO, Delphi 3+7 (mit Prdx)
|
Verfasst: Mi 03.01.07 23:17
Hi,
ich hab mir den Thread durchgelesen, kann mir aber kein Code draus mixen einen bestimmten bereich auswählen zu können und ihm zu sagen das er genau diesen Bereich fotografieren soll!
M!ndforce
_________________ Our force; in mind.
|
|
alias5000
      
Beiträge: 2145
WinXP Prof SP2, Ubuntu 9.04
C/C++(Code::Blocks, VS.NET),A51(Keil),Object Pascal(D2005PE, Turbo Delphi Explorer) C# (VS 2008 Express)
|
Verfasst: Mi 03.01.07 23:27
MrSaint hat im oben verlinkten Artikel geschrieben: | Hmm... Ich hab's aus die Schnelle damit versucht:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25:
| var WinDC, MemDC : hDC; Desktop : hBitmap; zx, zy : integer; bmp : TBitmap; begin zx := Screen.Width; zy := Screen.Height; WinDC := GetDC (GetDeskTopWindow); MemDC := CreateCompatibleDC (WinDC); Desktop := CreateCompatibleBitmap (WinDC, zx, zy); SelectObject (MemDC, Desktop); BitBlt (MemDC, 0, 0, zx, zy, WinDC, 0, 0, SRCCOPY); DeleteDC (MemDC); ReleaseDC (GetDeskTopWindow, WinDC); bmp := TBitmap.Create; try bmp.Handle := Desktop; Image1.Picture.Bitmap.Assign(bmp); finally FreeAndNil(bmp); end; end; |
Leider wird auch ein "normaler" Screenshot gemacht Vielleicht fällt mir ja irgendwann mal noch was dazu ein, muss jetzt aber rst mal weg...
MrSaint |
Und damit erhälst du ja einen Screenshot des Desktops. Jetzt musst du noch gucken, wie man auf dem Desktop eine Auswahl treffen könnte (da müsste ich jetzt auch suchen, kann da jetzt auch nichts zu sagen). Die Koordinaten kannst du dir ja merken und dann entsprechend das Bild zusammenschneiden.
Ich hoffe das hat nen Denkanstoss gebracht...
Gruß alias5000
_________________ Programmers never die, they just GOSUB without RETURN
|
|
jaenicke
      
Beiträge: 19346
Erhaltene Danke: 1754
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Do 04.01.07 00:08
Naja, was diese Programme machen ist ja, den Benutzer die Auswahl auf dem zuvor erstellten Bildschirmfoto zu machen und dabei ggf. noch die Fenster hervorzuheben.
Es gibt auch Programme, die das anders machen, aber das live zu machen... ich wüsste da nicht wie. Ich glaube da gibts was von Windows von wegen Desktop disablen, aber ich weiß nicht wie das unter XP geht und ob es überhaupt geht.
Das einfachste dürfte sein, einfach ein Bildschirmfoto mit dem obigen Code zumachen, dieses im Vollbild anzuzeigen, z.B. per Formular mit TopMost, und dann den User dort die Auswahl machen lassen. So meinte ich den Hinweis auf den anderen Thread.
|
|
|