Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Wykrywanie sprzętu przez Autoit ?


Rekomendowane odpowiedzi

Opublikowano

Witam mam pytanie czy w autoit istnieje komenda wykrywająca sprzęt podłączony do kompa np pendrive ? Powiedzmy mam program który siedzi w trayu i jesli do kompa zostanie podlaczony jakis sprzet np. pedrive to program wykona jakas funkcje ? Jesli istnieje jakas komenda to prosze o pomoc.

z gory thx.

Zbieram + : D

Opublikowano

masz to z helpa

 

Local $aArray = DriveGetDrive("ALL")
If @error Then
; An error occurred when retrieving the drives.
MsgBox(4096, "DriveGetDrive", "It appears an error occurred.")
Else
For $i = 1 To $aArray[0]
	; Show all the drives found and convert the drive letter to uppercase.
	MsgBox(4096, "DriveGetDrive", "Drive " & $i & "/" & $aArray[0] & ":" & @CRLF & StringUpper($aArray[$i]))

Next
EndIf

i tam gdzie masz StringUpper($aArray[$i]) zwraca ci etykiete partycji, i np. pendrive ma G:/

to robisz

if StringUpper($aArray[$i]) = "G:" then

function

endif

czyli

 

Local $aArray = DriveGetDrive("ALL")
If @error Then
; An error occurred when retrieving the drives.
MsgBox(4096, "DriveGetDrive", "It appears an error occurred.")
Else
For $i = 1 To $aArray[0]
if StringUpper($aArray[$i]) = "G:" then
function
endif
Next
EndIf

ew. wpierdalasz w błędne koło(najlepsze określenie) i dodajesz troche snu np. sleep(3000)

Opublikowano

a jeżeli nie będziesz potrzebował to co wtedy?

Temat nie zostanie zamknięty, a jeżeli nie zostanie zamknięty wtedy plebs może tutaj odpisać, a jeżeli odpisze to dostanie 5%, więc to taki twój chytry plan aby jakiś noob dostał 5% za nic? nie ładnie...

@down

nie, mam za dużo takich osób ^^

Opublikowano

nie po prostu nie chce spamić kolejnym tematem :) Chyba , że masz gg ktore mozesz podac :P I wtedy ew. tam tobie bede spamił .

Zbieram + : D

Opublikowano

Dobra a jest jakaś magiczna komenda (bo wiecie dopiero co sobie przypominam autoit po dlugiej przerwie) ktora przenosi wsszystkie pliki z jednego miejsca do drugiego ? Bo jak juz ten skrypt wykryje penddrive to zeby wszystkie pliki z niego przeniosl na dysk C . Czy trzeba wsztytkie pliki jakos po kolei ?

Zbieram + : D

Opublikowano

taa, musisz do tablicy policzyc wszystkie pliki z pendrive potem cala tablice przez funkcje kopiującą przelecieć

http://www.autoitscr...ListToArray.htm nie liczy folderów, w tym by trzeba było napisać króciutką lecz troszke jebiącą w głowie funkcje

http://www.autoitscr...ns/FileCopy.htm

 

chooociaż kurwa

filecopy skopiuje ci nawet calego pendrive xD

ew. jeżeli ten twój pendrive jest unikatowy(tylko jego wsadzasz w kompa) i cały czas zmienia się etykieta(nie wiem czy to tak się zwie) to napisz program który będzie na twoim pendrive i do autostartu dodaj i wtedy możesz użyć global zmiennej @scriptdir

Opublikowano

wtedy sobie walisz przez filecopy - to bedzie kopiowanie czy co tam chcesz. liste plikow mozesz przez _filelist czy jakos tak uzyskac , do tego petla for i jazda :) prawiechybażedobrykod:


$x=_FileListToArray('G:\')
for $i=0 to _ArrayMax($x)
filecopy('G:\' & $x[$i] , "C:\")
Next

 

@UP czy jebiąca w głowę funkcja to będzie coś na ten kształt:


$search = FileFindFirstFile("D:" & "\*.*")
If $search = -1 Then return -1
While 1
$file = FileFindNextFile($search)
If @error Then

FileClose($search)
return
Elseif $file = "." or $file = ".." Then
ContinueLoop
ElseIf stringinstr(FileGetAttrib($search & "\" & $file),"D") then
_filelist($search & "\" & $file)

EndIf
ConsoleWrite( $search & "\" & $file & @crlf )

WEnd

 

 

 

 

jakos tak to powinno byc, dopicuj i gotowe :)

Opublikowano

wtedy się prosi moda o otwarcie tematu.

@jack. dobra rozkmina

 

Dobrze robi. Nie każdy temat musi być zamknięty. To, że ktos dostanie warna to nie wasza sprawa. Ogólnie rzadko powinno się zamykać tematy.

Opublikowano

jak nie smiga jak smiga:


$search = FileFindFirstFile("D:" & "\*.*")
If $search = -1 Then return -1
While 1
$file = FileFindNextFile($search)
If @error Then

FileClose($search)
return
Elseif $file = "." or $file = ".." Then
ContinueLoop
ElseIf stringinstr(FileGetAttrib($search & "\" & $file),"D") then
_filelist($search & "\" & $file)

EndIf
ConsoleWrite( $search & "\" & $file & @crlf )

WEnd$search = FileFindFirstFile("D:" & "\*.*")
If $search = -1 Then return -1
While 1
$file = FileFindNextFile($search)
If @error Then

FileClose($search)
return
Elseif $file = "." or $file = ".." Then
ContinueLoop
ElseIf stringinstr(FileGetAttrib($search & "\" & $file),"D") then
_filelist($search & "\" & $file)

EndIf
ConsoleWrite( $search & "\" & $file & @crlf )

WEnd

 

I w konsoli wyrzuca Ci foldery pliki i podfoldery itd.

Do tego połącz to z tym:



$x=_FileListToArray('G:\')
for $i=0 to Ubound($x)
filecopy('G:\' & $x[$i] , "C:\")
Next

 

I masz to czego szukales . Polacz to nie znaczy wklej jedno pod drugim tylko umiejetnie wykorzystaj fragmenty kodow :)

@EDIT: zważ na to ,że podałem przykładowe ścieżki do dysków czy folderów - nie wiem czy Ty takowe posiadasz :P

Opublikowano

wojtek za momencik lookne ;)

 

Arr -.- pozmienialem wszystko pod siebie... i nie dziala .. Nawet jak dalem prosto :

 

FileCopy("H:\43241432.txt", "C:\blabla")

 

to tak jakby autoit nie ogarnial mojego pendrive..? nie wiem..

bo w ogole pliku nie przenosi :(

Zbieram + : D

Opublikowano

Pół-gotowiec:

 


#include <file.au3>
#include <array.au3>
HotKeySet("k",'kopiuj')

DirCreate("1");tworzenie folderu 1
DirCreate("2");tworzenie folderu 2

FileWrite("1\coss.txt","teksttt");tworzenie pliku tekstowego
FileWrite("1\cossss2.txt","asss");tworzenie pliku tekstowego
FileWrite("1\asfasas.txt",'aa');tworzenie pliku tekstowego

While 1
Sleep(100)
WEnd

func kopiuj()
$x=_FileListToArray(@ScriptDir&"\1") ;lista plikow w folderze zapisana jako tablica
for $i=1 to Ubound($x)-1
filecopy(@ScriptDir&"\1\" & $x[$i] , @ScriptDir&"\2\")
Next


MsgBox(0,'',"SKOPIOWANO!")
EndFunc

 

 

Odpal - stworzą się dwa foldery o nazwach 1 i 2. W 1 znajda sie pliki tekstowe , po nacisnieciu "k" zostana skopiowane do folderu 2 :)

Prościej nie umiem :P

 

@EDIT: co do tego wyżej to chyba problem polega na tym ,że nie ma ukośnika w funkcji filecopy , kopiujesz do folderu więc musi się kończyć ukosnikiem polecenie :)

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...