Προς το περιεχόμενο

Visual basic kai kernel32.dll


lidia

Προτεινόμενες αναρτήσεις

Δημοσ.

paidia kalispera!arxisa na douleuo ligo ta windows apis kai brika mia function tin opoia prospathisa na doulepso.ayti einai:

>
Declare Function RegisterServiceProcess Lib "kernel32" (ByVal dwProcessID As Long, ByVal dwType As Long) As Long

afou tin dilosa eftiaksa ena sub pou na tin xrisimopoiei!

otan etreksa to programma mou bgike to eksis minima:

Can't find DLL entry point RegNotifyChangeKeyValue in kernel32

 

meta mou egine to idio kai se alles api!exo doulepsei alles api kai douleuoyn mia xara!

mipos kserete ti mporei na ftaiei??

Δημοσ.

Δυστυχώς δεν μπορώ να σε βοηθήσω καθώς δεν ασχολούμαι καθόλου με Visual Basic (προγραμματίζω σε C/C++, Assembly, Win32s API) άρα δεν μπορώ να σε καθοδηγήσω στον τρόπο που ζητάμε ένα exported function μιας DLL :(

 

Εντούτοις βλέποντας εδώ http://www.vb-helper.com/howto_hide_from_ctlaltdel.html απο ότι λέει η ρουτίνα δεν υπάρχει στα NT (2000 & XP), μάλιστα και εγώ δεν την βρήκα στα export της συγκεκριμένης DLL οπότε.. ~ περίμενα ότι θα υπήρχε ακόμα έστω και ανενεργή (dummy function) στα NT/2000/XP (που άλλωστε ποτέ δεν την υποστήριζαν) αλλά όχι ότι δεν θα υπάρχει καθόλου καθώς κάποιες κακογραμμένες εφαρμογές που θεωρούσαν δεδομένη την ύπαρξη της (καλώντας την από .lib αρχείο) απλά δεν θα δουλεύανε στα NT/2000/XP (τέλος πάντων, αυτό «ακαδημαϊκά»).

 

Υ.Γ.

Γενικά αν μιλάμε για «περίεργες» ρουτίνες, εξαρτάται από κάθε νέα έκδοση Windows αν θα υπάρχουν ή όχι ή τι παραμέτρους θα ζητάνε, υπάρχει ένας ολόκληρος μηχανισμός για να μην μπορείς να καλέσεις ορισμένες core ρουτίνες των Windows (προστέθηκε μετά την κυκλοφορία των ’95 –ως αντίμετρα για κάποιους..- και πάω στοίχημα πως μας συντροφεύει μέχρι σήμερα..)

Δημοσ.

den xerw ean o parakatw kwdikas se boithisei, alla deixnei ton tropo na kaneis load mia exported function enos dll dynamic.

auto simainei pws to programma sou den tha kanei static loading tin function me apotelesma ean to trexeis se allo windowsOS na mhn douleuei, aplos prostheteis ena check gia na elenxei se pia ekdosi twn windows to programma trexei kai analogos na trexei ton analogo kwdika px: if OS=win98 then else ktl

 

>
This function will be called like: 
sFileName = 'ZSSGL.EXE' 
sCRC = MyCRC32FileCheck(sFileName) 

Public Declare Function GetProcAddress Lib "kernel32" (ByVal hModule As Long, ByVal lpProcName As String) As Long 

Public Declare Function LoadLibrary Lib "kernel32" Alias "LoadLibraryA" (ByVal lpLibFileName As String) As Long 

Public Declare Function FreeLibrary Lib "kernel32" (ByVal hLibModule As Long) As Long 

Function MyCRC32FileCheck(ByVal sFileName As String) As String 
' Function Prototype 
Declare Function CRC32FileCheck Lib "ZSSGCRC.DLL" (ByVal sFileName As String) As String 
Dim hMod As Long ' module handle 
Dim lpfn As Long ' reg/unreg function address 
Dim fSuccess As Boolean ' if things worked 
Dim sCRCValue As String * 8 ' 8 byte hex CRC value 
Dim sDLLName As String ' DLL Name 
Dim sFileNameParm As String * 255 ' File Name to get CRC value 

 sFileNameParm = sFileName 
 sDLLName = 'ZSSGCRC.DLL' 

' Load the CRC File Check function into memory 
 hMod = LoadLibrary(sDLLName) 

' Get the specified function's address 
 lpfn = GetProcAddress(hMod, "CRC32FileCheck") 

' If we got a function address... 
 If lpfn Then 
  sCRCValue = CRC32FileCheck(sFileNameParm) 
 fSuccess = True 
End If ' lpfn 

' Free CRC check dll if we loaded it. 
 If hMod Then 
  Call FreeLibrary(hMod) 

 If fSuccess Then 
  MyCRC32FileCheck = sCRCValue 
Else 
  MyCRC32FileCheck = "99999999" 
 End If 

End Function 

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...