Jump to content

Search the Community

Showing results for tags 'DLL'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Administração
    • Regras do fórum
    • Anúncios e Noticias
    • Moderação de Usuário
  • Geral
    • Chat (Offline)
    • Chat de Desenvolvedores
    • Diretivas de Segurança
    • Board Test
  • Autoit v3
    • Ajuda e Suporte geral
    • Ajuda e Suporte à GUI (Interface Gráfica de Usuário)
    • Exemplos de Scripts
    • UDFs (Função Definida pelo Usuário)
    • Tutoriais & VideoAulas
    • Microcódigos

Calendars

There are no results to display.

There are no results to display.


Found 4 results

  1. Bom o titulo já diz o propósito, como as vezes não se encontra documentação de algumas dll's, a ideia é "interceptar" a chamada e parametros, qualquer ajuda é bem vinda.
  2. Prezados, Estou precisando utilizar a DLL de um programa específico em que eu trabalho. Acontece que essa DLL não é registrada no windows e não consegui registrá-la de maneira alguma. Além de não conseguir registrá-la também não consegui sequer ter sucesso em sua chamada no autoit usando dllOpen. Outra dúvida é se existiria uma forma de eu saber quais os parâmetros de referência eu devo usar na chamada da DLL (dllCall), li que seria possível decompilar essa DLL, mas também não tive sucesso por nenhum decompilador. Hoje eu trabalho com uma macro de excel que so funciona em computadores que tem esse programa instalado, essa macro consegue acessar a DLL. Estou tentando desenvolver um programa que automatize minhas tarefas sem que eu tenha o tal programa instalado em minha máquina.
  3. Objetivo: Mostrar como é simples construir uma DLL em C# para trabalhar com o AutoIt. Vantagens: Visto que há uma relativa facilidade de descompilar um executável do AutoIt, e ter acesso ao código fonte, você pode escrever partes chaves do seu código em uma DLL, protegendo esta parte do código dentro de uma DLL, que não é tão facilmente descompilável. Programas utilizados: AutoIt (versão 3.3.14.2) SharpDevelop (versão Frameworks 2.0 to 4.5.1) Autor..........: Luigi Tutorial sobre C# https://www.tutorialspoint.com/csharp/index.htm No Windows Explorer, na unidade C: crie um diretório chamado DllCSharp. No SharpDevelop, execute: FILE > NEW > SOLUTION Crie um projeto C# > CLASS LIBRARY New Project Categories.....: C# Templates......: Class Library Name...........: homework Location.......: C:\DllCSharp Solution Name..: homework Na classe MyClass.cs, cole o seguinte conteúdo: /* * Created by SharpDevelop. * User: Luigi * Date: 02/12/2016 * Time: 17:13 * * To change this template use Tools | Options | Coding | Edit Standard Headers. */ using System; namespace homework{ public class MyClass{ public string Nome = "HomeWork"; public public object[] array; public string MudarNome{ get{ return Nome; } set{ Nome = value; } } public string Ola(){ return "Olá " + Nome; } public void SetArray(object[] arr){ array = arr; } public object GetArray(int index){ return array[index]; } } public double tempo_gasto(){ Stopwatch sw = new Stopwatch(); sw.Start(); int [,] arr = new int[3000,20]; for( int ii = 0 ; ii < 3000 ; ii++ ){ for( int jj = 0 ; jj < 20 ; jj++ ){ arr[ ii , jj ] = 1; } } sw.Stop(); var tempo = sw.Elapsed.TotalMilliseconds; return tempo; } } Procure o arquivo AssemblyInfo.cs e altere a configuração: De: [assembly: ComVisible(false)] Para: [assembly: ComVisible(true)] Aperte F8 para compilar. No diretório C:\DllCSharp\homework\homework\bin\Debug, você terá o arquivo homework.dll Crie um script no AutoIt, com o seguinte conteúdo: ;~ https://www.tutorialspoint.com/csharp/csharp_events.htm/ #include <Array.au3> ;Autor...: Luigi #include <WinAPIShellEx.au3> Global $sPath = "C:\DllCSharp\homework\homework\bin\Debug\homework.dll" Local $RegAsm = "C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe" RunWait($RegAsm & " /register /codebase /tlb " & $sPath, @ScriptDir, @SW_HIDE) Local $oHomework = ObjCreate("homework.MyClass") If IsObj($oHomework) Then ; imprime o conteúdo da propriedade 'Nome' ConsoleWrite("1[ " & $oHomework.Nome & " ]" & @LF) ; executa o método 'Ola' ConsoleWrite("2[ " & $oHomework.Ola & " ]" & @LF) ; atribui o valor 'Luigi' à propriedade 'Nome' $oHomework.MudarNome = "Luigi" ; executa o método 'Ola' ConsoleWrite("3[ " & $oHomework.Ola & " ]" & @LF) Local $arr[2] = [123, 456] $oHomework.SetArray($arr) Local $get = $oHomework.GetArray() ConsoleWrite($get[0] & @LF) ConsoleWrite($get[1] & @LF) ConsoleWrite("Tempo gasto[" & $oHomework.tempo_gasto & "]" & @LF) ; veja este post: http://forum.autoitbrasil.com/index.php?/topic/2068-codigo-da-depressao-desempenho/?p=13459 RunWait($RegAsm & " /unregister " & $sPath, @ScriptDir, @SW_HIDE) Else ConsoleWrite("ocorreu um erro..." & @LF) EndIf Resultado no console do AutoIt: --> Press Ctrl+Alt+Break to Restart or Ctrl+Break to Stop 1[ HomeWork ] 2[ Olá HomeWork ] 3[ Olá Luigi ] +>17:13:32 AutoIt3.exe ended.rc:0 Pronto! =Erro============================================================================ ================================================================================ ================================================================================ Build started. Warning MSB3270: Houve uma incompatibilidade entre a arquitetura de processador do projeto em criação "MSIL" e a arquitetura de processador da referência "C:\Windows\Microsoft.NET\Framework\v4.0.30319\mscorlib.dll", "x86". Essa incompatibilidade poderá causar falhas de tempo de execução. Considere a alteração da arquitetura de processador de destino de seu projeto por meio do Gerenciador de Configuração de forma a alinhar as arquiteturas de processador entre seu projeto e as referências ou obtenha uma dependência sobre referências com uma arquitetura de processador que corresponda à arquitetura de processador de destino de seu projeto. Compiling homework Build finished successfully. (00:00:00.5780307) =Correção======================================================================== Solution [NomeDoProjeto] [NomeDoProjeto] Compiling Advanced TargetCPU: 32-bit Intel-compatible processor Salvar recompilar ================================================================================ ================================================================================ ================================================================================ Um arquivo .dll é seguro? https://stackoverflow.com/questions/18050615/how-to-open-dll-files-to-see-what-is-written-inside
  4. Estou com dificuldade em Convertar a Data Hora de Criação, Modificação e Acesso do arquivo Retornada Via DLL Para YYYYMMDDhhmmss Segue Abaixo Script de Teste #include <Array.au3> ; Minha Dificuldade esta em: $aFiles = FileListToArrayAllInfo(@ScriptDir, "*.au3") If @error Then MsgBox(0,"FileListToArrayAllInfo", $aFiles) _ArrayDisplay($aFiles,"FileList","",0,Default,"Name do Arquivo|Tamanho Bytes|Atributos Hex|Data Criação|Data Modificado|Data Ultimo Acesso|Nome Alternativo") Func FileListToArrayAllInfo($sInitialPath, $sMask = "*") ; Simplifiquei a _FileListToArrayRecEx só para ficar facil de entender o problema         Local $sCurrentPath = $sInitialPath & "\"         Local $tFile_Data = DllStructCreate("struct;align 4;dword FileAttributes;uint64 CreationTime;uint64 LastAccessTime;uint64 LastWriteTime;" & _                 "dword FileSizeHigh;dword FileSizeLow;dword Reserved0;dword Reserved1;wchar FileName[260];wchar AlternateFileName[14];endstruct")         Local $pFile_Data = DllStructGetPtr($tFile_Data), $hDLL = DllOpen('kernel32.dll'), $aDLL_Ret         Local $aResult[1][7] ; 0- FileName 1- FileSize 2- FileAttributes 3- CreationTime 4- LastWriteTime 5- LastAccessTime 6- AlternateFileName         ; Pega a informação         $aDLL_Ret = DllCall($hDLL, 'ptr', 'FindFirstFileW', 'wstr', $sCurrentPath & "*", 'ptr', $pFile_Data)         If @error Or Not $aDLL_Ret[0] Then Return SetError(1,0,"Erro no FindFirstFile")         $hSearch = $aDLL_Ret[0]         While 1             $aDLL_Ret = DllCall($hDLL, 'int', 'FindNextFileW', 'ptr', $hSearch, 'ptr', $pFile_Data)             If @error Or Not $aDLL_Ret[0] Then ExitLoop             If $aResult[0][0] <> "" Then ReDim $aResult[UBound($aResult)+1][7]             $ia = UBound($aResult)-1             $aResult[$ia][0] =    DllStructGetData($tFile_Data, "FileName")             $aResult[$ia][1] =    DllStructGetData($tFile_Data, "FileSizeHigh")*0x100000000 + DllStructGetData($tFile_Data, "FileSizeLow")             $aResult[$ia][2] =    "0x" & Hex(DllStructGetData($tFile_Data, "FileAttributes"))             $aResult[$ia][3] =    FileTimeToDateTime(DllStructGetData($tFile_Data, "CreationTime"))    ; Aqui que esta o Problema, como Convertew essa DataHora para YYYYMMDDhhmmss ?             $aResult[$ia][4] =    FileTimeToDateTime(DllStructGetData($tFile_Data, "LastWriteTime"))             $aResult[$ia][5] =     FileTimeToDateTime(DllStructGetData($tFile_Data, "LastAccessTime"))             $aResult[$ia][6] =    DllStructGetData($tFile_Data, "AlternateFileName")         WEnd         DllClose($hDLL)         Return $aResult EndFunc Func FileTimeToDateTime($iTime) ; Converte DadaHora do Arquivo em YYYYMMDDhhmmss     ; Aqui eu não descobri como converter Pode me Ajudar as tentativas q fiz com     ; _Date_Time_xxxxxx Não foram bem sucedidas     $sTime = "0x" & Hex($iTime) ; só para mostrar os f=valores em Hexa     Return $sTime EndFunc
×