Neues Projekt anlegen, WIN_MAIN Fesnter erstellen, und folgender Code in End of initialization of WIN_Main kopieren:
Code: Alles auswählen
WNDCLASSA is Structure //40
style is unsigned int //Type C : UINT
lpfnWndProc is int //Type C : WNDPROC
cbClsExtra is int //Type C : int
cbWndExtra is int //Type C : int
hInstance is system int //Type C : HINSTANCE
hIcon is system int //Type C : HICON
hCursor is system int //Type C : HCURSOR
hbrBackground is system int //Type C : HBRUSH
lpszMenuName is system int //Type C : LPCSTR
lpszClassName is system int //Type C : LPCSTR
END
strWndClass is WNDCLASSA
MyTrace("Dim: ", Dimension(strWndClass))
sErr is string
FunctionReturn is boolean // C type:BOOL
hAppInstance is system int // C type:HINSTANCE
hWinMain is system int //
hAppInstanceAPI is system int
lpClassName is system int // C type:LPCSTR, this is the address of a string, you also have the ability to specify a string directly
lpWndClass is system int // Pointer on structure WNDCLASSA
sClassName is ASCIIZ string on 254 // = "WinDevObject "
sClassName1 is ASCIIZ string on 254
nMaxCount is int = 254 // C type:int
sTitle is string
sName is string=ExeInfo(exeName)
//hi= SysInstance(sName)
lpClassName = &sClassName
lpWndClass = &strWndClass
IF LoadDLL("user32.dll") = 0 THEN
ErrorInfo(errCode)
ErrorInfo(errMessage)
END
// hAppInstance= Instance()
hWinMain=Handle() // Handle vom Main Fenster holen
hAppInstance= SysInstance(sName)
hAppInstanceAPI = API("USER32","GetWindowLongA",hWinMain,(-6)) // #define GWL_HINSTANCE (-6)
MyTrace("Handle: ", hAppInstance)
sTitle=SysWinTitle(hWinMain) // Mit Titel prüfen ob richtiges Handle
MyTrace("Fenstertitel: ", sTitle)
// hWinMain: A handle to the window and, indirectly, the class to which the window belongs.
// lpClassName: The class name string.
FunctionReturn=API("user32","GetClassNameA", hWinMain, lpClassName, nMaxCount) // OK ClassName wird ausgelesen
MyTrace("FunctionReturn GetClassNameA: ", FunctionReturn)
sClassName = StringRetrieve(lpClassName, srASCIIZAddress)
// GetClassNameA liefern beide false:
//FunctionReturn=API("user32","GetClassNameA", hAppInstance, lpClassName, nMaxCount) // OK ClassName wird ausgelesen
//MyTrace("FunctionReturn GetClassNameA: ", FunctionReturn)
//sClassName = StringRetrieve(lpClassName, srASCIIZAddress)
//
//hAppInstanceAPI = API("USER32","GetWindowLongA",hWinMain,(-6)) // #define GWL_HINSTANCE (-6)
//FunctionReturn=API("user32","GetClassNameA", hAppInstanceAPI, lpClassName, nMaxCount) // OK ClassName wird ausgelesen
//MyTrace("FunctionReturn GetClassNameA: ", FunctionReturn)
//sClassName = StringRetrieve(lpClassName, srASCIIZAddress)
//
// Watchdog GUID
sclName is ASCIIZ string on 255 = WND_CLASSNAME_WATCHDOG
// Handle auf die eigene Instanz abfragen( Instance()!!! ist nicht das korrekte Handle )
MyTrace("Handle: ", hAppInstanceAPI, sName)
//hAppInstanceAPI [in, optional]
//Type: HINSTANCE
//A handle to the instance of the application that created the class. To retrieve information about classes defined by the system (such as buttons or list boxes), set this parameter to NULL.
FunctionReturn=API("user32","GetClassInfoA", hAppInstanceAPI, lpClassName, &strWndClass)
MyTrace("FunctionReturn GetClassInfoA: ", FunctionReturn)
//// GetClassInfoA liefern bei de false
//FunctionReturn=API("user32","GetClassInfoA", hAppInstance, lpClassName, &strWndClass)
//MyTrace("FunctionReturn GetClassInfoA: ", FunctionReturn)
//FunctionReturn=API("user32","GetClassInfoA", hWinMain, lpClassName, &strWndClass)
//MyTrace("FunctionReturn GetClassInfoA: ", FunctionReturn)
sclName = WND_CLASSNAME_WATCHDOG
strWndClass.lpszClassName = &sclName
strWndClass.hInstance = hAppInstanceAPI
FunctionReturn=API("USER32","RegisterClassA", &strWndClass)
MyTrace("FunctionReturn RegisterClassA: ", FunctionReturn)
strWndClass.hInstance = hAppInstance
FunctionReturn=API("USER32","RegisterClassA", &strWndClass)
MyTrace("FunctionReturn RegisterClassA: ", FunctionReturn)
strWndClass.hInstance = hWinMain
FunctionReturn=API("USER32","RegisterClassA", &strWndClass)
MyTrace("FunctionReturn RegisterClassA: ", FunctionReturn)
strWndClass.hInstance = hAppInstanceAPI
lpClassName = &sclName
FunctionReturn=API("user32","GetClassInfoA",hAppInstanceAPI, lpClassName, &strWndClass)
MyTrace("FunctionReturn GetClassInfoA: ", FunctionReturn)
sClassName1 = StringRetrieve(strWndClass.lpszClassName, srASCIIZAddress)
MyTrace("sClassName1: ", sClassName1)
FunctionReturn=API("user32","GetClassInfoA",hAppInstanceAPI, lpClassName, &strWndClass)
MyTrace("FunctionReturn GetClassInfoA: ", FunctionReturn)
sClassName1 = StringRetrieve(strWndClass.lpszClassName, srASCIIZAddress)
MyTrace("sClassName1: ", sClassName1)
lpClass1 is system int // C type:LPCSTR, this is the address of a string, you also have the ability to specify a string directly
sClass1 is ASCIIZ string on 255 = WND_CLASSNAME_WATCHDOG // "" // = "WinDevObject "
lpClass1 = &sClass1
FunctionReturn=API("user32","GetClassNameA", hWinMain, lpClass1, nMaxCount)
sErr=ErrorInfo (errSystemCode)
sErr=ErrorInfo (errSystemMessage)
MyTrace("FunctionReturn GetClassNameA: ", FunctionReturn)
sClass1 = StringRetrieve(lpClass1, srASCIIZAddress)
MyTrace("sClass1: ", sClass1)
// Ab hier test
GetClassName is API Description
GetClassName..DLLName = "user32"
GetClassName..FunctionName = "GetClassNameA"
GetClassName..ReturnType = apiBoolean
GetClassName..Parameter[1]..Type = apiSystemInt
GetClassName..Parameter[2]..Type = apiBuffer
GetClassName..Parameter[3]..Type = apiSystemInt
sClassName=""
FunctionReturn = GetClassName(hWinMain,lpClassName,nMaxCount)
sClassName=""
// FunctionReturn=API("user32","GetClassNameA", hHandle, lpClass1, nMaxCount)
FunctionReturn=API("user32","GetClassNameA", hWinMain, lpClassName, nMaxCount)
sClass1 = StringRetrieve(lpClassName, srASCIIZAddress)
sErr=ErrorInfo (errSystemCode)
sErr=ErrorInfo (errSystemMessage)
sClassName1 = StringRetrieve(lpClassName, srASCIIZAddress)
sClassName = StringRetrieve(lpClassName, srASCIIZAddress)
liefert.