Ir para conteúdo
Fórum Script Brasil

Churc

Veteranos
  • Total de itens

    1.198
  • Registro em

  • Última visita

Tudo que Churc postou

  1. Churc

    Duvida Delphi com DOS

    exato, não funcionam... esquece tudo que for janela, forms, messages... único contato que voce tem com o usuário é na tela do DOS em modo texto abrxx
  2. Churc

    Duvida Delphi com DOS

    amigo sinceramente não da pra entender!! que mensagem? Mensagem na janelinha do DOS? que mensagem? entende que assim é difícil compreeender o que voce quer fazer teste isso {$APPTYPE CONSOLE} program bla; uses Windows; var i: Integer; szParams: String; procedure GetParams; var i: Integer; begin for i := 1 to ParamCount do if (i = 1) then szParams := ParamStr(i) else szParams := szParams + ' ' + ParamStr(i); end; begin if ParamCount < 1 then begin writeln('Não foram passados parametros!'); Writeln('Encerrando...'); Halt(1); end; GetParams; if Pos('-g', LowerCase(szParams)) > 0 then Writeln('Tipo essa mensagem voce diz?!'); end.
  3. opa a desvantagem de usar assim é que de qualquer forma teria que andar por todos os parametros para verificar se o usuário passou algum então daria na mesma ou seja, de qualquer forma teria que dar um loop nos parametros para verificar quantos foram passados e tal... já pegando todos os passados e armazenando numa String acredito que de para utilizar de uma forma mais fácil é minha opinião rs abrxx
  4. eu aconselharia voce fazer o seguinte, use o Winrar criando um SFX compactando esse conteúdo e junto faça um .exe que é só uma tela, tipo essas de AutoRuns de programas que abre assim que inserimos cds de programas... nas opções do SFX você coloca para descompactar tudo na pasta que está sendo executada ou qualquer outra e rodar sua telinha de autorun vantagem é que vai compactado tudo... se voce colocar dentro do seu exe não vai compactado, a menos que voce compacte e depois extraia do .exe descompactando... mas daria bem mais trabalho teria que usar componentes de compactação nas opcões do SFX voce pode também colocar pra ele não mostrar tela nenhuma, apenas descompactar tudo e rodar sua telinha de auto run Download Winrar http://www.rarlabs.com abrxxx
  5. Churc

    DBComboBox

    ressucitando este tópico, esqueci dele rs então, se no Texto conter esse Alias (PR, EP, M, F) voce pode copiá-la com alguma função exemplo function GetAlias(dbCb: TDBComboBox): String; var iSep: Integer; begin iSep := Pos('-', dbCb.Text); if iSep > 0 then //se achou o separador - Result := Copy(dbCb.Text, 1, iSep - 2) else Result := dbCb.Text; //se não tiver o separador retorna o mesmo texto que foi passado end; Então se nos items do DBCombbox tiver esse "Alias" da pra usar a função acima exemplo o item selecionado do DbComboBox tem o texto "M - Masculino" ai voce pega String = GetAlias(dbcombobox1.Items[dbcombobox1.ItemIndex]); retornaria o M se o item selecionado for "EP - Empregado" retornaria EP seria isso? abrxx
  6. Churc

    Duvida Delphi com DOS

    não entendi rs da um exemplo ou explica melhor se possível! ... abrx
  7. Churc

    Duvida Delphi com DOS

    os parametros são passados na janela do DOS e não no seu programa... exemplo, clique em Iniciar, executar e digite: cmd e de Enter no DOS navegue até a pasta em que voce compilou o exemplo que te passei e chame exemplo bla.exe aqui qualquer coisa o programa vai te dizer "aqui qualquer coisa" se fosse -g ele iria te dizer que voce passou como parametro "-g" teste o exemplo que te passei ;) abrxxx
  8. Churc

    PostMessage

    opa acredito que se o jogo for em DirectX, OpenGL, SendMessage ou PostMessage não funciona pois os mesmos só funcionam em janelas que possam "receber mensagens" e jogos emulados assim a janela que emula o DirectX, OpenGL não tem nenhuma referência com o que está sendo emulado no caso o jogo... SendInput funcionaria, mas não no seu caso já que voce quer manter a janela minimizada... eu na minha "opinião" acredito que não seja possível... agora por exemplo, daria se você fizesse isso através de endereços de memória do jogo... mas ai é outra história hehe você teria que saber os endereços de memória do jogo e de cada coisa pra poder ler e escrever emulando uma ação do usuário... não sei se tem haver, mas um exemplo disso que estou dizendo é o TibiaBOT abraxx
  9. Churc

    Duvida Delphi com DOS

    Certo, então faz o seguinte, crie um novo aplicativo e feche a Unit 1 e não salve ela... Depois vai no Menu "Project > View Source" pra testar, no View Source você terá o código do Aplicativo, apague tudo e cole isto... {$APPTYPE CONSOLE} program bla; uses Windows; var i: Integer; szParams: String; procedure GetParams; var i: Integer; begin for i := 1 to ParamCount do if (i = 1) then szParams := ParamStr(i) else szParams := szParams + ' ' + ParamStr(i); end; begin if ParamCount < 1 then begin writeln('Não foram passados parametros!'); Writeln('Encerrando...'); Halt(1); end; GetParams; Writeln('Parametro passado: ' + szParams); end. salve como Bla e compile e rode via DOS.... pra voce identificar os parametros passados utilize o Pos() no szParams exemplo, voce quer saber se foi passado ble em parametros então uses SysUtils; ... GetParams; if Pos('ble', LowerCase(szParams)) > 0 then Writeln('O parametro ble foi passado!) else Writeln('não foi passado o parametro ble!'); e por ai vai detalhe, para que o compilador identifique que voce está fazendo um programa DOS, não se esqueça de deixar lá na primeira linha o {$APPTYPE CONSOLE} lembrando também que é claro, esqueça forms e tudo mais rs abrax
  10. Churc

    Duvida Delphi com DOS

    Veja se é isto que precisa http://scriptbrasil.com.br/forum/index.php...amp;hl=szParams abraxx
  11. opa fera ainda não entendo o porque do asterisco já que literalmente voce passa o nome do arquivo inteiro... o asterisco em computação é um wildcard que simboliza todos os arquivos de um determinado tipo ou tudo que contém entre x* ou *x, que é como voce está fazendo porém praticamente voce passa o nome do arquivo inteiro rs isto IdFTP1.List(ListBox1.Items, '*.gz', false); listaria todos os arquivos do tipo .gz que está na pasta do FTP isto IdFTP1.List(ListBox1.Items, 'etspaz*', false); listaria todos os arquivos que contém etspaz no nome tipo etspazbla.gz, etspazble.txt e tal Unix permite nomes de arquivos com asterisco, mas Windows não então com certeza este script a qual voce se refere é em Unix? arqs é referente a uma StringList? o que voce pode tentar é var sl: TStringList; iA, iB: Integer; begin sl := TStringList.Create; IdFTP1.List(sl, '*.gz', false); //lista todos os arquivos .gz if sl.Count > 0 then //encontrou arquivos, vamos comparar com os que voce quer listar for iA := 0 to sl.Count - 1 do //anda um por um dos encontrados no FTP e compara com os que voce quer for iB := 0 to arqs.Count - 1 do if AnsiCompareText(sl[iA], arqs[iB]) = 0 then ListBox1.Items.Add(arqs[iB]); FreeAndNil(sl); end; AnsiCompareText compara os nomes sem ser em case-sensitive e verifica se é igual, neste caso não necessitaria mais do asterisco em arqs.Add('TRAFEGO_POS_'+QR_FTP.FieldByName('UF').AsString+'_'+QR_FTP.FieldByName('CICLO').AsString+'_'+ANO_MES_CICLO+'*'+'.gz'); ficando arqs.Add('TRAFEGO_POS_'+QR_FTP.FieldByName('UF').AsString+'_'+QR_FTP.FieldByName('CICLO').AsString+'_'+ANO_MES_CICLO+'.gz'); não daria certo também? abrxx
  12. Fala Geomar! Então brother, eu escrevi escrevi escrevi e no fim de tudo cheguei a conclusao de há como burlar facilmente, basta alterar a data do computador que o usuário quer logar denovo... Há outros meios usando Sockets, que fazem com que dois programas se comunicam em rede mas acho um tanto que complicado para isso... de qualquer forma, segue a minha antiga idéia porém é como falei, da pra burlar facilmente... espero q alguém tenha outra idéia e se surgir alguma te dou um toque! abrxx
  13. nativo? olha eu aconselharia o ZeosLib, não é nativo masss acredito que seja um dos mais usados... os nativos funcionam, mas estes OpenSources estão sempre sendo trabalhados e adaptados para as necessidades das pessoas... Download ZeosLib - Baixe ZeosDBO abraxx
  14. Opa Só uma opinião, se por acaso acontecer do sistema travar, a maquina travar e ter que reiniciar vai constar na tabela que o usuário está logado... portanto, o que voce pode tambem é adicionar um timer no programa que escreva a data e hora em um campo desta mesma tabela a cada x minutos exemplo a cada 5 minutos, ou seja, o timer com a propriedade para 300000, ele escreva no campo lastcheckh a Hora e lastcheckd o dia assim quando um usuario for logar e retornar que esta logado, voce faz a comparacao de dias e da ultima hora checada.... se for maior do que uns 6 minutos significa que pode ter acontecido travamento ou se o dia for maior ou igual a 1 entendeu? porque vamos supor, Voce loga na Maquina A ok A maquina trava ou cai a força, ou seja, o DesconectaUtilizador não vai ser chamado A maquina reinicia e voce vai logar denovo... PAM! Voce já está logado! rs entendeu? espero que minha dica tenha sido útil e que eu não estou falando besteira na manhã deste feriado (ressaca) :blink: ahuahuauha abraxxx
  15. Churc

    DBComboBox

    fala Daniel, tranquilo e voce cara? então, ai nesses outros exemplos M - Masculino F - Feminino voce gostaria de pegar o que, o M ou F? e PR - Proprietário EP - Empregado PR ou EP tipo isso?
  16. Churc

    DBComboBox

    opa se os números forem sequênciais então significa que o item 1 destes 3 dados como exemplo seria o ItemIndex 0 do dbcombobox sendo assim voce poderia usar o ItemIndex como base tipo Numero = InttoStr(dbcombobox.Items[dbcombobox.ItemIndex] + 1); o mais 1 é para bater com a numeração já que uma index sempre inicia do 0 o Numero então seria 1 pro item 1 e assim sucessivamente... não daria certo assim? abrax
  17. Opa Na verdade o problema ai nem está no componente e nem no seu programa... e sim porque o Windows não permite que sejam criados programas que em seu nome ou caminho contenham os seguintes caracteres então neste caso, pense em uma outra alternativa ao invés de usar os asteriscos pois assim desta forma será impossível você salvar o arquivo com estes caracteres no nome... uma dica é trocar o asterisco por um underline por exemplo... exemplo uses StrUtils; IdFTP1.get('/DIR_FTP/'+arq [x],AnsiReplaceStr(DIR_LOCAL\'+ arqs[x], '*', '_'),true ); ai o nome do arquivo salvo ficaria algo como TRAFEGO_POS_AC_12_200906_.gz abrxx
  18. Na verdade, o exemplo do Daniel funciona apenas no seu "programa"... se quiser fazer uma hotkey que funcione não importa o programa que está ativo na tela, tipo um jogo por exemplo, da uma olhada... http://scriptbrasil.com.br/forum/index.php...0&hl=HotKey abraxx
  19. Fala Pirambu! então brother, eu sinceramente não sei te dizer... eu nunca mexi com sistema de bina, tenho algumas noções lógicas que sempre de um jeito ou outro lemos na internet... Agora esse exemplo que te passei eu simplesmente achei pelo google e era pra voce ter uma noção e tal... com certeza é algo que vai te dar dor de cabeça, incompatiblidade com modens e tal... não sei te ajudar, aconselho voce buscar no google coisas como "Delphi Bina", "Bina in Delphi", "Delphi Bina Examples" e tal Boa sorte! ;) abraxx
  20. Seguinte, primeiro de tudo a linha de telefone "precisa" estar com o Serviço de Bina habilitado... Estando com o serviço de Bina habilitado na linha, tudo que voce precisa é um Fax Modem no PC exatamente, não necessita de um aparelho de Bina pois o que vai fazer isso é seu Software... abraxx
  21. Opa não tem problema nenhum voce passar pro Edit como AsString desde que o que o AsString ta fazendo é dando um typecast no campo e transformando pra String, seria o mesmo que voce fizer InttoStr() ou StrtoInt()... varia conforme o tipo do campo... Agora pra passar pro banco, o ideal é voce fazer o typecast para o tipo do campo... se o campo é do tipo Integer e a origem é uma String voce usa o StrtoInt(); quanto ao tópico triplicado, realmente ta dando IPS Driver Error ai demora mesmo ou melhor, trava rs O jhonas deleta depois os duplicados e tal abraxx
  22. Opa O que você pode fazer é usar Mutex ou Semáforos... eu aconselho Mutex e acredito que desta forma voce não precisa de um controlador, tipo um monitor como havia mencionado... exemplo, nos seus aplicativos voce coloca, em todos eles... function MutexExiste(const szMagic: String): Boolean; var hMutex: THandle; begin hMutex := CreateMutex(nil, True, PChar(szMagic)); Result := LongBool(hMutex) and (GetLastError = ERROR_ALREADY_EXIST); if LongBool(hMutex) then CloseHandle(hMutex); end; Coloque o código abaixo no fonte do seu programa, através do menu "Project > View Source" logo na primeira linha depois do begin... var hMutex: THandle; begin if MutexExiste('palavra_magica') then begin //já tem um aplicativo rodando e faz o que deseja fazer, tipo uma mensagem sei la Halt; end; //não tem nenhum aplicativo rodando, então podemos rodar esse e bloquear os proximos hMutex := CreateMutex(nil, True, 'palavra_magica'); //Descomenta abaixo caso queira tratar se der erro ao criar mutex, nunca aconteceu comigo rs //if hMutex = 0 then //deu erro então faca o que termine o aplicativo com um Halt? :( Application.CreateForm... ... Application.Initialize; Application.Run; //aqui o programa esta se fechando, vamos liberar para ser possivel abrir outro programa... CloseHandle(hMutex); end. Troque a palavra magica por algo seu, tipo sei la nome do seu cachorro, só não coloque caracteres especiais tipo acento, virgula, e tal, usa texto limpo e sem traços, underline pode tipo "script_brasil" Lembrando que pra todos os programas precisa ser a mesma palavra mágica, o segredo é que ela vai ser armazenada na memória e quando outro programa seu abre, a funcao MutexExiste retorna que já ta armazenada, ou seja, já tem algum outro programa seu aberto e não permite a execução... espero que tenha entendido rs abraxx
  23. da uma olhada nesse Source http://www.inf.ufsc.br/~prass/sources.html vai em "Comunicação > Bina.zip" espero que te ajude... abrxx
  24. Churc

    Copiar *.xls

    Sim eu verifiquei o código... a flag FOF_NOCONFIRMATION... porém acontece que usando a Shell do Windows as vezes tem algumas limitações, por exemplo, voce copia um executavel de um computador para outro, normalmente o Windows pergunta pra voce se voce deseja executar e tal, pra remover isso tem que desmarcar o "Sempre perguntar pra abrir este arquivo" ou ir nas propriedades dele pra desbloquear... Se voce chamar a execução do arquivo em questão pelo Delphi utilizando ShellExecute() vai dar a mesma mensagem... já chamando por WinExec() não da... ou seja, imaginei que pudesse ser alguma limitação de operações de usar recursos da Shell... rs Então foi uma idéia :) abrxx
  25. Churc

    Copiar *.xls

    Opa Tente copiar usando a Função CopyFile() ao invés de SHFileOperation if CopyFile(PChar('caminho e nome do arquivo atual'), PChar('Caminho e nome do arquivo para onde vai'), False); Pra sobrescrever caso existir deixe False, se não quiser sobrescrever coloque True abraxx
×
×
  • Criar Novo...