casira Posted April 27, 2010 Share Posted April 27, 2010 Bir Sorum olacak.Ekran çözünürlüğünü geçici veya devamlı olarak değiştirebilirmiyiz. Mesela şu an bilgisayarım 1024*768 çözünürlükte ama ben bunu 5 dk.lığına veya sürekli 1280*1024 yapmak istiyorum. Quote Link to comment Share on other sites More sharing options...
Gαηgѕтєя94 Posted April 27, 2010 Share Posted April 27, 2010 Arkadaşlar Bende C:Documant and Setting-user-start menü-programlar-başlangıç'daki bir dosyayı silmek istiyorum autoıt kodu lazım bunun içinde Quote Link to comment Share on other sites More sharing options...
djonur007 Posted April 27, 2010 Share Posted April 27, 2010 Arkadaşlar Bende C:Documant and Setting-user-start menü-programlar-başlangıç'daki bir dosyayı silmek istiyorum autoıt kodu lazım bunun içinde @ProgramsCommonDir & "\Başlangıç\a.exe" burada a.exe senin sileceğin program adı. Quote Link to comment Share on other sites More sharing options...
blue_life Posted April 27, 2010 Share Posted April 27, 2010 @recep demirci Global $Desktop_With = @DesktopWidth Global $Desktop_Height = @DesktopHeight MsgBox(64,"Uygulanacak çözünürlülük!","1024 X 768") _ChangeScreenRes(1024,768) Sleep(5000); Sleeep komutuyla bekleme yapabilirsin (5 saniye) MsgBox(64,"Uygulanacak çözünürlülük!",$Desktop_With & " X " & $Desktop_Height) _ChangeScreenRes($Desktop_With,$Desktop_Height) Func _ChangeScreenRes($i_Width = @DesktopWidth, $i_Height = @DesktopHeight, $i_BitsPP = @DesktopDepth, $i_RefreshRate = @DesktopRefresh) If Not IsDeclared("OpenUser32Dll") Then Local $OpenUser32Dll = @WindowsDir & "\system32\user32.dll" Local Const $DM_PELSWIDTH = 0x00080000 Local Const $DM_PELSHEIGHT = 0x00100000 Local Const $DM_BITSPERPEL = 0x00040000 Local Const $DM_DISPLAYFREQUENCY = 0x00400000 Local Const $CDS_TEST = 0x00000002 Local Const $CDS_UPDATEREGISTRY = 0x00000001 Local Const $DISP_CHANGE_RESTART = 1 Local Const $DISP_CHANGE_SUCCESSFUL = 0 Local Const $HWND_BROADCAST = 0xffff Local Const $WM_DISPLAYCHANGE = 0x007E If $i_Width = "" Or $i_Width = -1 Then $i_Width = @DesktopWidth; default to current setting If $i_Height = "" Or $i_Height = -1 Then $i_Height = @DesktopHeight; default to current setting If $i_BitsPP = "" Or $i_BitsPP = -1 Then $i_BitsPP = @DesktopDepth; default to current setting If $i_RefreshRate = "" Or $i_RefreshRate = -1 Then $i_RefreshRate = @DesktopRefresh; default to current setting Local $DEVMODE = DllStructCreate("byte[32];int[10];byte[32];int[6]") Local $b = DllCall($OpenUser32Dll, "int", "EnumDisplaySettings", "ptr", 0, "long", 0, "ptr", DllStructGetPtr($DEVMODE)) If @error Then $b = 0 SetError(1) Return $b Else $b = $b[0] EndIf If $b <> 0 Then DllStructSetData($DEVMODE, 2, BitOR($DM_PELSWIDTH, $DM_PELSHEIGHT, $DM_BITSPERPEL, $DM_DISPLAYFREQUENCY), 5) DllStructSetData($DEVMODE, 4, $i_Width, 2) DllStructSetData($DEVMODE, 4, $i_Height, 3) DllStructSetData($DEVMODE, 4, $i_BitsPP, 1) DllStructSetData($DEVMODE, 4, $i_RefreshRate, 5) $b = DllCall($OpenUser32Dll, "int", "ChangeDisplaySettings", "ptr", DllStructGetPtr($DEVMODE), "int", $CDS_TEST) If @error Then $b = -1 Else $b = $b[0] EndIf Select Case $b = $DISP_CHANGE_RESTART $DEVMODE = "" Return 2 Case $b = $DISP_CHANGE_SUCCESSFUL DllCall($OpenUser32Dll, "int", "ChangeDisplaySettings", "ptr", DllStructGetPtr($DEVMODE), "int", $CDS_UPDATEREGISTRY) DllCall($OpenUser32Dll, "int", "SendMessage", "hwnd", $HWND_BROADCAST, "int", $WM_DISPLAYCHANGE, _ "int", $i_BitsPP, "int", $i_Height * 2 ^ 16 + $i_Width) $DEVMODE = "" Return 1 Case Else $DEVMODE = "" SetError(1) Return $b EndSelect EndIf EndFunc ;==>_ChangeScreenRes[/CODE] @Gαηgѕтєя94 Silmek istediğin kısayol için aşağıdaki scripti kullan. Misal silmek istediğin dosya isimi deneme.lnk ise; [CODE]_Startup_Del("deneme1.lnk") _Startup_Del("deneme2.lnk") Func _Startup_Del($FileName = "") Local $PR1 = @ProgramsCommonDir & "\Başlangıç\" Local $PR2 = @ProgramsDir & "\Başlangıç\" If $FileName = "" Then Return SetError(1) If FileExists($PR1 & $FileName) Then If StringInStr(FileGetAttrib($PR1 & $FileName),"R") Then FileSetAttrib($PR1 & $FileName,"-R") FileDelete($PR1 & $FileName) EndIf If FileExists($PR2 & $FileName) Then If StringInStr(FileGetAttrib($PR2 & $FileName),"R") Then FileSetAttrib($PR2 & $FileName,"-R") FileDelete($PR2 & $FileName) EndIf EndFunc[/CODE] Quote Link to comment Share on other sites More sharing options...
casira Posted April 29, 2010 Share Posted April 29, 2010 Bir sorum olacak.Bazı programları kurarken neti devre dışı bırakmak zorunda kalıyoruz.Bunları katılımsız yaparken kuruluma başlamadan önce neti devre dışı bırakıp kurulum bittikten sonra tekrar aktif yapabilirmiyiz. Yani neti devre dışı bırakmak için neler yapmalıyız? Quote Link to comment Share on other sites More sharing options...
blue_life Posted May 5, 2010 Share Posted May 5, 2010 @recep demirci Daha önce hiç ihtiyacım olmadı, lakin ilgili programın bağlandığı siteyi hosts dosyasına yazdırıp engelleyebilirsin. Yada tüm yeni erişimleri engellemek için dns adresini değiştirebilrsin veyahut ilgili bağdaştırıcının ayarlarını bozarsın vs vs. Araştırmak gerekiyor... Bu gün bir ara bakmaya çalışırım... Quote Link to comment Share on other sites More sharing options...
blackman12 Posted May 5, 2010 Share Posted May 5, 2010 autoit yerine netsh ı komut satırında kullanarak internet erişimini kesebilirsin. Quote Link to comment Share on other sites More sharing options...
casira Posted May 5, 2010 Share Posted May 5, 2010 blackman biraz daha anlatırmısın nasıl yapılır.yerel ağ bağlantısını kesip programı kurulumu bitince tekrar aktif yapmak istiyorum. Quote Link to comment Share on other sites More sharing options...
Gαηgѕтєя94 Posted May 5, 2010 Share Posted May 5, 2010 Elimde iki tane boot dosyası var adları ntkrnlpa.exe ve ntoskrnl.exe bunlar windows açıldığında çıkan boot dosyaları bunları autoıt ile Windows\System32 klasöründekileri ile değiştirmek istiyorum ama normal kopyala yapıştır yaptığında erişim engelleniyor yani kopyalayamıyorsun autoıt ile hem o engeli aşıcak bir kod ve hemde oraya bu iki dosyayı kopyalamasını istiyorum not : böyle birşey yok yapamassınız demeyin çünkü 2 yıl önce bir boot dosyası indirmiştim içindeki bir reg kaydı ve bat dosyası vardı direkt entegre etti windows açıkken Quote Link to comment Share on other sites More sharing options...
blue_life Posted May 5, 2010 Share Posted May 5, 2010 (edited) @recep demirci Evet @blackman12 söylediği gibi interneti için gerekli servisi veyahut servisleri durdurup interneti kesmen mümkün olabilir. Denemek lazım. @Gαηgѕтєя94 Çalışan bir dosyayı değiştirmek istersen sonuna .old - .bak - .tmp yazabilirsin. Diyelim shell32.dll dosyasını değiştireceğiz. Bunun için önce shell32.dll dosyasının adını değiştireceğiz. shell32.dll.old Sonrada kopyalatmak istediğim dosyayı ilgili konuma kopyalayacağız. Çok basit sayılır.... Bu arada özelden istediğin konuya cevap yazmıştım ama o arada internet düştü! Umarım sana ulaşmıştır. _BL_SYS_MOVE_FILE(@ScriptDir & "\shell32.dll",@WindowsDir & "\system32\shell32.dll") Func _BL_SYS_MOVE_FILE($Source,$Target) If (Not FileExists($Source) Or $Source = "") Then Return;Kopyalanacak dosya olmadığı için If FileExists($Target) Then Local $GetAttrib = FileGetAttrib($Target) If StringInStr($GetAttrib,"D") Then Return; Klasör olduğu için If StringInStr($GetAttrib,"R") Or StringInStr($GetAttrib,"S") Then FileSetAttrib($GetAttrib,"-RS") If FileExists($Target & ".old") Then $GetAttrib = FileGetAttrib($Target & ".old") If StringInStr($GetAttrib,"R") Or StringInStr($GetAttrib,"S") Then FileSetAttrib($GetAttrib,"-RS") EndIf FileMove($Target,$Target & ".old",1) EndIf FileMove($Source,$Target,1) EndFunc[/CODE] Neyse kolay gelsin arkadaşlar... Edited May 5, 2010 by blue_life Quote Link to comment Share on other sites More sharing options...
blue_life Posted May 5, 2010 Share Posted May 5, 2010 (edited) @recep demirci Dns yöntemini denim kendi bilgisayarımda (XP SP3 - X86) dendim ve çalıştı! Umarım sende de işe yarar.... Kolay gelsin... İlgili kodlar! _BL_Block_Net() MsgBox(64,"","Internet kapandı") _BL_UnBlock_Net() MsgBox(64,"","Internet açıldı") Func _BL_Block_Net() Local $ERROR_DNS = "127.0.0.1" Local $BL_FND_DNS[1][2],$1 = 1 Local $BL_DNS_VALUE,$BL_DNS_VALUE1 While 1 $BL_DNS_VALUE = RegEnumKey("HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces", $1 ) If @error <> 0 then ExitLoop ReDim $BL_FND_DNS[$1][2] $BL_FND_DNS[$1 - 1][0] = $BL_DNS_VALUE $BL_FND_DNS[$1 - 1][1] = RegRead("HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\" & $BL_DNS_VALUE,"NameServer") RegWrite("HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\" & $BL_DNS_VALUE,"BlueLife_NS","REG_SZ",$BL_FND_DNS[$1 - 1][1]) RegWrite("HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\" & $BL_DNS_VALUE,"NameServer","REG_SZ",$ERROR_DNS) RegWrite("HKLM\SYSTEM\ControlSet001\Services\Tcpip\Parameters\Interfaces\" & $BL_DNS_VALUE,"NameServer","REG_SZ",$ERROR_DNS) RegWrite("HKLM\SYSTEM\ControlSet002\Services\Tcpip\Parameters\Interfaces\" & $BL_DNS_VALUE,"NameServer","REG_SZ",$ERROR_DNS) $1 += 1 WEnd EndFunc Func _BL_UnBlock_Net() Local $BL_DNS_VALUE,$BL_DNS_VALUE1,$1 = 1 While 1 $BL_DNS_VALUE = RegEnumKey("HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces", $1 ) If @error <> 0 then ExitLoop $BL_DNS_VALUE1 = RegRead("HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\" & $BL_DNS_VALUE,"BlueLife_NS") RegWrite("HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\" & $BL_DNS_VALUE,"NameServer","REG_SZ",$BL_DNS_VALUE1) RegWrite("HKLM\SYSTEM\ControlSet001\Services\Tcpip\Parameters\Interfaces\" & $BL_DNS_VALUE,"NameServer","REG_SZ",$BL_DNS_VALUE1) RegWrite("HKLM\SYSTEM\ControlSet002\Services\Tcpip\Parameters\Interfaces\" & $BL_DNS_VALUE,"NameServer","REG_SZ",$BL_DNS_VALUE1) $1 += 1 WEnd EndFunc[/CODE] Edit: Unutmuşum. Interneti yeni kullanan programlar için geçerlidir. Misal Internet explorer açıksa bunu bu kodlar ile engelleyemezsin. Eğer internet explorer açık deyilse ve işlemden sonra açılırsa internete ulaşamaz... Edited May 5, 2010 by blue_life Quote Link to comment Share on other sites More sharing options...
Gαηgѕтєя94 Posted May 6, 2010 Share Posted May 6, 2010 _BL_SYS_MOVE_FILE(@ScriptDir & "\ntoskrnl.exe",@WindowsDir & "\system32\ntoskrnl.exe") Func _BL_SYS_MOVE_FILE($Source,$Target) If (Not FileExists($Source) Or $Source = "") Then Return;Kopyalanacak dosya olmadığı için If FileExists($Target) Then Local $GetAttrib = FileGetAttrib($Target) If StringInStr($GetAttrib,"D") Then Return; Klasör olduğu için If StringInStr($GetAttrib,"R") Or StringInStr($GetAttrib,"S") Then FileSetAttrib($GetAttrib,"-RS") If FileExists($Target & ".old") Then $GetAttrib = FileGetAttrib($Target & ".old") If StringInStr($GetAttrib,"R") Or StringInStr($GetAttrib,"S") Then FileSetAttrib($GetAttrib,"-RS") EndIf FileMove($Target,$Target & ".old",1) EndIf FileMove($Source,$Target,1) EndFunc ntoskrnl.exe dosyası için böyle düzenledim acaba doğrumu bide bende 2 tane dosya kopyalayacağım ona göre kodu düzenlermisin acaba iyi günler emeğin için tşkler Quote Link to comment Share on other sites More sharing options...
blue_life Posted May 6, 2010 Share Posted May 6, 2010 (edited) Evet doğru. Farklı bir dosya kopayalatmak için misalen; Bu arada ben filemove yazmışım. Filecopy kullanılması daha uygun. Neyse aşağıdaki örneği incele! _BL_SYS_MOVE_FILE(@ScriptDir & "\ntoskrnl.exe", @WindowsDir & "\system32\ntoskrnl.exe") _BL_SYS_MOVE_FILE(@ScriptDir & "\Test.exe", @WindowsDir & "\system32\Test.exe") Func _BL_SYS_MOVE_FILE($Source, $Target) If (Not FileExists($Source) Or $Source = "") Then Return;Kopyalanacak dosya olmadığı için If FileExists($Target) Then Local $GetAttrib = FileGetAttrib($Target) If StringInStr($GetAttrib, "D") Then Return; Klasör olduğu için If StringInStr($GetAttrib, "R") Or StringInStr($GetAttrib, "S") Then FileSetAttrib($GetAttrib, "-RS") If FileExists($Target & ".old") Then $GetAttrib = FileGetAttrib($Target & ".old") If StringInStr($GetAttrib, "R") Or StringInStr($GetAttrib, "S") Then FileSetAttrib($GetAttrib, "-RS") EndIf FileMove($Target, $Target & ".old", 1) EndIf FileCopy($Source, $Target, 9) EndFunc ;==>_BL_SYS_MOVE_FILE[/CODE] Edited May 6, 2010 by blue_life Quote Link to comment Share on other sites More sharing options...
Gαηgѕтєя94 Posted May 6, 2010 Share Posted May 6, 2010 yani yapacağım şey şu ilk önce bu verdiğin kod ile dosyanın ismi değişecek sonradan ben bir bat dosyası ile kendi elimde olan bir boot dosyasını oraya kopyala komutumu vermem gerekiyor Quote Link to comment Share on other sites More sharing options...
blue_life Posted May 6, 2010 Share Posted May 6, 2010 @Gαηgѕтєя94 Yukarıdaki örnekte zaten dosya taşınıp, yanındaki ilgili dosya ilgili konuma kopyalanıyor.Bat dosyasına gerek yok! Şayet sen .bat ile yapacaksan hepsini bat ile yap. Önce ilgili dosyayı sonuna .old koyarak taşıtıp, sonrada kopyalamayı yap! Quote Link to comment Share on other sites More sharing options...
Gαηgѕтєя94 Posted May 6, 2010 Share Posted May 6, 2010 Autoıt daha sağlam bence yani bu verdiğin kodun yanına kendi boot dosyamı eklemem lazım anladım şimdi emeğin için tşkler Quote Link to comment Share on other sites More sharing options...
Gαηgѕтєя94 Posted May 7, 2010 Share Posted May 7, 2010 @blue_life özelden msj yollayamıyorum gelen kutun dolu o yüzden bana verdiğin kodu anlamadım ama senin bana önceki msjında verdiğin kodda _Mesaj_Ver("BlueXPE için, *.inf dosyalarındaki hwids" & @crlf & "bilgileri okunurken lütfen bekleyiniz...") ;İşlemler buraya Sleep(2500) _Mesaj_Ver("İşlme tamamlandı! Başarılar dilerim..." & @crlf & "BlueLife",2500) Func _Mesaj_Ver($P_MSG = "",$P_Wait = 0, $P_With = 300, $P_Height = 70) If Not IsDeclared("Message_Gui") Then Global $Message_Gui,$Message_Text,$Tray_Heihgt = WinGetHandle("[CLASS:Shell_TrayWnd]") If $Tray_Heihgt Then $Tray_Heihgt = WinGetPos($Tray_Heihgt) $Tray_Heihgt = $Tray_Heihgt[3] Else $Tray_Heihgt = 0 EndIf ;~ MsgBox(64,"",$Tray_Heihgt) $Message_Gui = GUICreate("BlueXPE Bilgilendirici", $P_With, $P_Height, @DesktopWidth - ($P_With + 2), (@DesktopHeight - $Tray_Heihgt) - $P_Height, 0x00800000, BitOR(0x00000008, 0x00000080)) GUISetFont(10, 800, 0, "MS Sans Serif") ;~ GUISetBkColor(0x000080) GUISetBkColor(0x0d8be9) $Message_Text = GUICtrlCreateLabel($P_MSG, 40, 7, $P_With - 45, $P_Height - 30, 0x01) GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif") GUICtrlSetColor(-1, 0xFFFFFF) GUICtrlCreateIcon("Shell32.dll", -222, 3, 3,32,32) ;~ WinSetTrans($Message_Gui,"",200) DllCall("user32.dll", "int", "AnimateWindow", "hwnd", $Message_Gui, "int", 250, "long", 0x00040008);slide-in GUISetState(@SW_SHOW) ;~ _GUI_YUVARLA($Message_Gui, 5, 5, $P_With, $P_Height) Else If $P_MSG = "" Then $P_Wait = 5 Else WinMove($Message_Gui, "", Default, (@DesktopHeight - $Tray_Heihgt) - $P_Height, $P_With, $P_Height) ;~ _GUI_YUVARLA($Message_Gui, 5, 5, $P_With, $P_Height) GUICtrlSetPos($Message_Text, 40, 7, Default, $P_Height - 30) GUICtrlSetData($Message_Text, $P_MSG) EndIf EndIf If $P_Wait > 0 Then Sleep($P_Wait) DllCall("user32.dll", "int", "AnimateWindow", "hwnd", $Message_Gui, "int", 250, "long", 0x00050004) Endif EndFunc ;==>_Mesaj_Ver bu kodda dosyayı nereye ekliycez yani bu exe çalıştığında başka dosyayı nasıl çalıştırabiliriz bir yazı gördüm bu kodda işlemler buraya oraya çalıştırmak istediğimiz dosyalarımı yazıyoruz acaba Quote Link to comment Share on other sites More sharing options...
blackman12 Posted May 11, 2010 Share Posted May 11, 2010 Daha önce hazırladığım dosya yedekleme scriptinin 2 satırını değiştirerek bir fileinstall hazırlama scripti yaptım.Böylece bir ton klasör ve onların altındaki bir ton dosyayı scriptinize gömerken uğraşmayacaksınız. Kullanımı: _fileinstaller("yaz.au3","C:\Documents and Settings\BlackXP\Desktop\deneme ad",@tempdir,1)[/CODE] "yaz.au3" > yazılacak script dosyası "c:\....\deneme ad" > kaynak dosyası @tempdir > dosyaların çıkarılacağı yer 1 veya 0 > 1 ise dosya varken üstüne yazılır, 0 sa üstüne yazılma olmaz. [CODE]func _fileinstaller($file,$yol,$kopyalama = @tempdir,$ustuneyazma = 0) if StringRight($yol,1) <> "\" Then $yol = $yol & "\" if StringRight($kopyalama,1) <> "\" Then $kopyalama = $kopyalama & "\" if FileExists($yol) = 1 and StringInStr(FileGetAttrib($yol),"D") then $dosyalar = _FileListToArray($yol,"*",0) if not @error Then for $i = 1 to $dosyalar[0] if not StringInStr(FileGetAttrib($yol&"\"&$dosyalar[$i]),"D") Then FileWriteLine($file,'FileInstall("' & $yol &$dosyalar[$i]&'","'&$kopyalama&$dosyalar[$i]&'",'&$ustuneyazma&")") Else _fileinstaller($file,$yol&$dosyalar[$i],$kopyalama&$dosyalar[$i],$ustuneyazma) EndIf Next Return 0 Elseif @error = 1 Then SetError(1) Return 1 Elseif @error = 2 Then SetError(2) Return 2 Elseif @error = 3 Then SetError(3) Return 3 Elseif @error = 4 Then SetError(4) Return 4 EndIf EndIf EndFunc Func _FileListToArray($sPath, $sFilter = "*", $iFlag = 0) Local $hSearch, $sFile, $sFileList, $sDelim = "|" $sPath = StringRegExpReplace($sPath, "[\\/]+\z", "") & "\"; ensure single trailing backslash If Not FileExists($sPath) Then Return SetError(1, 1, "") If StringRegExp($sFilter, "[\\/:><\|]|(?s)\A\s*\z") Then Return SetError(2, 2, "") If Not ($iFlag = 0 Or $iFlag = 1 Or $iFlag = 2) Then Return SetError(3, 3, "") $hSearch = FileFindFirstFile($sPath & $sFilter) If @error Then Return SetError(4, 4, "") While 1 $sFile = FileFindNextFile($hSearch) If @error Then ExitLoop If ($iFlag + @extended = 2) Then ContinueLoop $sFileList &= $sDelim & $sFile WEnd FileClose($hSearch) If Not $sFileList Then Return SetError(4, 4, "") Return StringSplit(StringTrimLeft($sFileList, 1), "|") EndFunc[/CODE] Quote Link to comment Share on other sites More sharing options...
casira Posted May 11, 2010 Share Posted May 11, 2010 Au3 Recorder ile yaptığımız mouse hareketlerini kaydediyorum fakat uygulamada bu hareketler çok hızlı uygulanıyor ve sorun olabiliyor.Kaydedilen fare hareketlerinin yavaş yavaş uygulanması için ne yapmalıyım. Quote Link to comment Share on other sites More sharing options...
blackman12 Posted May 11, 2010 Share Posted May 11, 2010 Kod aralarında sleep koyarak bekleme yapmasını sağlayabilirsiniz. Quote Link to comment Share on other sites More sharing options...
neccooy Posted May 15, 2010 Share Posted May 15, 2010 Öyle bir script olmalı ki cd anadizini içerisindeki "Setup" klasörünün içindeki katılımsız programları teker teker kursun. Bunu nasıl yapabilirim. For in next ile yapılabilir mi acaba diye kurcaladım, beceremedim. Quote Link to comment Share on other sites More sharing options...
morning Posted May 15, 2010 Share Posted May 15, 2010 (edited) @neccooy,filefind...file komutlarıyla olabilir. Aşağıda yaptım.AutoIt örneğini düzenleyerek. ; Shows the filenames of all files in the current directory. $search = FileFindFirstFile("*.exe") ; Check if the search was successful If $search = -1 Then Exit EndIf While 1 $file = FileFindNextFile($search) If @error Then ExitLoop RunWait($file) WEnd FileClose($search)[/CODE] Edited May 15, 2010 by morning Quote Link to comment Share on other sites More sharing options...
blackman12 Posted May 15, 2010 Share Posted May 15, 2010 Konunun önceki sayfalarında yazmıştım: #Include <File.au3> Dim $alfabe[25] = ["C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"] global $cdrom = "", $setup = "" for $a in $alfabe if FileExists($a & ":\a.txt") = 1 Then;a.txt yerine cd ana dizininde olan bir dosya adı $cdrom = $a & ":\" $setup = $cdrom & "Setup\" EndIf Next if $cdrom <> "" Then $dosyalar = _FileListToArray($setup,"*",1);sadece dosyaları geri döndürür klasörler listelenmez. for $i = 1 to $dosyalar[0] shellexecute($dosyalar[$i]) next EndIf[/CODE] tabi kodları burada yazdığım için doğruluğu kesin değil ama sen halledersin Quote Link to comment Share on other sites More sharing options...
ortho Posted May 18, 2010 Share Posted May 18, 2010 (edited) Ustalarım, sayenizde autoit'le az bişeyler yapabiliyorum. Eskiden oynadığımız sayı oyunu vardı, dün onu yapayım dedim. 4 rakamlı ve rakamları birbirinden farklı bir sayı tutuyor bilgisayar. Sonra bizden tahmin istiyor. Rakamları ve yerleri tutarsa + olarak, rakamları tutup da yerleri tutmazsa - olarak bize ip ucu veriyor. +4 olursa sayıyı bildik demektir. Muhtemelen çoğu kişi bu oyunu biliyordur. Kodlarını yazdım ve çalışıyor. Bir eksiğim ya da yanlışım varsa ve düzeltirseniz sevinirim: Global $sRandom1 = "" Global $randarray[4] Global $answer1 Global $ansarray[4] Global $Plus = 0 Global $Minus = 0 Global $Ok = 1 Global $Ok2 = 1 Global $Yard = 0 Global $Sayac = 0 For $i = 0 To 3 $randarray[$i] = Random(0, 9, 1) If $i = 0 Then If $randarray[0] = "0" Then Do $randarray[$i] = Random(0, 9, 1) Until $randarray[0] <> "0" EndIf $sRandom1 &= $randarray[$i] EndIf If $i = 1 Then $a = StringCompare($randarray[1], $randarray[0]) If $a = 0 Then Do $randarray[$i] = Random(0, 9, 1) $a = StringCompare($randarray[1], $randarray[0]) Until $a <> 0 EndIf $sRandom1 &= $randarray[$i] EndIf If $i = 2 Then $a = StringCompare($randarray[2], $randarray[0]) $b = StringCompare($randarray[2], $randarray[1]) If $a = 0 Or $b = 0 Then Do $randarray[$i] = Random(0, 9, 1) $a = StringCompare($randarray[2], $randarray[0]) $b = StringCompare($randarray[2], $randarray[1]) Until $a <> 0 And $b <> 0 EndIf $sRandom1 &= $randarray[$i] EndIf If $i = 3 Then $a = StringCompare($randarray[3], $randarray[0]) $b = StringCompare($randarray[3], $randarray[1]) $c = StringCompare($randarray[3], $randarray[2]) If $a = 0 Or $b = 0 Or $c = 0 Then Do $randarray[$i] = Random(0, 9, 1) $a = StringCompare($randarray[3], $randarray[0]) $b = StringCompare($randarray[3], $randarray[1]) $c = StringCompare($randarray[3], $randarray[2]) Until $a <> 0 And $b <> 0 And $c <> 0 EndIf $sRandom1 &= $randarray[$i] EndIf Next MsgBox(0, "", "Aklımdan 4 basamaklı ve rakamları birbirinden farklı" & @CRLF & "bir sayı tuttum. Bakalım bilebilecek misin?") While Not $Plus = 4 Do $Plus = 0 $Minus = 0 $k = 0 $Ok = 1 $Ok2 = 1 $answer1 = InputBox("Tahmin", "Tahmininizi yazın" & @CRLF & "(Çıkış için Cancel'a basınız)" & @CRLF & 'Yardım için "help" yazınız', "", " M4", 190, 140) If @error = 1 Then Exit $i = 0 If $answer1 = "help" Then MsgBox(0, "KOPYA", $sRandom1) $Yard = 1 ExitLoop EndIf For $i = 0 To 3 $ansarray[$i] = StringMid($answer1, $i + 1, 1) If $i = 0 And $ansarray[$i] = "0" Then MsgBox(0, "Uyarı", "İlk rakam sıfır olamaz") $Ok = 0 $Ok = 0 EndIf $IsNum = StringIsDigit($ansarray[$i]) If $IsNum = 0 Then MsgBox(0, "Uyarı", "Sadece rakam giriniz") $Ok = 0 ExitLoop EndIf Next $i = 0 If $Ok = 1 Then For $i = 0 To 2 If $i = 0 Then If ($ansarray[0] = $ansarray[1]) Or ($ansarray[0] = $ansarray[2]) Or ($ansarray[0] = $ansarray[3]) Then MsgBox(48, "Uyarı", "Lütfen rakamları farklı olsun") $Ok2 = 0 ExitLoop EndIf EndIf If $i = 1 Then If ($ansarray[1] = $ansarray[2]) Or ($ansarray[1] = $ansarray[3]) Then MsgBox(48, "Uyarı", "Lütfen rakamları farklı olsun") $Ok2 = 0 ExitLoop EndIf EndIf If $i = 2 Then If ($ansarray[2] = $ansarray[3]) Then MsgBox(48, "Uyarı", "Lütfen rakamları farklı olsun") $Ok2 = 0 ExitLoop EndIf EndIf Next EndIf $i = 0 For $i = 0 To 3 If $randarray[$i] = $ansarray[$i] Then $Plus = $Plus + 1 EndIf Next $i = 0 $k = 0 For $i = 0 To 3 For $k = 0 To 3 If $ansarray[$i] = $randarray[$k] Then $Minus = $Minus + 1 EndIf Next Next $Minus = $Minus - $Plus $Sayac = $Sayac + 1 If $Plus = 4 Then If $Yard = 1 Then MsgBox(0, "Tebrikler", $Sayac & " hakta bildiniz!" & @CRLF & "(Biraz yardım aldık galiba:))") Else MsgBox(0, "Tebrikler", $Sayac & " hakta bildiniz!") EndIf Else If $Ok = 1 And $Ok2 = 1 Then MsgBox(0, "İpucu", "+" & $Plus & " -" & $Minus) EndIf Until $Plus = 4 WEnd Ayrıca birkaç sorum olacaktı: 1.Inputbox aracılığıyla alınan girdi string olarak mı alınıyor sadece? IsNumber komutuyla girilen değerin rakam içerip içermediğini kontrol etmeye çalıştım ama olmadı. Sonradan StringIsDigit komutuyla işi yaptım. 2.Inputbox veya MsgBox ile yazdığımız stringleri kutuya ortalayarak yazdırabilir miyiz? 3.Setup'ı aracılığıyla kurmakta olduğumuz bir programın nereye hangi dosyaları attığını, registry'e neler girdiğini öğrenebilir miyiz? Araştırdım ama bir yöntem ya da bu işi yapan bir program bulamadım. Şimdiden yardımlarınız için teşekkürler. Edited May 19, 2010 by ortho Quote Link to comment Share on other sites More sharing options...
By_Microp Posted May 24, 2010 Share Posted May 24, 2010 (edited) Ben Logonui.exe dosyasını değiştirmek istiyorum ama katılımsız olarak bir tema yüklemiştim dün logon değiştirmek içinde 2 tane reg kaydı vardı Install.TXT DOSYASINI Açtığımda şöyle yazıyordu : WinXP_SP3_Logon.exe Dosyasını C:WİNDOWS Klasörüne Kopyala Sonra setup.reg dosyasını çalıştır sonra restore etmek için ise Restore.reg dosyasını çalıştır diyor Bunların Hepsini nasıl katılımsız yaptırabilirim autoıt ile ??? Edited May 24, 2010 by By_Microp Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.