回复 9楼 吹水佬
											stt就是那个结构体的指针										
					
	 程序代码:
程序代码:
DECLARE long CredWriteA  IN advapi32 as apiCredWrite  string@,long
DECLARE long CredReadA   IN advapi32 as apiCredRead   string@,long,long,long@
DECLARE long CredFree    IN advapi32 as apiCredFree   long
DECLARE long _strdup   IN msvcrt as apiStrdup    string
DECLARE long free      IN msvcrt as apiFree      long
DECLARE long strlen    IN msvcrt as apiStrlen    long
  
#define CRED_TYPE_GENERIC                   1
#define CRED_TYPE_DOMAIN_PASSWORD           2
#define CRED_TYPE_DOMAIN_CERTIFICATE        3
#define CRED_TYPE_DOMAIN_VISIBLE_PASSWORD   4
#define CRED_TYPE_MAXIMUM                   5
#define CRED_TYPE_MAXIMUM_EX                (CRED_TYPE_MAXIMUM+1000)
#define CRED_PERSIST_NONE           0
#define CRED_PERSIST_SESSION        1
#define CRED_PERSIST_LOCAL_MACHINE  2
#define CRED_PERSIST_ENTERPRISE     3
? SaveCred("myTarget", "张三", "abc123")
? ReadCred("myTarget")
FUNCTION SaveCred(cTargetName, cUserName, cPassword)
    pTargetName = apiStrdup(cTargetName)
    pUserName   = apiStrdup(cUserName)
    pPassword   = apiStrdup(cPassword)
    ** CREDENTIALA 结构
    cred = 0h00000000;
         + BINTOC(CRED_TYPE_GENERIC, "4RS");            && Type
         + BINTOC(pTargetName, "4RS");                  && TargetName
         + REPLICATE(0h00, 12);
         + BINTOC(apiStrlen(pPassword), "4RS");         && CredentialBlobSize
         + BINTOC(pPassword, "4RS");                    && CredentialBlob
         + BINTOC(CRED_PERSIST_LOCAL_MACHINE, "4RS");   && Persist
         + REPLICATE(0h00, 12);
         + BINTOC(pUserName, "4RS")                     && UserName
    ret = apiCredWrite(@cred, 0)    
    apiFree(pTargetName)     
    apiFree(pUserName)
    apiFree(pPassword)
    RETURN ret != 0
ENDFUNC
FUNCTION ReadCred(cTargetName)
    pCred = 0
    IF apiCredRead(@cTargetName, CRED_TYPE_GENERIC, 0, @pCred) == 0
        RETURN .F.
    ENDIF
    p = CTOBIN(SYS(2600,pCred+8,4),"4RS")
    ? "凭据名称:", SYS(2600, p, apiStrlen(p))
    p = CTOBIN(SYS(2600,pCred+48,4),"4RS")
    ? "用户名称:", SYS(2600, p, apiStrlen(p))
    p = CTOBIN(SYS(2600,pCred+28,4),"4RS")
    ? "用户密码:", SYS(2600, p, apiStrlen(p))
    ?
    apiCredFree(pCred)
    RETURN .T.
ENDFUNC
										
					
	


 
											





 
	    

 
	
 
											