Jump to content

İleri düzey AutoIT örnekleri


sk8er_boi
 Share

Recommended Posts

Geldim :) Evet aynen söylediğin gibi @talha_252

_Temp_7z_Remove()
Func _Temp_7z_Remove()
	Local $search = FileFindFirstFile(@TempDir & "\*.*") ,$file
	If $search = -1 Then
		Return
	EndIf
	While 1
		$file = FileFindNextFile($search)
		If @error Then ExitLoop
		If StringInStr(FileGetAttrib(@TempDir & "\" & $file),"D") And StringLeft($file,2) = "7z" Then
			FileSetAttrib(@TempDir & "\" & $file,"-RS",1)
			DirRemove(@TempDir & "\" & $file,1)
		EndIf
	WEnd
	FileClose($search)
EndFunc

@djonur007

Sen tam olarak ne yapmak istiyorsun? Biraz daha detay verirmelisin.

Link to comment
Share on other sites

pek özle değil :D işinize yaramaz zaten. :D

<IMAGE INDEX="1">
  <DIRCOUNT>11581</DIRCOUNT>
  <FILECOUNT>53877</FILECOUNT>
  <TOTALBYTES>8537329859</TOTALBYTES>
  <CREATIONTIME>
	<HIGHPART>0x01CA0443</HIGHPART>
	<LOWPART>0x6568BDF8</LOWPART>
  </CREATIONTIME>
  <LASTMODIFICATIONTIME>
	<HIGHPART>0x01CA12E2</HIGHPART>
	<LOWPART>0xBDE6C2AA</LOWPART>
  </LASTMODIFICATIONTIME>
  <WINDOWS>
	<ARCH>0</ARCH>
	<PRODUCTNAME>Microsoft® Windows® Operating System</PRODUCTNAME>
	<EDITIONID>Ultimate</EDITIONID>
	<INSTALLATIONTYPE>Client</INSTALLATIONTYPE>
	<HAL>acpiapic</HAL>
	<PRODUCTTYPE>WinNT</PRODUCTTYPE>
	<PRODUCTSUITE>Terminal Server</PRODUCTSUITE>
	<LANGUAGES>
  	<LANGUAGE>tr-TR</LANGUAGE>
  	<DEFAULT>tr-TR</DEFAULT>
	</LANGUAGES>
	<VERSION>
  	<MAJOR>6</MAJOR>
  	<MINOR>1</MINOR>
  	<BUILD>7600</BUILD>
  	<SPBUILD>16385</SPBUILD>
  	<SPLEVEL>0</SPLEVEL>
	</VERSION>
	<SYSTEMROOT>WINDOWS</SYSTEMROOT>
  </WINDOWS>
-------------------------------------------------------------------------
  <NAME>Windows 7 Ultimate 32 Bit</NAME>
------------------------------------------------------------------------
 <DESCRIPTION>Windows 7 Ultimate 32 Bit Türkçe - By M.Baran</DESCRIPTION>
  <FLAGS>Ultimate</FLAGS>
  <HARDLINKBYTES>3324040481</HARDLINKBYTES>
  <DISPLAYNAME>Windows 7 Ultimate 32 Bit</DISPLAYNAME>
  <DISPLAYDESCRIPTION>Windows 7 Ultimate 32 Bit Türkçe - By M.Baran</DISPLAYDESCRIPTION>
</IMAGE>

buradaki Name değerini okuyacak. tabi burası değişken :D

Edited by djonur007
Link to comment
Share on other sites

@djonur007

Bu iş için herangi bir udf ye gerek yok... Basit bir şekilde;

Tabi aşağıdaki örenek ile farklı aralıklarıda bulabilirsin...

Global $OKU = FileRead(@ScriptDir & "\ayar.xml")
MsgBox(64,"",_Bl_XML_MID($OKU,"<NAME>", "</NAME>",1))

Func _Bl_XML_MID($BL_TEXT,$FIRST,$SECOND,$Start = 1)
	Local $BL_RETURN,$INSTR = StringInStr($BL_TEXT,$FIRST,0,$Start)
	If not $INSTR Then Return SetError(1,0,"")
	$BL_RETURN = StringTrimLeft($BL_TEXT,$INSTR + (StringLen($FIRST) -1))
	$INSTR = StringInStr($BL_RETURN,$SECOND)
	If not $INSTR Then Return SetError(1,0,"")
	$BL_RETURN = StringLeft($BL_RETURN,$INSTR -1)
	Return $BL_RETURN
EndFunc

Link to comment
Share on other sites

@Aqil990

Okutabilrisin. Misal elimizde şöyle bir yazı var.

Selam millet nasılsınız?

Biz Selam ile nasılsınız? arasındaki yazıyı bulmak istiyoruz. Bu aradaki yazı tabi değişken.

_Bl_XML_MID("Selam millet nasılsınız?","Selam ","nasılsınız?") yazarsam aradaki yazıyı bulmuş olurum.

Elimizdeki yazıda birden fazla aynı yazılar mevcutsa, misal yazımız şöyle olsun.

Selam millet nasılsınız? Selam tnctr ahalisi nasılsınız?

Bizi ikinci Selam ile nasılsınız? arasındaki yazıyı bulmak istiyoruz. O zaman;

_Bl_XML_MID("Selam millet nasılsınız? Selam tnctr ahalisi nasılsınız?","Selam ","nasılsınız?",2)

Umarım anlamıştırsın.

Edited by blue_life
Link to comment
Share on other sites

@peerfen

Malesef cd sürücünü kapağını kitlemek için herangi bir kod mevcut deyil!

Tabi ufaklık pc yanına geldiği zaman için bir önlem alabilirsin.

Misal aşağıdaki kodu compile et ve çalıştır. Kapak açılmadan tekrar kapanacaktır.

Lakin birden fazla sürücün var ise ve sürücülerinden birisi cdtray komutuna devamlı tepki verirse sorunlu olabilir. Yine de denemeye değer...

Local $CD_DVD_DRV = DriveGetDrive("CDROM"),$i
If @error Then Exit
While 1
	For $i = 1 to $CD_DVD_DRV[0]
		CDTray($CD_DVD_DRV[$i], "Close")
	Next
	Sleep(100)
WEnd

Link to comment
Share on other sites

#Region --- CodeWizard generated code Start ---

;ToolTip features: Text=Yes, X Coordinate=Yes, Y Coordinate=Yes, Title=Yes, No icon

If Not IsDeclared("sToolTipAnswer") Then Local $sToolTipAnswer

$sToolTipAnswer = ToolTip("Kurulum Tamamlandı",1300,820,"Bilgi",0,0)

#EndRegion --- CodeWizard generated code End ---

Sleep(3000)

bu kodlarla çıkan bilgi mesajının ekranın çözünürlüğünü otomatik alıp saatin üstünde çıkmasını nasıl sağlarım arkadaşlar.

Link to comment
Share on other sites

@ali::12

TrayTip niye kullanmıyorsun?

TrayTip("", "Kurulum Tamamlandı.", 5,1)
Sleep(2000)

ToolTip kullanmak istiyorsan;

Global $BL_Shell_Pos = WinGetPos(WinGetHandle("[CLASS:Shell_TrayWnd]"))
Global $sToolTipAnswer = ToolTip("Kurulum Tamamlandı",@DesktopWidth - 130 ,@DesktopHeight - ($BL_Shell_Pos[3] + 60),"Bilgi",1,0)
Sleep(3000)

Tabi yazdığın cümlenin uzunluğuna göre rakamlar düzenlenmeli!

Link to comment
Share on other sites

Bir arkadaş özelden NET Framework v3.0 yüklü olup olmadığını nasıl öğrenebiliriz diyi bir mesaj atmıştı.

Kısaca Registryden ufak bir kontrol yaparak anlayabiliyoruz.

Aşağıdaki örnekte misal v4.0 yüklü olsa bile olumlu yanıt gelecektir.

Tab obj vs gibi farklı yöntemlerde vardır ama, bu yönteminde sorunsuz çalışacağını düşünüyorum.

Ayrıca bu örnek sadece v3.0 için deyildir... Örneği inceleyiniz...

If Not _Bl_NetFR_Check() Then ;Yüklü deyilse
	MsgBox(16,"","Yüklü deyil")
	Exit
EndIf
MsgBox(64,"","Yüklü")

Func _Bl_NetFR_Check($Version = "v3.0")
	;Net Versionları...
	;Net2 = v2.0.50727
	;Net3 = v3.0
	;Net4 = v4
	;Net4 = v4.0
	Local $Net_F_Read = RegEnumKey("HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\" & $Version,1)
	If @error <> 0 then Return False
	Return True
EndFunc

Link to comment
Share on other sites

  • 2 hafta sonra ...

3 soruda ben sorayım bari konu şenlensin :)

1. Soru

Elimde program files içine kopyalanacak 3 adet compile edilmiş exe dosyası var. Ben bunları tek scriptte toplamak istiyorum. Yani au3 olarak scripte ekletip (boyutunun küçük olması açısından) ayrı ayrı compile edilmesi mümkünmüdür.

2. Soru

Exeler program files içinde bir klasöre çıkartıldıktan sonra başlat menüsü programlar içinde bir dizine bunların kısayolları eklenecek ama @ProgramsCommonDir ile birçok deneme yaptım çözüme ulaşamadım. Dizin belirtmem gerekiyor ama diğer windows sürümlerinde dizinin yeri farklıdır diye tırsıyorum :D

3. Soru

Ekrana çıkacak splash.png var. Ekranı ortalamak için alttaki kodda Width ve Height kaç olmalı. Göz kararı 100 e 100 yaptım ama emin değilim.

$yGUI = GUICreate("", 172, 128, (@DesktopWidth/2)-100, (@DesktopHeight/2)-100, $WS_POPUP , $WS_EX_LAYERED + $WS_EX_TOOLWINDOW+$WS_EX_TOPMOST)

Link to comment
Share on other sites

@Hemoroid

1. Cevap

Bir au3 dosyasını compile etmek için bazı dosyalara ihtiyacın olacaktır. Yani çalışmanın kapasitesi haliyle yine büyüyecektir.

Tabi autoit yüklü olmayan bir pcde de direkt au3, a3x dosyalarını çalıştırabilrisin. (Autoit ile hazırlanmış herangi bir exe yeterli)

Lakin üç çalışmayıda bir autoit.exe sinde birleştirebilirsin. (Ben genelde bu yöntemi kullanırım)

Bunun için bir çok yöntem bulunnmakta ama malesef kısa keseceğim. Şimdi kararın değiştimi? Ne yapmak istiyorsun?

2. Cevap

Bir örnek verim kurcala!

;Dosya Adı|Kısayol konumu|Çalışma dizini|Parametre|Açıklama|Simge|Simge numarası|Başlagıç sitili|Kısayol tuşu
BL_KISAYOL(@AutoItExe, @ProgramsCommonDir & "\!Deneme\!Deneme")
Func BL_KISAYOL($S_file, $S_lnk, $S_workdir = "", $_args = "", $_desc = "", $_icon = "", $_icon_num = 0, $_state = "", $_hotkey = "")
	Local $S_Folder
	If $_icon_num = "" Then $_icon_num = 0
	If StringRight($S_lnk, 4) <> ".lnk" Then $S_lnk &= ".lnk"
	If Not StringInStr($S_file, ":\", 0) Then $S_file = @ScriptDir & "\" & $S_file
	If Not FileExists($S_file) Then Return -1
	$S_Folder = StringSplit($S_lnk, "\")
	$S_Folder = StringLeft($S_lnk, StringInStr($S_lnk, $S_Folder[$S_Folder[0]]) - 2)
	If Not FileExists($S_Folder) Then DirCreate($S_Folder)
	FileCreateShortcut($S_file, $S_lnk, $S_workdir, $_args, $_desc, $_icon, $_hotkey, $_icon_num, $_state)
EndFunc   ;==>KISAYOL

3. Cevap

-1 yaz...

$yGUI = GUICreate("", 172, 128, -1, -1, $WS_POPUP , $WS_EX_LAYERED + $WS_EX_TOOLWINDOW+$WS_EX_TOPMOST)

Kolay gelsin...

Link to comment
Share on other sites

Ustam çok saol.

1. sorudan vazgeçtim :) Zaten boyut olarak çok büyük olmadı sandığım gibi.

2. soruya verdiğin cevap fikir oluşturdu kafamda, şu şekilde hallettim. Fonksyonlar kafamı kurcalamadan.

FileSetAttrib(@UserProfileDir & @ProgramsDir, "-RSA")
DirCreate(@ProgramsDir & "\Deneme\")
FileCreateShortcut(@ProgramFilesDir & "\Deneme\Deneme.exe", @ProgramsDir & "\Deneme\Deneme.lnk", @ProgramFilesDir & "\Deneme\")

Teşekkürler tekrar.:rolleyes:

Edited by Hemoroid
Link to comment
Share on other sites

bi soruda ben soruyum :)

simdi GUICtrlCreateList (listview yok list)

simdi bu liste ekliyorum itemleri bana Listede secilmis itemi nasil bildiririm

yani buttona tiklayinca listde secilmish satiri gostersin mesela.

Ikinci sorum su mp3 ler okutmaq icin program yazasi olsak play list icin hangisin kullanmak

iyi? listviewmi? listmi? listboxmu?

Yada hic birinimi?) :D:D:D:D

Simdiden tewekkurler.

Link to comment
Share on other sites

@Aqil990

Yarıdım dosysında gerekli örnek zaten var!

#include <GUIConstantsEx.au3>
Opt('MustDeclareVars', 1)
Example()

Func Example()
	Local $add, $clear, $mylist, $Slect, $msg
	GUICreate("My GUI list") ; will create a dialog box that when displayed is centered
	$add = GUICtrlCreateButton("Ekle", 64, 32, 75, 25)
	$clear = GUICtrlCreateButton("Sil", 64, 72, 75, 25)
	$mylist = GUICtrlCreateList("Murat Kekilli", 176, 32, 121, 97)
	GUICtrlSetLimit(-1, 200) 	; to limit horizontal scrolling
	GUICtrlSetData(-1, "Murat Göğebakan")
	$Slect = GUICtrlCreateButton("Seçili olan", 64, 160, 175, 25)
	GUISetState()
	$msg = 0
	While $msg <> $GUI_EVENT_CLOSE
		$msg = GUIGetMsg()
		Select
			Case $msg = $add
				GUICtrlSetData($mylist, "Murat Kekilli|")
			Case $msg = $clear
				GUICtrlSetData($mylist, "")
			Case $msg = $Slect
				MsgBox(0, "", GUICtrlRead($mylist))
		EndSelect
	WEnd
EndFunc   ;==>Example

Ikinci soruna gelirsek; kullanıcıaya daha fazla düzenli bilgi verebilmek için ben olsam GUICtrlCreateListView seçeneğini seçerdim.

Link to comment
Share on other sites

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...