10 Nov 2015 10:27
10 Nov 2015 21:02
11 Nov 2015 06:45
11 Nov 2015 07:38
Procedure Teste()
?GetLogicalDrives()
Return
DLL32 function GetLogicalDrives();
AS BOOL PASCAL FROM 'GetLogicalDrives';
LIB 'kernel32.dll'
11 Nov 2015 08:23
12 Nov 2015 07:33
12 Nov 2015 09:10
Procedure CriaScript(cDrive, cLetra) //Cria um script que será lido pelo DISKPART
Local Arq
IF !File("C:\bat\DskScript.tmp") //Checa se o arquivo existe e o cria, sempre vazio
Arq:=FCreate("C:\bat\DskScript.tmp")
FClose(Arq)
ENDIF
Arq:=FOpen("c:\bat\DskScript.tmp", 2)
FWRITE(Arq, "SELECT VOLUME "+cDrive+CRLF+"ASSIGN LETTER="+cLetra) //Grava o script com as opções recebidas
FCLOSE(Arq)
Return
Procedure AlteraLetra() //Altera a letra do disco removível utilizando o script gerado
Local oErr
TRY
ShellExecute(,"OPEN","DISKPART","/s c:\bat\DskScript.tmp",,0) //Executa o DISKPART passando o script como parâmetro
MsgAlert("Alteração efetuada com sucesso!")
CATCH oErr
MsgAlert("Não foi possível efetuar a alteração!")
MsgAlert("Erro: " +oErr)
END
Return
Function ListaLetras() //Lista apenas as letras disponíveis
Local aAlf:={"A:","B:","C:","D:","E:","F:","G:","H:","I:","J:","K:","L:",;
"M:","N:","O:","P:","Q:","R:","S:","T:","U:","V:","W:","X:","Y:","Z:"}
Local a01:=GetDrives() //Lista todos os drives para gerar a lista de letras disponíveis
Local i
Local nPos
For i:=1 to Len(a01)
nPos:=AScan(aAlf, a01[i])
ADel(aAlf, nPos)
Next
Return aAlf //Retorna apenas as letras disponíveis
07 Jan 2016 13:17
FUNCTION GetUsbSerial( f1 ) //Retorna o serial da letra informada
//f1 = Letra
LOCAL cDiskNum := "", cRet
LOCAL oDiskDrive, oWMIObjA, oWMIServerA, oWMIDiskDrive,;
oWMIObjA2,oWMIServerA2,oWMILogicalDisk, oLogicalDrive
TRY
oWMIObjA := GetActiveObject( "wbemScripting.SwbemLocator" )
CATCH
TRY
oWMIObjA := CreateObject( "wbemScripting.SwbemLocator" )
CATCH
MsgAlert( "ERRO ! Nao criou objeto wbemScripting")
return 0
END
END
oWMIServerA := oWMIObjA:ConnectServer()
oWMIDiskDrive := oWMIServerA:ExecQuery( "SELECT * FROM Win32_DiskDrive" )
TRY
oWMIObjA2 := GetActiveObject( "wbemScripting.SwbemLocator" )
CATCH
TRY
oWMIObjA2 := CreateObject( "wbemScripting.SwbemLocator" )
CATCH
MsgAlert( "ERRO ! Nao criou objeto wbemScripting")
return 0
END
END
oWMIServerA2 := oWMIObjA2:ConnectServer()
oWMILogicalDisk := oWMIServerA2:ExecQuery( "SELECT * FROM Win32_LogicalDiskToPartition" )
FOR EACH oLogicalDrive IN oWMILogicalDisk
IF SubStr(oLogicalDrive:Dependent, AT('"',oLogicalDrive:Dependent )+1,2 ) == f1
cDiskNum := SubStr(oLogicalDrive:Antecedent, AT('#',oLogicalDrive:Antecedent )+1,1 )
ENDIF
NEXT
FOR EACH oDiskDrive IN oWMIDiskDrive
IF oDiskDrive:Name == "\\.\PHYSICALDRIVE" + cDiskNum .AND. oDiskDrive:InterfaceType == "USB"
cRet := oDiskDrive:SerialNumber
ENDIF
NEXT
RETURN cRet
FUNCTION GetUsbLetter( f1 ) //Retorna a letra do serial informado
//f1 = Serial
LOCAL cDiskNum := "", cRet
LOCAL oDiskDrive, oWMIObjA, oWMIServerA, oWMIDiskDrive,;
oWMIObjA2,oWMIServerA2,oWMILogicalDisk, oLogicalDrive
TRY
oWMIObjA := GetActiveObject( "wbemScripting.SwbemLocator" )
CATCH
TRY
oWMIObjA := CreateObject( "wbemScripting.SwbemLocator" )
CATCH
MsgAlert( "ERRO ! Nao criou objeto wbemScripting")
return 0
END
END
oWMIServerA := oWMIObjA:ConnectServer()
oWMIDiskDrive := oWMIServerA:ExecQuery( "SELECT * FROM Win32_DiskDrive" )
TRY
oWMIObjA2 := GetActiveObject( "wbemScripting.SwbemLocator" )
CATCH
TRY
oWMIObjA2 := CreateObject( "wbemScripting.SwbemLocator" )
CATCH
MsgAlert( "ERRO ! Nao criou objeto wbemScripting")
return 0
END
END
oWMIServerA2 := oWMIObjA2:ConnectServer()
oWMILogicalDisk := oWMIServerA2:ExecQuery( "SELECT * FROM Win32_LogicalDiskToPartition" )
FOR EACH oLogicalDrive IN oWMILogicalDisk
FOR EACH oDiskDrive IN oWMIDiskDrive
IF oDiskDrive:SerialNumber == AllTrim(StrTran(f1," ",""))
cRet:= SubStr(oLogicalDrive:Dependent, AT('"',oLogicalDrive:Dependent )+1,2 )
ENDIF
NEXT
NEXT
RETURN cRet
16 Jan 2016 19:58
15 Fev 2016 17:54
BOOL WINAPI GetComputerName(
_Out_ LPTSTR lpBuffer,
_Inout_ LPDWORD lpnSize
);
#define KERNEL32DLL "kernel32.dll"
FUNCTION mywin_GetComputerName()
LOCAL cComputerName := Space(255), nSize := 250
CallDll( "GetComputerNameA", KERNEL32DLL, @cComputerName, @nSize )
RETURN cComputerName
lpBuffer (out)
A pointer to a buffer that receives the computer name or the cluster virtual server name. The buffer size should be large enough to contain MAX_COMPUTERNAME_LENGTH + 1 characters.
...
GetComputerNameW (Unicode) and GetComputerNameA (ANSI)
02 Jan 2017 14:33