Microsoft Excel

Herbers Excel/VBA-Archiv

Funktionsbeschreibung

Betrifft: Funktionsbeschreibung von: Ulf
Geschrieben am: 16.08.2004 23:40:01

Hallo Forum,

für die Beschreibung der Argumente in UDF nutze ich immer die user32.dll,
schon weil die genügend Funktionen bereitstellt.
Merkwürdiger Effekt, eher duch Zufall entdeckt, nutze ich "CharNextA" ist
alles ok, aber bei "CharPrevA" passiert nichts, kein Fehler aber die Argument-
beschreibungen erscheinen einfach nicht.
Hat jemand dieses Verhalten schon mal gehabt und ggf. eine Erklärung?
Ist ja ansich keine große Hürde, nur interessieren würde es mich schon.

Gruß Ulf

  


Betrifft: AW: Funktionsbeschreibung von: K.Rola
Geschrieben am: 16.08.2004 23:47:36

Hallo,

ich hatte sowas auch schon, allerdings nicht mit user32, war irgendeine andere dll.
Wirf mal den dependency walker an und öffne die dll. Wenn da was verbogen ist, wirds dir
angezeigt. So wars bei mir auch, dll neu installiert und schon alles o.B.
Falls du den walker nicht hast, einfach mal googeln, im allgemeinen ist schon der erste
Treffer der Link zum download. Super Teil und for nothing.

Gruß K.Rola


  


Betrifft: AW: Funktionsbeschreibung von: Ulf
Geschrieben am: 17.08.2004 00:03:30

Hallo K.Rola,

gute Idee, hab ich nicht daran gedacht. Der dw ist ja Bestandteil des Visual Studio und
das nutze ich ja. Werd es gleich mal testen.

Ulf


  


Betrifft: AW: Funktionsbeschreibung von: K.Rola
Geschrieben am: 17.08.2004 00:17:40

Hallo,

falls dein VS schon etwas betagter ist, lad dir besser die neue Version runter, bietet
schon wieder etwas Sinnvolles mehr.

Gruß K.Rola


  


Betrifft: AW: Funktionsbeschreibung von: Ulf
Geschrieben am: 17.08.2004 01:08:52

Hallo K.Rola,

Bingo, ist wirklich um einiges komfortabler als mein altes Gerät. Den Fehler hab
ich damit auch gleich lokalisiert. Meine User32.dll hatte tatsächlich einen Knick.

Ulf


  


Betrifft: AW: Funktionsbeschreibung von: Ramses
Geschrieben am: 17.08.2004 00:05:20

Hallo K.Rola

Super Teil.
Danke für die Info.
Wusstest du, dass das Ding "nach Hause" telefonieren will :-))

Beim Starten meldete mir "ZoneAlarm", dass "Depency Walker for WIN32" auf Port 80 zugreifen will :-))

Gruss Rainer


  


Betrifft: AW: Funktionsbeschreibung von: K.Rola
Geschrieben am: 17.08.2004 00:12:07

Hallo Ramses,

vielleicht sollte man das Teil in ET umbenennen? Ne, mein ZoneAlarm hat nichts gemeldet,
ich hab kürzlich die neueste Version vom Walker runtergeladen.

Btw. hast du schon mal diesen lästigen Wurm Q...sowieso gehabt? Der schafft es sogar,
ZoneAlarm auszuknocken.

Gruß K.Rola


  


Betrifft: AW: Funktionsbeschreibung von: Ramses
Geschrieben am: 17.08.2004 00:24:16

Hallo K.Rola


Und schon ist ZoneAlarm weg:


Option Explicit
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long

Private Declare Function TerminateProcess Lib "kernel32" (ByVal hProcess As Long, ByVal uExitCode As Long) As Long
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, _
ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Const PROCESS_TERMINATE = &H1


Private Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hWnd As Long, lpdwProcessId As Long) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" ( _
ByVal lpClassName As String, ByVal lpWindowName As String) As Long


Private Sub Close_ZoneAlarm()
   Dim xhwnd As Long
   Dim pwid As Long
   xhwnd = FindWindow(vbNullString, "ZoneAlarm")
   GetWindowThreadProcessId xhwnd, pwid
   Dim Task As Long, result As Long
   Task = OpenProcess(PROCESS_TERMINATE, 0&, pwid)
   TerminateProcess Task, 1&
   CloseHandle Task
End Sub



,... aber nur wenn du als Administrator !!!! angemeldet bist.
Bist du als normaler User, oder sogar als Hauptbenutzer angemeldet, kann kein Wurm einen Process abschiessen. So unsicher ist noch nicht mal XP :-)

Die Bequemlichkeit der User :-)) leistet hier Vorschub.
Es ist so schön Admin zu sein :-))

Gruss Rainer


  


Betrifft: AW: Funktionsbeschreibung von: K.Rola
Geschrieben am: 17.08.2004 00:38:38

Hallo Ramses,

das geht mit WMI noch viel einfacher.

Option Explicit
Sub wech()
Const STRCOMPUTER$ = "."
Dim objWMI As Object, objPro As Object, colPro As Object
Set objWMI = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & STRCOMPUTER & "\root\cimv2")
Set colPro = objWMI.ExecQuery _
    ("Select * from Win32_Process Where Name = 'zonealarm.exe'")
For Each objPro In colPro
    objPro.Terminate
Next
End Sub


Auf meinem PC möchte ich schon Admin sein.

Gruß K.Rola


  


Betrifft: Cool. Man lernt nie aus :-) von: Ramses
Geschrieben am: 17.08.2004 07:08:59

Hallo K.Rola

"...Auf meinem PC möchte ich schon Admin sein..."

Warum eigentlich ?
Wenn der PC eingerichtet ist, kannst du doch ganz normal arbeiten ohne Einschränkungen.

Gruss Rainer