vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevDataGrid - Gönnen Sie Ihrem SQL-Kommando diesen krönenden Abschluß!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Fortgeschrittene Programmierung
Re: Kidnappen wir doch glatt mit der VBEx32.DLL  
Autor: ModeratorDieter (Moderator)
Datum: 05.07.02 11:39

Hi Elwood,

hmmm.... hast Recht. Ich habe den Tipp mal eben etwas erweitert.

Der Code sieht jetzt wie folgt aus:
<code><font color=#000099>Option</font> <font color=#000099>Explicit</font>
 
<font color=green>' zunächst die benötigten API-Deklarationen</font>
<font color=#000099>Private</font> <font color=#000099>Declare</font> <font _
  color=#000099>Function</font> GetWindowThreadProcessId <font _
  color=#000099>Lib</font> _
  "user32" (<font color=#000099>ByVal</font> hWnd <font color=#000099>As</font> _
  <font color=#000099>Long</font>, lpdwProcessId <font color=#000099>As</font> _
  <font color=#000099>Long</font>) _
  <font color=#000099>As</font> <font color=#000099>Long</font>
 
<font color=#000099>Private</font> <font color=#000099>Declare</font> <font _
  color=#000099>Function</font> FindWindow <font color=#000099>Lib</font> _
  "user32" _
  <font color=#000099>Alias</font> "FindWindowA" (<font _
  color=#000099>ByVal</font> lpClassName <font color=#000099>As</font> <font _
  color=#000099>String</font>, _
  <font color=#000099>ByVal</font> lpWindowName <font color=#000099>As</font> _
  <font color=#000099>String</font>) <font color=#000099>As</font> <font _
  color=#000099>Long</font>
 
<font color=#000099>Private</font> <font color=#000099>Declare</font> <font _
  color=#000099>Function</font> GetWindow <font color=#000099>Lib</font> _
  "user32" _
  (<font color=#000099>ByVal</font> hWnd <font color=#000099>As</font> <font _
  color=#000099>Long</font>, <font color=#000099>ByVal</font> wCmd <font _
  color=#000099>As</font> <font color=#000099>Long</font>) <font _
  color=#000099>As</font> <font color=#000099>Long</font>
 
<font color=#000099>Private</font> <font color=#000099>Declare</font> <font _
  color=#000099>Function</font> GetParent <font color=#000099>Lib</font> _
  "user32" _
  (<font color=#000099>ByVal</font> hWnd <font color=#000099>As</font> <font _
  color=#000099>Long</font>) <font color=#000099>As</font> <font _
  color=#000099>Long</font>
 
<font color=#000099>Private</font> <font color=#000099>Const</font> GW_HWNDNEXT _
  = 2
 
<font color=green>' benötigte API-Deklaration</font>
<font color=#000099>Private</font> <font color=#000099>Declare</font> <font _
  color=#000099>Function</font> WaitForSingleObject <font _
  color=#000099>Lib</font> _
  "kernel32" ( _
  <font color=#000099>ByVal</font> hHandle <font color=#000099>As</font> <font _
  color=#000099>Long</font>, _
  <font color=#000099>ByVal</font> dwMilliseconds <font color=#000099>As</font> _
  <font color=#000099>Long</font>) <font color=#000099>As</font> <font _
  color=#000099>Long</font>
 
<font color=green>' benötigte VBEX-Funktion</font>
<font color=#000099>Private</font> <font color=#000099>Declare</font> <font _
  color=#000099>Sub</font> VBEX_MakeChild <font color=#000099>Lib</font> _
  "vbex32.dll" _
  <font color=#000099>Alias</font> "VBMAKECHILD" ( _
  <font color=#000099>ByVal</font> zhWnd <font color=#000099>As</font> <font _
  color=#000099>Long</font>, _
  <font color=#000099>ByVal</font> ownerhWnd <font color=#000099>As</font> _
  <font color=#000099>Long</font>, _
  <font color=#000099>ByVal</font> x <font color=#000099>As</font> <font _
  color=#000099>Long</font>, <font color=#000099>ByVal</font> y <font _
  color=#000099>As</font> <font color=#000099>Long</font>)
<font color=green>' Ewartet wird die Zeitangabe in Millisekunden!</font>
<font color=green>' z.B. 1000 für 1 Sekunde</font>
 
<font color=#000099>Public</font> <font color=#000099>Function</font> Wait( _
  <font color=#000099>ByVal</font> mSek <font color=#000099>As</font> <font _
  color=#000099>Long</font>)
  WaitForSingleObject -1, mSek
<font color=#000099>End</font> <font color=#000099>Function</font>
 
 
<font color=green>' Anwendung starten und Fenster-Handle zurückgeben</font>
<font color=#000099>Private</font> <font color=#000099>Function</font> _
  Shell2hWnd(<font color=#000099>ByVal</font> sFilename <font _
  color=#000099>As</font> <font color=#000099>String</font>, _
  Optional <font color=#000099>ByVal</font> Mode <font color=#000099>As</font> _
  VbAppWinStyle)
 
  <font color=#000099>Dim</font> lngAppTaskID <font color=#000099>As</font> _
    <font color=#000099>Long</font>
  <font color=#000099>Dim</font> lngProcTaskID <font color=#000099>As</font> _
  <font color=#000099>Long</font>
  <font color=#000099>Dim</font> lnghWnd <font color=#000099>As</font> <font _
  color=#000099>Long</font>
 
  <font color=green>' TaskID der zu startenden Anwendung</font>
  <font color=#000099>Dim</font> lTime <font color=#000099>As</font> <font _
    color=#000099>Long</font>
  lTime = Int(Timer)
  <font color=#000099>Do</font>
    lngAppTaskID = Shell(sFilename, Mode)
  <font color=#000099>Loop</font> <font color=#000099>Until</font> lngAppTaskID _
    <> 0 <font color=#000099>Or</font> Int(Timer) - lTime > 2
 
  <font color=green>' Anwendung konnte nicht gestartet werden</font>
  <font color=#000099>If</font> lngAppTaskID = 0 <font _
    color=#000099>Then</font> <font color=#000099>Exit</font> <font _
    color=#000099>Function</font>
 
  <font color=green>' Jetzt noch kurz warten</font>
  DoEvents
  Wait 25
 
  <font color=green>' Fenster durchlaufen und nach Process-ID suchen</font>
  lnghWnd = FindWindow(vbNullString, vbNullString)
  <font color=#000099>Do</font> <font color=#000099>While</font> lnghWnd <> 0
 
    <font color=green>' Existiert kein Eltern-Fenster, dann ProcssID</font>
    <font color=green>' ermitteln und mit TaskID vergleichen</font>
    <font color=#000099>If</font> GetParent(lnghWnd) = 0 <font _
      color=#000099>Then</font>
      GetWindowThreadProcessId lnghWnd, lngProcTaskID
 
      <font color=green>' Handelt es sich um die gesuchte TaskID?</font>
      <font color=#000099>If</font> lngProcTaskID = lngAppTaskID <font _
        color=#000099>Then</font>
        <font color=green>' Fenster-Handle zurückgeben und Schleife</font>
        <font color=green>' verlassen!</font>
        Shell2hWnd = lnghWnd
        <font color=#000099>Exit</font> <font color=#000099>Do</font>
      <font color=#000099>End</font> <font color=#000099>If</font>
 
    <font color=#000099>End</font> <font color=#000099>If</font>
 
    <font color=green>' Nächstes Fenster</font>
    lnghWnd = GetWindow(lnghWnd, GW_HWNDNEXT)
  <font color=#000099>Loop</font>
<font color=#000099>End</font> <font color=#000099>Function</font>
 
 
 
<font color=#000099>Private</font> <font color=#000099>Sub</font> _
  Command1_Click()
  <font color=#000099>Dim</font> zhWnd <font color=#000099>As</font> <font _
  color=#000099>Long</font>
 
  <font color=green>' DOS-Box starten und kidnappen</font>
  zhWnd = Shell2hWnd(Environ$("COMSPEC"), vbNormalFocus)
 
  VBEX_MakeChild zhWnd, Me.hWnd, 0, 0
<font color=#000099>End</font> <font color=#000099>Sub</font></code>
Cu
Dieter
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
DosBox lokalisieren96Ansi05.07.02 08:36
Kidnappen wir doch glatt mit der VBEx32.DLL 494ModeratorDieter05.07.02 09:19
Re: Kidnappen wir doch glatt mit der VBEx32.DLL 245Elwood05.07.02 11:13
Re: Kidnappen wir doch glatt mit der VBEx32.DLL 262ModeratorDieter05.07.02 11:39
Jetzt klappts, aber....297Elwood05.07.02 11:51
...lässt sich wie folgt lösen...304ModeratorDieter05.07.02 12:50
Re: ...lässt sich wie folgt lösen...256Elwood05.07.02 13:04
Re: ...lässt sich wie folgt lösen...68Art05.07.02 20:04
Re: ...lässt sich wie folgt lösen...231ModeratorDieter05.07.02 20:34

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel