Jump to content
Son zamanlarda artan kullanıcı hesap hırsızlıkları sebebiyle tüm kullanıcılara şifre sıfırlama maili gönderilmiştir. Lütfen güveli şifreler seçiniz. Mevcut e-mail adresinize erişemiyorsanız, en aşağıdaki destek linkinden bize ulaşınız. ×

İleri düzey AutoIT örnekleri


sk8er_boi
 Share

Recommended Posts

Bide biz excelde fatura kesiyoruz.Birim fiyatları v.s. gibi şeyleri otomatik yaptırdım ama faturanın rakamını bide yazıyla yazmam lazım.Mesela "YALNIZ OTUZ TÜRK LİRASIDIR." demem lazım.Bunun içinde bana faturanın en sağ alttaki genel toplamını algılayacak bir kod lazım.Fatura tutarı 50 tl çıkmışsa "YALNIZ OTUZ TÜRK LİRASIDIR." yazısındaki otuzu elli yazacak mesela.Ama o kısmı hallederim gerçide bana sağ alttaki fatura tutarı 50,00 tl ise şunu şunu yap kodu lazım ama fatura tutarını nasıl algılayacak acaba ?

Link to comment
Share on other sites

Oyun ekranına farklı bir nesne gelip gelmediğini anlamak için pixel taraması yaptırmaya çalışıyorum.
1)duruyorsam belirttiğim pixel değişmemiştir 2)Hareket ediyorsam belirttiğim pixel yakında biryerde olmalı mantığı ile
  1. #include <MsgBoxConstants.au3>
  1. Global $OP = WinGetHandle("OYUN-PENCERESİ")
  2. Global $OPSize = WinGetClientSize($OP)
  3. Global $ccx, $ccy, $PS, $PG, $BAK

vs..

  1. $PG = PixelGetColor($ccx,$ccy,$OP)
  2. Sleep(5)
  3. $PS = PixelSearch(($ccx-25),($ccy-25),($ccx+25),($ccy+25),$PG,5,$OP)
  4. If @error Then
  5. MsgBox(0,"",$ccx&"-"&$ccy&"--"&("0x"&Hex($PG,6))) ;==> Burası Call("BAKIN")
  6. EndIf
 
Fakat dururken bile $PG ile aldığım rengi $PS ile bulamıyor ve msgbox geliyor sebebi ne olabilir ?
  • Like 1
Link to comment
Share on other sites

  • 4 hafta sonra ...

Merhaba syspreple kapatılmış wim ile sıkıştırılmış windows 7 imajlarını uzun süredir kullanıyorum.Programları ayarları herşey dahil olduğu için zamandan büyük tasarruf sağlıyor.Disk bölümlerini elle hazırlamayı tercih ediyorum.Şİmdiye kadar imagex'i birkaç sürücü harfi için ayrı ayrı hzırlanmış cmd dosyaları ile kullanıyordum 32 ve 64 bit için en az 8 tane cmd aynı dizinde oluyor.Yakın zamanda imajları güncel sürümlere çevireceğim,windows 8'i eklemek istiyorum.Wim imajları tek partition'a göre kurulmuş sistemlerden oluşuyor dolayısıyla sadece mbr disklerde kullanıyorum.gpt için macrium ile aldığım bütün diski içeren imajları kullanıyorum.Şimdiye kadar hiç sorun yaşamadım.

Konuya gelirsek yapmak istedğim şey pratikte çok basit :)

kurmenusu.jpg

Fakat iş kodlamaya gelince 2 gündür ancak bu kadarını başarabildim.Yapılmak istenen seçili olan versiyon ve sürücüyü komut satırı parametresi olarak atayıp imagex.exe programını çalıştırmak,gizli kapaklı olmasına bile gerek yok,komut penceresi açılsın yeterli. En azından tek birinde başarılı olursam devamını getireceğimi sanıyorum.Yardımcı olacak arkadaşlara şimdiden teşekkürler. :)

#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <GUIListBox.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=c:\a\Form3.kxf
$Form3 = GUICreate("Windows WIM Kurulum Menüsü", 445, 203, 465, 263)
$List1 = GUICtrlCreateList("", 32, 40, 225, 84)
$Button1 = GUICtrlCreateButton("Kuruluma Başla", 8, 160, 417, 25)
$List2 = GUICtrlCreateList("", 328, 40, 73, 84)
$Group1 = GUICtrlCreateGroup("İşletim Sistemleri Menüsü", 16, 16, 257, 129)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Group2 = GUICtrlCreateGroup("Kurulacak Sürücü", 296, 16, 129, 129)
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
GuiCtrlSetData($List1, "Windows XP Professional SP3 x86|Windows 7 Ultimate SP1 x86|Windows 7 Ultimate SP1 x64|Windows 8.1 Professional x86|Windows 8.1 Professional x64", "Windows 7 Ultimate SP1 x64")
GuiCtrlSetData($List2, "Surucu C:|Surucu D:|Surucu E:|Surucu F:|Surucu G:|Surucu H:", "Surucu C:")
Global $GlobalVariable_parametre = "/ref winkur.wimm /apply winkur.wim"

While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
Switch GUICtrlCreateList($List1)
Case "Windows XP Professional SP3 x86"
$sistem = "Windows XP Professional SP3 x86"
$GlobalVariable_parametre = "/ref winkur.wimm /apply winkur.wim"
EndSwitch
ShellExecuteWait(@ScriptDir&"\imagex.exe")
;ShellExecuteWait(@ScriptDir&"imagex.exe", "&$GlobalVariable_parametre&")
EndSwitch
WEnd
  • Like 1
Link to comment
Share on other sites

Bi sistem için bi tane örnek verebilirsen yardımcı olabilirim şöyle ki;

Windows Xp ve sürücü c seçildiğinde imagex.exe hangi parametre ile çalışacak?Aynı şekilde sürücü H: seçildiğinde?Bu kombinasyonların arasında bi bağlantı olmalı :)

Link to comment
Share on other sites

Windows xp için örnek komut şu şekilde olacak imagex /apply winkur.wim 5 c:

bu sabit komut olacak = "imagex.exe /apply winkur.wim" liste kutularında seçili olanlar bu komutun sonuna eklenecek

bu "$List1"'e karşılık gelen sistemleri belirleyecek.Mesela "Windows XP Professional SP3 x86" için 5,"Windows 7 Ultimate SP1 x86" için 1 gibi.Ama kesinlikle birinci 5 ikinci 1 gibi sabitimiz yok.Bu numaralar wim dosyasındaki imaj numaraları.Değişebilir veya değişmeye müsaitler.

bu "$List2"'de yer alan "Surucu C:" c: sürücüsüne karşılık gelecek.bunlar kesin değerler d sürücüsü için d: gibi.

Biliyorum bu değerlere başka bir noktada bu rakamları yada sürücü harflerini tanımlamalıyım ama bilgi eksikliğinden tanımları yapamadım.Seçili olanı oku ve imagex.exe için parametre olarak ata denmeli.Site içerisinde benzer sekilde çalışan bazı kodlar buldum fakat tanımlamalar kısmı karışık geldi :)

Link to comment
Share on other sites

#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <GUIListBox.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=c:\a\Form3.kxf
$Form3 = GUICreate("Windows WIM Kurulum Menüsü", 445, 203, 465, 263)
$List1 = GUICtrlCreateList("", 32, 40, 225, 84)
$Button1 = GUICtrlCreateButton("Kuruluma Başla", 8, 160, 417, 25)
$List2 = GUICtrlCreateList("", 328, 40, 73, 84)
$Group1 = GUICtrlCreateGroup("İşletim Sistemleri Menüsü", 16, 16, 257, 129)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Group2 = GUICtrlCreateGroup("Kurulacak Sürücü", 296, 16, 129, 129)
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
GuiCtrlSetData($List1, "Windows XP Professional SP3 x86|Windows 7 Ultimate SP1 x86|Windows 7 Ultimate SP1 x64|Windows 8.1 Professional x86|Windows 8.1 Professional x64", "Windows 7 Ultimate SP1 x64")
GuiCtrlSetData($List2, "Surucu C:|Surucu D:|Surucu E:|Surucu F:|Surucu G:|Surucu H:", "Surucu C:")
Global const $GEN_PARAM = "/ref winkur.wimm /apply winkur.wim "
Global $yerel_param;
While 1
$nMsg = GUIGetMsg()
	Switch $nMsg
	Case $GUI_EVENT_CLOSE
		Exit
	Case $Button1
		Switch GUICtrlRead($List1)
			Case "Windows XP Professional SP3 x86"
				$yerel_param = "5"
			Case "Windows 7 Ultimate SP1 x86"
				$yerel_param = "1"    ;böyle gider
		EndSwitch
	
	$yerel_param &= StringRight(GUICtrlRead($List2),2);
	ShellExecuteWait(@ScriptDir&"\imagex.exe", $GEN_PARAM & $yerel_param);
	
	EndSwitch
WEnd

windows xp için her zaman 5 gibi sabit olmuyor diyorsun ama sabitlik yada bir şeye göre değişkenlik olmazsa bu programı yapamazsın.Şimdilik ben böyle bi örnek gösterdim fakat şöyle de yapılabilir; bi ini dosyasına winxpnin değeri bu bilmem neyin değeri bu diye girdilerini koyarsın program ordan okur.Demek istediğim birinci için 5 sabit değilse  ya onun elinle gireceksin ya program bi yerden okuyacak ya da sürekli programın kaynak kodunu değiştireceksin ki bu saçma olur :)

  • Like 1
Link to comment
Share on other sites

 

Oyun ekranına farklı bir nesne gelip gelmediğini anlamak için pixel taraması yaptırmaya çalışıyorum.
1)duruyorsam belirttiğim pixel değişmemiştir 2)Hareket ediyorsam belirttiğim pixel yakında biryerde olmalı mantığı ile
  1. #include <MsgBoxConstants.au3>
  1. Global $OP = WinGetHandle("OYUN-PENCERESİ")
  2. Global $OPSize = WinGetClientSize($OP)
  3. Global $ccx, $ccy, $PS, $PG, $BAK

vs..

  1. $PG = PixelGetColor($ccx,$ccy,$OP)
  2. Sleep(5)
  3. $PS = PixelSearch(($ccx-25),($ccy-25),($ccx+25),($ccy+25),$PG,5,$OP)
  4. If @error Then
  5. MsgBox(0,"",$ccx&"-"&$ccy&"--"&("0x"&Hex($PG,6))) ;==> Burası Call("BAKIN")
  6. EndIf
 
Fakat dururken bile $PG ile aldığım rengi $PS ile bulamıyor ve msgbox geliyor sebebi ne olabilir ?

 

 

her oyun için geçerli mi ? birde oyun komple renksiz bir hal alıyor (ölünce) bunu yapar mısnız daha basit olsa gerek

Edited by yusuf1284
Link to comment
Share on other sites

#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <GUIListBox.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=c:\a\Form3.kxf
$Form3 = GUICreate("Windows WIM Kurulum Menüsü", 445, 203, 465, 263)
$List1 = GUICtrlCreateList("", 32, 40, 225, 84)
$Button1 = GUICtrlCreateButton("Kuruluma Başla", 8, 160, 417, 25)
$List2 = GUICtrlCreateList("", 328, 40, 73, 84)
$Group1 = GUICtrlCreateGroup("İşletim Sistemleri Menüsü", 16, 16, 257, 129)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Group2 = GUICtrlCreateGroup("Kurulacak Sürücü", 296, 16, 129, 129)
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
GuiCtrlSetData($List1, "Windows XP Professional SP3 x86|Windows 7 Ultimate SP1 x86|Windows 7 Ultimate SP1 x64|Windows 8.1 Professional x86|Windows 8.1 Professional x64", "Windows 7 Ultimate SP1 x64")
GuiCtrlSetData($List2, "Surucu C:|Surucu D:|Surucu E:|Surucu F:|Surucu G:|Surucu H:", "Surucu C:")
Global const $GEN_PARAM = "/ref winkur.wimm /apply winkur.wim "
Global $yerel_param;
While 1
$nMsg = GUIGetMsg()
	Switch $nMsg
	Case $GUI_EVENT_CLOSE
		Exit
	Case $Button1
		Switch GUICtrlRead($List1)
			Case "Windows XP Professional SP3 x86"
				$yerel_param = "5"
			Case "Windows 7 Ultimate SP1 x86"
				$yerel_param = "1"    ;böyle gider
		EndSwitch
	
	$yerel_param &= StringRight(GUICtrlRead($List2),2);
	ShellExecuteWait(@ScriptDir&"\imagex.exe", $GEN_PARAM & $yerel_param);
	
	EndSwitch
WEnd

windows xp için her zaman 5 gibi sabit olmuyor diyorsun ama sabitlik yada bir şeye göre değişkenlik olmazsa bu programı yapamazsın.Şimdilik ben böyle bi örnek gösterdim fakat şöyle de yapılabilir; bi ini dosyasına winxpnin değeri bu bilmem neyin değeri bu diye girdilerini koyarsın program ordan okur.Demek istediğim birinci için 5 sabit değilse  ya onun elinle gireceksin ya program bi yerden okuyacak ya da sürekli programın kaynak kodunu değiştireceksin ki bu saçma olur :)

 

Ellerinize sağlık.Teşekkür ederim.Dediğiniz gibi sabit olması gerekli.Kastım bu sürekli değişecek demek değil.İlk başta wim dosyasında nasıl sıralanırsa öyle kalacak.Teşekkür ederim.

 

Son ve tam olarak istediğim şekilde çalışan hali :)

#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <GUIListBox.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=c:\a\Form3.kxf
$Form3 = GUICreate("Windows WIM Kurulum Menüsü", 445, 203, 465, 263)
$List1 = GUICtrlCreateList("", 32, 40, 225, 84)
$Button1 = GUICtrlCreateButton("Kuruluma Başla", 8, 160, 417, 25)
$List2 = GUICtrlCreateList("", 328, 40, 73, 84)
$Group1 = GUICtrlCreateGroup("İşletim Sistemleri Menüsü", 16, 16, 257, 129)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Group2 = GUICtrlCreateGroup("Kurulacak Sürücü", 296, 16, 129, 129)
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
GuiCtrlSetData($List1, "Windows XP Professional SP3 x86|Windows 7 Ultimate SP1 x86|Windows 7 Ultimate SP1 x64|Windows 8.1 Professional x86|Windows 8.1 Professional x64", "Windows 7 Ultimate SP1 x64")
GuiCtrlSetData($List2, "Surucu C:|Surucu D:|Surucu E:|Surucu F:|Surucu G:|Surucu H:", "Surucu C:")
Global const $GEN_PARAM = "/ref winkur.wimm /apply winkur.wim "
Global $yerel_param;
While 1
$nMsg = GUIGetMsg()
	Switch $nMsg
	Case $GUI_EVENT_CLOSE
		Exit
	Case $Button1
		Switch GUICtrlRead($List1)
			Case "Windows 7 Ultimate SP1 x86"
				$yerel_param = "1 "
			Case "Windows 7 Ultimate SP1 x64"
				$yerel_param = "2 "
			Case "Windows 8.1 Professional x86"
				$yerel_param = "3 "
			Case "Windows 8.1 Professional x64"
				$yerel_param = "4 "
			Case "Windows XP Professional SP3 x86"
				$yerel_param = "5 "
EndSwitch

	$yerel_param &= StringRight(GUICtrlRead($List2),2);
	;ShellExecuteWait(@ScriptDir&"\imagex.exe", $GEN_PARAM & $yerel_param); gönderilen komut,derlerken aktif et
MsgBox(0,"Gönderilen Komut", $GEN_PARAM & $yerel_param&"  olarak yüklendi.") ;komut testi için,derlenirken devre dışı bırak
	EndSwitch
WEnd

Edited by F_s_M
Link to comment
Share on other sites

  • 3 hafta sonra ...
Local $Pixel_X = 32
Local $Pixel_Y = 558
Local $Pixel_Color = "0xDE2DDE"
Local $PGet_Color

While 1

$PGet_Color = PixelGetColor($Pixel_X, $Pixel_Y) ;x-y
	If $PGet_Color = $Pixel_Color Then
		Shutdown(1)
	EndIf

	WEnd

arkadaşlar bu kodları yaptım çalşıyor fakat ben belirli bir programın içindeki x,y noktasını almasını istyorum oyun program vb alta aldğım zaman taramaya devam etsin 

Edited by yusuf1284
Link to comment
Share on other sites

  • 2 ay sonra...

@mkayer

 

Tabiki gönderebilirsin. Yardım dosyasındaki örneğe değişken ekleyerek örnek verelim. Incelersin.

 

Global $Degisken = "[CLASS:Notepad]" ;Değişkenimiz

Run("notepad.exe") ;Notepad programını çalıştıralım.

WinWait($Degisken) ;Winwait ile notepad ekranının gelmesini bekleyelim
ControlSend($Degisken, "", "Edit1", "Günaydın Millet") ;Edit1e yazı gönderelim
 
Link to comment
Share on other sites

 

@mkayer

 

Tabiki gönderebilirsin. Yardım dosyasındaki örneğe değişken ekleyerek örnek verelim. Incelersin.

Global $Degisken = "[CLASS:Notepad]" ;Değişkenimiz

Run("notepad.exe") ;Notepad programını çalıştıralım.

WinWait($Degisken) ;Winwait ile notepad ekranının gelmesini bekleyelim
ControlSend($Degisken, "", "Edit1", "Günaydın Millet") ;Edit1e yazı göndereli

burdaki hatam nedir.


#include <MsgBoxConstants.au3>

oku()
Func oku()	
     msgbox (64,"Uyarı","Bağlanmak istediğiniz Yazıcının Bağlı olduğu Bilgisayarın Ip Adresini giriniz." & @CRLF & "Ip adresi  192.168.1.21 ... gibi rakamlar arasında noktalar ile girilmelidir..")
EndFunc

ipadresi()

Func ipadresi()
	
 Dim  $YaziciIpAdresi = InputBox("Ip Adresi", "192.168.1.21  gibi." , "" , "" ,"200","150")	
  
  RunWait(@ComSpec & ' /c start \\' & $YaziciIpAdresi)

EndFunc 

sleep(1000)

 oku1()
Func oku1()	
     msgbox (64,"Varsayılan Yazıcı Seç","Bağlanmak istediğiniz Yazıcı üxerine çift tıklayınız." & @CRLF & "Veya sağ tıklayıp bağlanı tıklayınız..")
 EndFunc

WinWait($YaziciIpAdresi & " üzerinde")  ;bağlandığında otomatik spool penceresi açılıyor  
If Not WinActive($YaziciIpAdresi & " üzerinde") Then WinActivate($YaziciIpAdresi & " üzerinde")
WinWaitActive($YaziciIpAdresi & " üzerinde")

WinClose($YaziciIpAdresi & " üzerinde")


RunWait(@ComSpec & ' /c start  control printers') ;devamında varsayılan yazıcıyı seçmesini sağlamalıyım.


 

spooler ekranı başlığında 192.168.0.22 üzerinde  lazerjet vs  ve  192.168.0.22 üzerinde  lazerjet vs yenileniyor yazıyor  : başlık değişiyor.

300 e yakın kullanıcı 500 e yakın yazıcı var. 

Edited by mkayer
Link to comment
Share on other sites

@mkayer

 

Öncelikle yapmaya çalıştığın çalışma hakkında fazla bilgim yok. Hata aldığın kodları düzenleyelim. Sen kurcalarsın...

#RequireAdmin

MsgBox(64, "Uyarı", "Bağlanmak istediğiniz Yazıcının Bağlı olduğu Bilgisayarın Ip Adresini giriniz." & @CRLF & "Ip adresi 192.168.1.21 ... gibi rakamlar arasında noktalar ile girilmelidir..")
Global $YaziciIpAdresi = InputBox("Ip Adresi", "192.168.1.21 gibi.", "", "", "200", "150")
If $YaziciIpAdresi = "" Then Exit ;Bir şey girilmemişse çıkış yaparsın.

RunWait(@ComSpec & ' /c start \\' & $YaziciIpAdresi)
Sleep(1000)
MsgBox(64, "Varsayılan Yazıcı Seç", "Bağlanmak istediğiniz Yazıcı üxerine çift tıklayınız." & @CRLF & "Veya sağ tıklayıp bağlanı tıklayınız..")
; -------------
WinWait($YaziciIpAdresi & " üzerinde") ;bağlandığında otomatik spool penceresi açılıyor
If Not WinActive($YaziciIpAdresi & " üzerinde") Then WinActivate($YaziciIpAdresi & " üzerinde")
WinWaitActive($YaziciIpAdresi & " üzerinde")
WinClose($YaziciIpAdresi & " üzerinde")
RunWait(@ComSpec & ' /c start control printers') ;devamında varsayılan yazıcıyı seçmesini sağlamalıyım.

  Edited by blue_life
Link to comment
Share on other sites

  • 2 hafta sonra ...
adm()

Func adm()

    Local $sUserName = "administrator"
    Local $sPassword = "12345"
    Local $iPID = RunAs($sUserName, @ComputerName, $sPassword, 0, "cmd.exe", "", @SW_SHOWMAXIMIZED)

EndFunc

WinWait("yönetici C:\WINDOWS\system32\cmd.exe","")
If Not WinActive("yönetici C:\WINDOWS\system32\cmd.exe","") ("yönetici C:\WINDOWS\system32\cmd.exe","")
WinWaitActive("yönetici C:\WINDOWS\system32\cmd.exe","")

bu şekilde cmd exeyi yönetici olarak çalıştırabiliyorum.

fakat istediğim 

 RunWait(@ComSpec &  '/c start  cmd.exe')

ve diğer kodlar

scriptin içerisinde netsh ile local ip değiştireceğim.

user yetkileri ile scriptin kendisini administrator yetkileri ile çalıştırabilirmiyim.

Link to comment
Share on other sites

@mkayer

 

Anladığım kadarıyla admin yetkisine sahip olmayan autoit çalışmanın içinden, admin yetkileri ile komut istemini çalıştırmak istiyorsun. Bunun için sana basit bir örnek vereyim. Sen kendine göre düzenlersin.

 

Local $Komut = "ver"

If IsAdmin() = 0 Then
    ShellExecute(@ComSpec, '/k ' & $Komut, '', 'runas')
Else
    Run(@ComSpec & ' /k ' & $Komut)
EndIf
  • Like 2
Link to comment
Share on other sites

 

@mkayer

 

Anladığım kadarıyla admin yetkisine sahip olmayan autoit çalışmanın içinden, admin yetkileri ile komut istemini çalıştırmak istiyorsun. Bunun için sana basit bir örnek vereyim. Sen kendine göre düzenlersin.

Local $Komut = "ver"

If IsAdmin() = 0 Then
    ShellExecute(@ComSpec, '/k ' & $Komut, '', 'runas')
Else
    Run(@ComSpec & ' /k ' & $Komut)
EndIf

bana bir harf öğretenin kırk yıl kölesi olurum düsturu ile size teşekkürü borç bilirim.

çalışmalırınızdan çok şey öğrendim. Yani Üstadım dememde bir sakınca yok benim açımdan.Umarım sizde kabul buyurursunuz.

yapmak istediğim; yazdığım bir çok script active directory user kullanıcı yetkileri ile çalışacak

adminler şifreli 

scriptleri çalıştırırken yetkiniz bulunmamaktadır uyarısı alıyorum.

autoitte yazdığım scriptlerin kendilerini admin yetkisi ile çalıştırmamın daha kolay bir yolu olmalı. 

 

 

 

 

Link to comment
Share on other sites

@mkayer

 

Active Directory Users vs. ile alakalı malesef bilgim olmadığı için sana fazla  yardımcı olamıyorum. Yerel bilgisayarda, sınırlı bir kullanıcı altından veyahut auc açıkken, yönetici yetkisi ile çalışmamış bir program üzerinden, başka bir programı yönetici yetkileri ile çalıştırmak için aşağıdaki verdiğimiz komutu kullanıyoruz genelde.

 

ShellExecute("Dosya veyahut program", 'Parametresi', 'runas') ;ayrıntılı bilgi için yardım dosyasına bakınız

 

Yardımcı olamadım kusura bakma. Autoti forumlarını kurcalamanı öneririm.

 

https://www.google.com.tr/search?q=site%3Awww.autoitscript.com%2Fforum+Active+Directory+Users+

  • Like 2
Link to comment
Share on other sites

  • 1 yıl yıl...
RegWrite ("HKEY_CURRENT_USER\Control Panel\Desktop" , "Wallpaper" , "REG_SZ" , "C:\cozum\ip\backgroundip.bmp" )
 
hkcu içine ekleme yapabiliyorum win7 - win8 ve win10 da
 
RegWrite ("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" , "ipbackground" , "REG_SZ" , "C:\cozum\ip\IpBackground.exe" )
 
fakat hklm içine ekleme yapamıyorum
çözümü varmı ustalar...
Link to comment
Share on other sites

  • 7 ay sonra...

sa ben akıllı tahtalar için küçük bi program yapıyorum da auto it ile son olarak şöyle bişey kaldı tüm sürücüleri kontrol edicek (D E F G H I J K L M N O P Q R S T U V W X Y Z C) eğer herhangi bi sürücüde \boot\vestel\install.wim bu dosya varsa değişkene bu sürücü yü tanımlıcak ve cmd de 

diskpart /s değişken\boot\vestel\DiskiYapilandir.txt
değişken\boot\vestel\Deploy.cmd değişken\boot\vestel\install.wim
diskpart /s değişken\boot\vestel\SistemBolumunuGizle.txt

şeklinde komutlar ı atakli fonksiyonuna girdirmem lazım son hali

Spoiler

#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <GDIPlus.au3>
#include "Marquee.au3"
#include <ColorConstants.au3>
#include <MsgBoxConstants.au3>
#RequireAdmin

                $hDPPID = Run("diskpart.exe", @SystemDir, @SW_HIDE, 0x1 + 0x2)
                getDPreturn($hDPPID)
                StdinWrite($hDPPID, "lis dis" & @CRLF)
                $s_Out = getDPreturn($hDPPID)

                StdinWrite($hDPPID, "exi" & @CRLF)
                ProcessClose($hDPPID)

Example()

Func Example()
FileInstall("logo.png",@ScriptDir &"\logo.png")

    Global $hGUI =GUICreate("TheSinBin ET Sıfırlama Sistemi", 400, 310,20,20,3)
    Global $aMarquee[8]
Global $g_bPaused = False
    Local $idatakli = GUICtrlCreateButton("Atakli Sistem Kur(1)", 10, 10,140,25)
    Local $idataksiz = GUICtrlCreateButton("Ataksiz Sistem Kur (2)", 10, 40,140,25)
    Local $idguncelle = GUICtrlCreateButton("Seri No Guncelle (3)", 10, 70,140,25)
    Local $idvestel = GUICtrlCreateButton("Vestel Uygulamasını Ac (4)", 10, 100,140,25)
    Local $iddisk = GUICtrlCreateButton("Diskleri Goster (5)", 10, 130,140,25)
    Local $idkapat = GUICtrlCreateButton("Tahtayi Kapat (6)", 10, 160,140,25)
    Local $idyenidenbaslat = GUICtrlCreateButton("Tahtayi Yeniden Baslat (7)", 10, 190,140,25)
    Local $idpkapat = GUICtrlCreateButton("Programi Kapat(esc)", 10, 220,140,25)

GUISetState(@SW_SHOW, $hGUI)

HotKeySet("{1}", "HotKeyPressed")
HotKeySet("{2}", "HotKeyPressed")
HotKeySet("{3}", "HotKeyPressed")
HotKeySet("{4}", "HotKeyPressed")
HotKeySet("{5}", "HotKeyPressed")
HotKeySet("{6}", "HotKeyPressed")
HotKeySet("{7}", "HotKeyPressed")
HotKeySet("{ESC}", "HotKeyPressed")

GUISetBkColor (0xffffff)
GUICtrlSetBkColor($idatakli, 0xffffff)
GUICtrlSetBkColor($idataksiz, 0xffffff)
GUICtrlSetBkColor($iddisk, 0xffffff)
GUICtrlSetBkColor($idguncelle, 0xffffff)
GUICtrlSetBkColor($idkapat, 0xffffff)
GUICtrlSetBkColor($idpkapat, 0xffffff)
GUICtrlSetBkColor($idvestel, 0xffffff)
GUICtrlSetBkColor($idyenidenbaslat, 0xffffff)
GUICtrlSetColor($idatakli, 0xff6347)
GUICtrlSetColor($idataksiz, 0xff6347)
GUICtrlSetColor($idyenidenbaslat, 0xff6347)
GUICtrlSetColor($idvestel, 0xff6347)
GUICtrlSetColor($idpkapat, 0xff6347)
GUICtrlSetColor($idguncelle, 0xff6347)
GUICtrlSetColor($iddisk, 0xff6347)
GUICtrlSetColor($idkapat, 0xff6347)

$aMarquee[0] = _GUICtrlMarquee_Init()
    _GUICtrlMarquee_SetDisplay($aMarquee[0], 1, 0x000000, 0xffffff, 10, "Comic Sans MS")

_GUICtrlMarquee_Create($aMarquee[0], "Bu Program TheSinBin Trafından YeşilYayla MTAL Lisesi İçin Yapılmıştır.", 0,  260, 400, 20)

_GDIPlus_Startup()
$hImage = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\logo.png")

$hGraphic = _GDIPlus_GraphicsCreateFromHWND($hGUI)
_GDIPlus_GraphicsDrawImage($hGraphic, $hImage, 150, 10)

    While 1
        Switch GUIGetMsg()
            Case $idatakli
                $iPID = atakli()
            Case $idataksiz
                $iPID = ataksiz()
            Case $idguncelle
                $iPID = guncelle()
            Case $idvestel
                $iPID = vestel()
            Case $iddisk
                $iPID=    MsgBox(0, "", $s_Out & @CRLF)
            Case $idkapat
                Shutdown(1)
            case $idyenidenbaslat
                $iPID =  _reboot()
            Case $idpkapat
                $iPID =  _exit()
        EndSwitch
        FileDelete("logo.png")
    WEnd

    GUIDelete($hGUI)

EndFunc

func atakli()
Exit
EndFunc

func ataksiz()
    Exit
EndFunc

func guncelle()
    Exit
EndFunc

func vestel()
    Exit
EndFunc


Func HotKeyPressed()
    Switch @HotKeyPressed
        Case "{1}"
            $iPID = ShellExecute(@ScriptDir & "\atakli.exe")

        Case "{2}"
            $iPID = ShellExecute(@ScriptDir & "\ataksiz.exe")

        Case "{3}"
            $iPID = ShellExecute(@ScriptDir & "\guncelle.exe")

        Case "{4}"
            ShellExecute(@ScriptDir & "\vestel.exe")

        Case "{5}"
                $iPID=    MsgBox(0, "", $s_Out & @CRLF)

        Case "{6}"
            Shutdown(1)

        Case "{7}"
            _reboot()

        Case "{ESC}"
            Exit


    EndSwitch
EndFunc

Func getDPreturn($PID)
    Local Static $hDLLUSER32 = DllOpen("user32.dll")
    Local $s_Return = "", $s_CmdRet, $a_Ret
    While ProcessExists($PID)
        $s_CmdRet = StdoutRead($PID)
        If $s_CmdRet Then
            $s_Return &= $s_CmdRet
            If StringInStr($s_Return, "DISKPART>", 2) Then ExitLoop
        EndIf
        Sleep(10)
    WEnd
    $a_Ret = DllCall($hDLLUSER32, "bool", "OemToChar", "str", $s_Return, "str", "")
    If @error Or UBound($a_Ret) < 3 Then Return SetError(1,@error, "")
    Return $a_Ret[2]
EndFunc
Func _exit()
    FileDelete("logo.png")
    Exit
EndFunc
func _reboot()
    FileDelete("logo.png")
    Shutdown(6)
EndFunc

Spoiler

G3doBV.jpg

 

Edited by FeritEtemSinBin
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...