vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Schützen Sie Ihre Software vor Software-Piraterie - mit sevLock 1.0 DLL!  
 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
Funktion in einer zweiten Exe aufrufen (GE) Teil 2 
Autor: Guido Eisenbeis
Datum: 28.02.06 01:53

'  In einem Modul (im Sender-Projekt)
 
Option Explicit
 
 
' ===================================================================
'
'     ChildWindows ermitteln per FindWindow
'
'
' Autor:
' Guido Eisenbeis Software (GES), guidoeisenbeis@web.de, 2006-02-04
' ===================================================================
 
 
Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" _
   (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
 
Private Declare Function SetWindowText Lib "user32" Alias "SetWindowTextA" _
   (ByVal hwnd As Long, ByVal lpString As String) As Long
 
 
Private Declare Function GetWindow Lib "user32" _
   (ByVal hwnd As Long, ByVal wCmd As Long) As Long
 
Private Const GW_CHILD = 5
Private Const GW_HWNDNEXT = 2
 
Private Declare Function GetClassName Lib "user32" Alias "GetClassNameA" _
   (ByVal hwnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) _
   As Long
 
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
   (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
 
 
Public Function FindChildWindow(ByVal sParentWinTitel As String, _
                                ByVal sChildWinText As String) As Long
 
   Dim lParentHwnd As Long
   Dim lChildHwnd As Long
   Dim sClasName As String
   Dim sWinText As String
 
   ' Handle der Taskbar ermitteln
   lParentHwnd = FindWindow(vbNullString, sParentWinTitel)
 
   ' erstes ChildWindow suchen
   lChildHwnd = GetWindow(lParentHwnd, GW_CHILD)
 
   Do While (lChildHwnd <> 0)
 
      ' Klassenname ermitteln
      sClasName = GetTheClassName(lChildHwnd)
 
      ' WindowText ermitteln
      sWinText = GetTheWindowText(lChildHwnd)
 
      If (sWinText = sChildWinText) Then
         FindChildWindow = lChildHwnd
         Exit Do
      End If
 
'      ' Handle, ClassName und WindowText ausgeben
'      Debug.Print "Handle: " & lChildHwnd & vbTab & vbTab & _
'                  "  ClassName: " & sClasName & vbTab & vbTab & vbTab & _
'                  "  WindowText: " & sWinText
 
      ' nächstes ChildWindow suchen
      lChildHwnd = GetWindow(lChildHwnd, GW_HWNDNEXT)
   Loop
End Function
 
' Routine zum Ermitteln des Klassennamens
Private Function GetTheClassName(ByVal lHwnd As Long) As String
 
   Dim sClasName As String
 
   ' Create a buffer
   sClasName = String(255, Chr$(0))
 
   ' Get the window's classname
   Call GetClassName(lHwnd, sClasName, 255)
 
   ' Strip the rest of buffer
   sClasName = Left$(sClasName, InStr(sClasName, Chr$(0)) - 1)
 
   GetTheClassName = sClasName
End Function
 
' Routine zum Ermitteln des Fenstertextes
Private Function GetTheWindowText(ByVal lHwnd As Long) As String
 
   Dim sWinText As String
 
   ' Create a buffer
   sWinText = String(255, Chr$(0))
 
   ' Get the window's text
   GetWindowText lHwnd, sWinText, 255
 
   ' Strip the rest of buffer
   sWinText = Left$(sWinText, InStr(sWinText, Chr$(0)) - 1)
 
   GetTheWindowText = sWinText
End Function
Das Empfänger Projekt musst du jetzt zur Exe kompilieren und starten. Den Sender kannst du als Exe oder in der IDE benutzen. Auf diese Weise kannst du beliebig viele Funktionen in deiner Exe aufrufen.

Falls ich in der Kürze was vergessen habe,sag bescheid !
Falls es zu deiner Zufriedenheit funktioniert, sag Bescheid ! *grins*

PS: Vielleicht sollte ich diesen Code als Tipp einreichen !?

Guido.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Aufruf einer Funktion in einer EXE Datei1.493Andreas Nagel23.02.06 00:47
Re: Aufruf einer Funktion in einer EXE Datei1.034vbtricks23.02.06 10:39
Re: Aufruf einer Funktion in einer EXE Datei998Andreas Nagel23.02.06 14:49
Re: Aufruf einer Funktion in einer EXE Datei1.057Rumsi23.02.06 17:06
Re: Aufruf einer Funktion in einer EXE Datei1.120Rumsi23.02.06 17:08
Re: Aufruf einer Funktion in einer EXE Datei1.079Andreas Nagel23.02.06 20:14
Re: Aufruf einer Funktion in einer EXE Datei1.004Rumsi24.02.06 16:52
Re: Aufruf einer Funktion in einer EXE Datei985Rumsi24.02.06 18:47
Re: Aufruf einer Funktion in einer EXE Datei1.095Andreas Nagel26.02.06 02:53
Re: Aufruf einer Funktion in einer EXE Datei974Rumsi26.02.06 11:23
Re: Aufruf einer Funktion in einer EXE Datei1.029Andreas Nagel26.02.06 14:54
Re: Aufruf einer Funktion in einer EXE Datei998Rumsi26.02.06 15:41
Re: Aufruf einer Funktion in einer EXE Datei1.076Wolf mit Schnul...24.02.06 19:23
Funktion in einer zweiten Exe aufrufen (GE) Teil 11.174Guido Eisenbeis28.02.06 01:52
Funktion in einer zweiten Exe aufrufen (GE) Teil 21.075Guido Eisenbeis28.02.06 01:53
Re: Funktion in einer zweiten Exe aufrufen (GE) Teil 21.051ModeratorDieter01.03.06 10:45
Tip daraus machen995Guido Eisenbeis01.03.06 22:42
Re: Funktion in einer zweiten Exe aufrufen (GE) Teil 21.028Andreas Nagel01.03.06 14:56
Re: Funktion in einer zweiten Exe aufrufen (GE) Teil 21.008Guido Eisenbeis02.03.06 22:37

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