{"id":273,"date":"2008-06-15T15:50:49","date_gmt":"2008-06-15T13:50:49","guid":{"rendered":"http:\/\/blog.m-ri.de\/?p=273"},"modified":"2008-06-13T15:58:05","modified_gmt":"2008-06-13T13:58:05","slug":"kann-man-gdi-objekte-aus-anderen-prozessen-verwenden-und-auslesen","status":"publish","type":"post","link":"http:\/\/blog.m-ri.de\/index.php\/2008\/06\/15\/kann-man-gdi-objekte-aus-anderen-prozessen-verwenden-und-auslesen\/","title":{"rendered":"Kann man GDI Objekte aus anderen Prozessen verwenden und auslesen?"},"content":{"rendered":"<p>Frage eines Regulars neulich in <em>microsoft.public.de.vc<\/em><\/p>\n<blockquote><p>Habe einen HRGN Handle von einem anderen Process.<br \/>\nDeshalb liefert GetRegionData wahrscheinlich Size 0 zur\u00fcck.<br \/>\nint iSize = ::GetRegionData((HRGN)hHandle, 0, NULL);\u00a0<br \/>\nWie kann ich GetRegionData eines anderen Processes auslesen ?<\/p><\/blockquote>\n<p>Die Antwort ist klar und eindeutig ein <strong>Nein<\/strong>!<\/p>\n<p>Zitat Feng Yuan in einem fast 7 Jahre alten <a href=\"http:\/\/groups.google.de\/group\/microsoft.public.win32.programmer.gdi\/browse_thread\/thread\/d5bed8c980fe6f30\/0ab019ede97cf150\">Thread<\/a>, den ich mir damals hinter die L\u00f6ffel geschrieben habe:<\/p>\n<blockquote><p>On Windows NT\/2000\/XP, GDI does have a system-wide GDI object table. But\u00a0certain data is stored in per-process user mode area, and the process ID of the creating process is stored in GDI object table.<br \/>\nFor every operation with a GDI object, GDI32.DLL always checks for matching\u00a0 process ID. So cross-process usage of GDI object is not allowed by design, at least for NT\/2000\/XP.<\/p><\/blockquote>\n<p>Wem das aber nicht langt, der kann diese Info auch in der MSDN nachlesen unter <a href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/ms724291.aspx\">GDI Objects<\/a>\u00a0(gleich der erste Satz):<\/p>\n<blockquote><p>GDI objects support only one handle per object. Handles to GDI objects are private to a process. That is, only the process that created the GDI object can use the object handle.<\/p><\/blockquote>\n<p>Wer also Informationen zu GDI Objekten aus anderen Prozessen ben\u00f6tigt, der muss wohl oder \u00fcbel zu DLL-Injection greifen.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Frage eines Regulars neulich in microsoft.public.de.vc Habe einen HRGN Handle von einem anderen Process. Deshalb liefert GetRegionData wahrscheinlich Size 0 zur\u00fcck. int iSize = ::GetRegionData((HRGN)hHandle, 0, NULL);\u00a0 Wie kann ich GetRegionData eines anderen Processes auslesen ? Die Antwort ist klar und eindeutig ein Nein! Zitat Feng Yuan in einem fast 7 Jahre alten Thread, den &hellip; <a href=\"http:\/\/blog.m-ri.de\/index.php\/2008\/06\/15\/kann-man-gdi-objekte-aus-anderen-prozessen-verwenden-und-auslesen\/\" class=\"more-link\"><span class=\"screen-reader-text\">\u201eKann man GDI Objekte aus anderen Prozessen verwenden und auslesen?\u201c <\/span>weiterlesen<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[3,2],"tags":[117,61],"class_list":["post-273","post","type-post","status-publish","format-standard","hentry","category-programmieren","category-windows-api","tag-gdi","tag-winapi"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/posts\/273","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/comments?post=273"}],"version-history":[{"count":0,"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/posts\/273\/revisions"}],"wp:attachment":[{"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/media?parent=273"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/categories?post=273"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/tags?post=273"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}