Jump to content

Autoıt Ile Windows Kurulumu Için Proje!


gokhankocabay
 Share

Recommended Posts

Merhaba arkadaşlar;
Bir kurulum ekranı hazırlamak istiyorum fakat benim Auto-it bilgim yok, ufak şeyleri uğraşarak yapabilirim belki ama bu yapılcak iş daha iyi bir bilgiye gereksinim duyduğundan, bu iş olabilirmi, olabilirsede yapabilecek birisi varmı diyerek konuyu açtım.

Yapılmasını istediğim nedir onu bir anlatıyım,
Bir ISO dosyası olacak, WinPE ile boot eden bir sistem. Isonun içerisinde 3 tane veya 2 tane Wim dosyası bulunacak. Bu Wim dosyaları Windows xp veya Windows 7 imajlarını içerecek. Bu Xp ve Windows 7 imajları, farklı sistemlerde çalışabilecek şekilde tasarlanan imajlar olacak.
Mesela;
Kurulum ekranında;
Windows xp seçersek, winxp.wim
windows 7 32 bit seçersek, win7x32.wim
windows 7 64 bit seçersek, win7x64.wim dosyası olarak düşünün.

Bu WinPE direk olarak, bahsettiğim yazılımla açılacak.

İlk ekranda hangi Windows versiyonunu yüklemek istediğimizi seçeceğiz. Seçtiğimiz versiyona göre ilgili Wim dosyasıyla işlem yapacak.

İkinci ekranda; windows kurulum ekranındaki disk biçimlendirme ekranı gibi bir ekran olacak,partition silme, biçimlendirme yapma gibi bir ekran. Sistemdeki bütün disk ve partitionlarını listeleyecek. Seçtiğimiz partition ile İleri butonunu kullandığımız anda, Wim imajı belirttiğimiz sürücüye açacak. Bu kısım Winpe içerisindeki Diskpart.exe'yi kullanacak. (Nette DiskPartitioner 1.2 veya 2.0 isimli bir program buldum, bu yazılımda Autoit ile yapılmış ve diskpart.exe'yü kullanarak disk işlemlerini yapıyor,nette bulabilirsiniz, proje dosyalarıda muhakkar vardır.)

Üçüncü ekranda ise, Birinci ekranda seçtiğimiz Win. versiyonuna göre (WİM dosyası) , ikinci ekranda seçtiğimiz partition'a Imagex.exe vasıtasıyla açılacak. Açılırken aşağıdaki progress bar'a ilerleme durumunu yansıtacak. Tamamiyle imagex.exe kullanılacak. Gimagex yazılımı bildiğim kadarıyla imagex.exe'yi kullanarak çalışıyor ve Autoit ile yapılmış)

Arkadaşlar aşağıdada resim olarak anlatmaya çalıştım, tabi benim programlama bilgim olmadığından saçma sapan bir pencere tasarımı oldu :)

Yapılmasını istediğim tam olarak bu inşallah anlatabilmişimdir. Saygılarımla

[attachment=705:11.JPG]
[attachment=706:22.JPG]
[attachment=707:33.JPG]

Link to comment
Share on other sites

@gokhankocabay

Yapmak istediğin yapılabilir ama bence uğraşmaya gerek yok! Neden dersen;
Windows vista - Win7 vs. zaten Winpe üzerinden benzer bir program vasıtasıyla yükleniyor. Kısaya kur install.wim içindeki seçilen imajı seçilen hedef sürücüye çıkartıp, boot dosyalarını düzenleyip (mbr-pdr bilgisini yazdırmada dahil) sürücüye flush yapıyordur. (Nt6 ile haşır neşir olmadığımdan detaylı bilgi yok)

E o zaman senin yapmak istediğini zaten windows kur yapıyor. Yani uğraşmaya ne gerek var!

Hatırladığım kadarıyla @JFX autoit ile benzer bir şey yapmıştı. Yani winpe gibi bir sistem üzerinden nt6 kurulumlarını hazırladığı program yapabiliyordu!
[color="#0000FF"][u]http://www.msfn.org/board/topic/149612-winntsetup-v21/[/u][/color]

Bir wim içeriğini çıkartmak için 7zip vs. bile kulanılabilir. imagex - gimagex gibi programlar wimgapi.dll dosyası vasıtasıyla wim dosyasına işlem yapabiliyordu.
vs. vs. gibi yani bu konularda fazla bilgin yoksa bence vazgeç :(

Neys umarım yapabilirsin, kolay gelsin...

Link to comment
Share on other sites

Blue_life üstadım cevabın için teşekkür ederim.
Söylediğin gibi zaten Windows7 kurulumuda istemiş olduğum şeyi yapıyor, WinPe ile önyükleyip install.wim'i açıyor.
Benim istediğim şey ise hem 7, hemde xp için seçim yapabileceğim bir ekran ve devamında xp veya 7'i imajını açabilmek.
Fakat benim hazırladığım wim dosyaları, sysprep ile kapatıldığından Windows 7 ISO'suna entegre ettiğimde çalışmıyor. O yüzden böyle bir şey arayışı içerisindeydim. Belkide amacımı anlatamadım ben konuda.
Windows konusunda bilgim var ancak programlama bilgim yok. Belki istediğimi Batch file olarak yapabilirim ama ben GUI'li bir program yapmak istiyorum.
Herneyse karışık bir iş, uğraşılcak gibi değil.
Mesajınız için tekrar teşekkür ederim.Saygılarımla

Link to comment
Share on other sites

@gokhankocabay

Şu bölümleme,format vs. işlemi olmasa, yapmak istediğin çok fazla uğraştırmayak bir işlem. Yani başlangıçta bir program açılacak ve senden kurmak istediğin işletim sistemi soracak. Eğer win7 & vista seçersen Win7 & Vista kuru çalıştıracak (setup.exe yi) XP seçilerse, senin seçtiğin bir bölüme wim içeriğini çıkartıp mbr yazdırarak sistemi yeniden başlatacak.

Ama her halukarda baya zaman alıcı bir konu :(

Link to comment
Share on other sites

Zamanımın el verdiği sürece bende katkı vermeye çalışırım. Isterseniz kısaca aklımdaki adımları yazayım.

1 - Vista veyahut Win7 kurundaki Sources\Boot.wim dosyasındaki, ilgili boot özelliğine sahip index bir klasöre yazılabilir şekilde mount edilecek!
2 - Daha sonra autoit ile başlangıçta çalıştırılacak program mount edilmiş klasöre kopyalanacak. Ilk dizine kopyalansa fean olmaz.
3 - Mount edilmiş klasördeki \Windows\System32\winpeshl.ini dosyası oluşturulup aşağıdaki değer girilecek.
[b]IniWrite("KlasorKonumu\Windows\System32\winpeshl.ini", "LaunchApp", "AppPath", "%SYSTEMDRIVE%\" & "AutoitProgramin.exe")[/b]
4 - Uygun biçimde iso oluşturulacak... Benim Isodan Vista&W7 konusundaki cmd dosyasını kullanılabilir.

Tabi bunlar hazırlık aşaması. Bunlar haricinde autoit programı yapılacak. Yukarıdaki in değerindeki AutoitProgramin.exe'yi kastediyorum.
[hr]
AutoitProgramin.exe ye gelirsek;

Işte başlangıçta görsel bir ekranı olur. Photoshop vs. bilginiz varsa resimle bile yapabilirsiniz. Bu ekranda xp ve win7 seçenekleri olur.
Win7 seçeneği seçildiğinde haliyle %SYSTEMDRIVE%\Setup.exe çalıştırılacak.
Xp seçeneği seçildiğinde daha önce belirlenmiş konumdaki wim imajı (bence wim imajınada gerek yok) seçilmiş sürücüye çıkartılır.
Ben olsam xpyi yerden tasağruf için wim yerin 7z ile paketlerdim.

Daha önceden yazdığım gibi, konu çok karmaşık deyil ama uğraş gerektiriyor. :(

Link to comment
Share on other sites

blackman12 üstadım, benim autoit bilgim sıfır valla, 30 yaşındayım artık ne kadar zorlasamda öğrenebileceğimide sanmıyorum :) İnanın sizinle beraber birşeyler yapmak çok isterdim fakat size ancak yük olurum :)

Blue_life üstadım, bu ctrl_Soft nickli Rus vatandaşın yayınlamış olduğu bir torrent isoyu indirdim.
Bu çalışması 2. videoda gösterilen çalışma.
Söylediğiniz gibi başlangıçta bir program çalışıyor, Xp kurulumu seçerseniz disk biçimlendirme ve imaj açma işlemi yapan bir arabirim var onu çalıştırıyor, daha sonra ISO\sources klasöründeki winxp.wim imajını seçilen sürücüye açıp, MBR kaydını yazıyor. Yine söylediğiniz gibi Windows7 kurulumunu seçincede sources altından setup.exe'yi çağırıyor.

Şimdi benim programlama bilgim sıfır olunca, o zaman dedimki bu adamın projesindeki dosyaları editleyerek kullanıyım.
Dosyalar şu şekildeler;

Boot.wim dosyası içerisinde 2.index'de direk root altında;
Setupxp.exe
setup7.exe
setup.ini
setup.exe
Dosyaları var, setupxp ve setup7 dosyalarının fonksiyonu sadece ilgili dosyaları çağırmak, editlencek bir yönü yok yani.
Setup.exe dosyası'da direk ISO boot edip Winpe ortamı açıldığında bizi karşılayan ekran, içerisinde 3 adet buton var;
Birincisi Xp kur, İkincisi Win7 kur, üçüncüsüde Total Commander'ı çalıştır.

Şimdi bu Setup.exe yani bizi karşılayan ekran, konfigürasyonunu setup.ini dosyasından okuyor, ini dosyası içindeki hint ve caption etiketlerini değiştirerek ben bu Arabirimi istediğim gibi editleyebiliyorum, bu kısımda bir sorun yok.

Fakat xp kurulumu'nu seçtiğimizde gelen ilk arabirimden, direk setupxp.exe'yi çalıştırıyor, setupxp.exe'de Sources\mysetup.exe'yi çalıştırıyor.
Bu mysetup.exe sayesindede disk partitionu oluşturup, winxp.wim imajını sürücüye açıyoruz.

Görüntüsü şu şekilde mysetup.exe'nin;
[attachment=725:mysetup.JPG]

Şimdi benim tek yapmam gereken, bu mysetup.exe dosyasındaki ingilizce butonları Türkçe'ye çevirmek. Tabi bu programı kodlayan kişinin banner ve reklamlarını kaldırmayı düşünmüyorum, sadece türkçeye çevirmek amacım. 2 gün uğraşmama rağmen bir türlü yapamadım. ResourceHacker, PE Explorer gibi yazılımlar ile editlemeye çalıştığımda, değiştirecek bir yer bulamıyor.

Exe Scope ile denedim , sonuç yine aynı.

Program anladığım kadarıyla Visual Basic ile yazılmış, VB Decompiler PRO, VBReformer gibi yazılımlar ile exe'yi decompile ettim. Ve proje dosyalarını çıkartmayı başardım, bu şekilde Butonları falan türkçeleştirebilirim, fakat projeyi tekrar çalıştır dediğimde hata alıyorum. E tabi anlamayınca Visual Basic'den kaldım öylece.

Şimdi eğer bana bu Visual Basic proje dosyası üzerindeki hatayı çözebilecek birisi yardım ederse eğer, istediğim şey olmuş olacak.

Ben decompile edilmiş halini ve aşağıdaki diğer dosyaları alttaki link'e koydum.

Setupxp.exe
setup7.exe
setup.ini
setup.exe
mysetup.exe ve mysetup.exe'nin decompile edilmiş hali.


http://hotfile.com/dl/139389429/b4e343d/dosyalar.zip.html

veya

http://www.megaupload.com/?d=3E4FZ9CZ

Link to comment
Share on other sites

@gokhankocabay

Malesef Visual Basic ile alakalı bir bilgim yok. Sen sadece programı Türkçe'ye çevirmek istiyorsan, hex editörlerden faydalanabilirsin.
Lakin hex editörlerde sadece ilgili mesajları düzenle. Ayrıca tr karakter kullanma. Tabi en önemlisi herangi bir silme işlemi yapma.
Örnek olarak bir kaç seneği senin için değiştireyim...

[color="#0000FF"][u]http://bluelife.zxq.net/Garbage/!MySetup.zip[/u][/color]

Ayrıca @thuun'un sysprep ile PantherXP adında güzel bir projesi vardı. Incelemdim ama belki senin işini görebilir.

Video için; [color="#0000FF"][u]http://thuun.boot-land.net/PantherXP/4053_x86_client/PantherXP_VideoDemo.exe[/u][/color]

[color="#0000FF"][u]http://thuun.boot-land.net/PantherXP/referenceimage.html[/u][/color]

[img]http://thuun.boot-land.net/PantherXP/style/scrshots/001.png[/img]

Neyse, başarılar dilerim, kolay gelsin...

Link to comment
Share on other sites

blue_life üstadım, mysetup.exe'yi son mesajımı yazdığım gece notepad++ ile türkçeye çevirmiştim, fakat program Windows üzerinden çalışırken disk listesini gösterebiliyor fakat WinPE ortamında disk listesini göstermiyor. Diskpart ve wimgapi.dll dosyalarının farklı versiyonlarını denedim fakat değişen bir şey olmadı. Bu sebeble bu programı kullanmaktan vazgeçtim.

thuun'un PantherXp projesini inceledim, ve uyguladım. Şu an için sorun yok. İstediğim olacak gibi. Sadece PantherXp kurulum ekranını türkçeye çevirmem gerekli, bunuda içerisindeki win32ui.dll dosyasını editleyerek yapıcam. Birde Sysprep ile kapanmış güncel xp ve w7 imajı hazırlamam lazım. Sanırım bir kaç gün içerisinde sonuçlanır.

Öneri ve tavsiyen için teşekkür ederim tekrardan. Saygılarımla

Link to comment
Share on other sites

  • Editor

@gokhankocabay
Bahsettiğin mysetup exe ile ilgili dosyalar benim elimdede var ilgili isoyu daha evvel torrentten indirmiştim programı winpe ye ekledim sorun yok usb den kullandım diskleri görüyor ve hatta install.wim imajını sisteme apply ettim ve kurulum gerceklestirdim ama zaten ben bu işlemi wimpe üzerinden gimagexle mysetup.exe olmadan yapıyordum programda sadece görsellik var cokta abartılacak bir program değil vaktim olursa programın ekli olduğu winpeyi forumda paylasırım
bu arada mysetup.exeyi tam türkceye cevirdiysen paylasırsan kullanırım

Edited by köylü
Link to comment
Share on other sites

köylü hocam değiştirebildiğim kadarıyla türkçeleştirilmiş halini alttaki linkte verdim.
Dediğiniz gibi abartılcak bir program değil, fakat programlama bilgim olmadığından ben yapamıyorum. Benim istediğimde dediğiniz gibi biraz daha görsellik olması, daha kolay olması. Gimagex'in yaptığı işi belki dahada basitleştirmek.

Benim oluşturduğum Winpe imajındada Mysetup.exe çalışıyor, herhangi bir sıkıntı yok. Fakat disk listelemesini Windows üzerinden denediğim zaman yapabilirken, Winpe ortamında yapamıyor.

Örnek vermek gerekirse resim üzerinde kırmızı dikdörtgenin içerisindeki liste ;
[attachment=726:disklist.JPG]

Şu an blue_life üstadın, önerisiyle PantherXP üzerinde çalışıyorum. Eğer sizdeki WinPe imajında böyle bir sorun yoksa paylaşabilirseniz çok sevinirim. Saygılarımla


http://hotfile.com/dl/139681275/5de774b/MySetup.rar.html
http://www.megaupload.com/?d=JJD1N9WZ

Edited by gokhankocabay
Link to comment
Share on other sites

  • Editor

@gokhankocabay
Winpe de sorun yok bende de aynı kurulu windowsta yukardaki tablo cıkıyor ama winpede cıkmıyor bu demek değildirki diskleri görmüyor işlem sonuclarının altındaki değerlere bak orada disklerini göreceksin ilk verdiğin videolarıda tekrar seyret oradada üst kısımda diskler gözükmüyor ama asagıda diskler görünüyor
[center][media]http://www.youtube.com/watch?v=QJnUvHgVHUw&list=HL1325630270&feature=mh_lolz[/media][/center]

Edited by köylü
Link to comment
Share on other sites

köylü hocam, diskleri listelememesine rağmen diskleri gördüğünün farkındayım, zaten diskpart list sonuçları altta görünüyor. Fakat sistemde birkaç disk var ise, partition yaratmak ve silmek karışıklık yaratıcaktır. Ben bu ekranda bilgisayar bilgisi az olan bir kişinin fazla uğraşmadan partition silme ve yaratma işlemlerinide yapabilmesini istiyorum.
Mesaj ve ilginiz için teşekkür ederim.Saygılarımla

Link to comment
Share on other sites

@gokhankocabay

Ben hex editor olak, winhex, not defteri yerine de scite ile notepad2 kullanıyorum. Notpad++ kullanmadığım için bu iş için uygunmudur enim deyilim.
Sorununa gelirsek; winpe ortamlarında WMI gibi bir çok sistem bileşeni bulunmayabiliyor. Bu nedenle bazı programlar haliyle düzgün çalışmaz.

Misal autoittede obj.. ile işlem yaptırdığımız bir çok komut winpe ortamında çalışmaz. Disk bilgisi için örnek verirsem;
[Codebox]; Generated by AutoIt Scriptomatic

$wbemFlagReturnImmediately = 0x10
$wbemFlagForwardOnly = 0x20
$colItems = ""
$strComputer = "localhost"

$Output=""
$Output = $Output & "Computer: " & $strComputer & @CRLF
$Output = $Output & "==========================================" & @CRLF
$objWMIService = ObjGet("winmgmts:\\" & $strComputer & "\root\CIMV2")
$colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_DiskDrive", "WQL", _
$wbemFlagReturnImmediately + $wbemFlagForwardOnly)

If IsObj($colItems) then
For $objItem In $colItems
$Output = $Output & "Availability: " & $objItem.Availability & @CRLF
$Output = $Output & "BytesPerSector: " & $objItem.BytesPerSector & @CRLF
$strCapabilities = $objItem.Capabilities(0)
$Output = $Output & "Capabilities: " & $strCapabilities & @CRLF
$strCapabilityDescriptions = $objItem.CapabilityDescriptions(0)
$Output = $Output & "CapabilityDescriptions: " & $strCapabilityDescriptions & @CRLF
$Output = $Output & "Caption: " & $objItem.Caption & @CRLF
$Output = $Output & "CompressionMethod: " & $objItem.CompressionMethod & @CRLF
$Output = $Output & "ConfigManagerErrorCode: " & $objItem.ConfigManagerErrorCode & @CRLF
$Output = $Output & "ConfigManagerUserConfig: " & $objItem.ConfigManagerUserConfig & @CRLF
$Output = $Output & "CreationClassName: " & $objItem.CreationClassName & @CRLF
$Output = $Output & "DefaultBlockSize: " & $objItem.DefaultBlockSize & @CRLF
$Output = $Output & "Description: " & $objItem.Description & @CRLF
$Output = $Output & "DeviceID: " & $objItem.DeviceID & @CRLF
$Output = $Output & "ErrorCleared: " & $objItem.ErrorCleared & @CRLF
$Output = $Output & "ErrorDescription: " & $objItem.ErrorDescription & @CRLF
$Output = $Output & "ErrorMethodology: " & $objItem.ErrorMethodology & @CRLF
$Output = $Output & "Index: " & $objItem.Index & @CRLF
$Output = $Output & "InstallDate: " & WMIDateStringToDate($objItem.InstallDate) & @CRLF
$Output = $Output & "InterfaceType: " & $objItem.InterfaceType & @CRLF
$Output = $Output & "LastErrorCode: " & $objItem.LastErrorCode & @CRLF
$Output = $Output & "Manufacturer: " & $objItem.Manufacturer & @CRLF
$Output = $Output & "MaxBlockSize: " & $objItem.MaxBlockSize & @CRLF
$Output = $Output & "MaxMediaSize: " & $objItem.MaxMediaSize & @CRLF
$Output = $Output & "MediaLoaded: " & $objItem.MediaLoaded & @CRLF
$Output = $Output & "MediaType: " & $objItem.MediaType & @CRLF
$Output = $Output & "MinBlockSize: " & $objItem.MinBlockSize & @CRLF
$Output = $Output & "Model: " & $objItem.Model & @CRLF
$Output = $Output & "Name: " & $objItem.Name & @CRLF
$Output = $Output & "NeedsCleaning: " & $objItem.NeedsCleaning & @CRLF
$Output = $Output & "NumberOfMediaSupported: " & $objItem.NumberOfMediaSupported & @CRLF
$Output = $Output & "Partitions: " & $objItem.Partitions & @CRLF
$Output = $Output & "PNPDeviceID: " & $objItem.PNPDeviceID & @CRLF
$strPowerManagementCapabilities = $objItem.PowerManagementCapabilities(0)
$Output = $Output & "PowerManagementCapabilities: " & $strPowerManagementCapabilities & @CRLF
$Output = $Output & "PowerManagementSupported: " & $objItem.PowerManagementSupported & @CRLF
$Output = $Output & "SCSIBus: " & $objItem.SCSIBus & @CRLF
$Output = $Output & "SCSILogicalUnit: " & $objItem.SCSILogicalUnit & @CRLF
$Output = $Output & "SCSIPort: " & $objItem.SCSIPort & @CRLF
$Output = $Output & "SCSITargetId: " & $objItem.SCSITargetId & @CRLF
$Output = $Output & "SectorsPerTrack: " & $objItem.SectorsPerTrack & @CRLF
$Output = $Output & "Signature: " & $objItem.Signature & @CRLF
$Output = $Output & "Size: " & $objItem.Size & @CRLF
$Output = $Output & "Status: " & $objItem.Status & @CRLF
$Output = $Output & "StatusInfo: " & $objItem.StatusInfo & @CRLF
$Output = $Output & "SystemCreationClassName: " & $objItem.SystemCreationClassName & @CRLF
$Output = $Output & "SystemName: " & $objItem.SystemName & @CRLF
$Output = $Output & "TotalCylinders: " & $objItem.TotalCylinders & @CRLF
$Output = $Output & "TotalHeads: " & $objItem.TotalHeads & @CRLF
$Output = $Output & "TotalSectors: " & $objItem.TotalSectors & @CRLF
$Output = $Output & "TotalTracks: " & $objItem.TotalTracks & @CRLF
$Output = $Output & "TracksPerCylinder: " & $objItem.TracksPerCylinder & @CRLF
if Msgbox(1,"WMI Output",$Output) = 2 then ExitLoop
$Output=""
Next
Else
Msgbox(0,"WMI Output","No WMI Objects Found for class: " & "Win32_DiskDrive" )
Endif


Func WMIDateStringToDate($dtmDate)

Return (StringMid($dtmDate, 5, 2) & "/" & _
StringMid($dtmDate, 7, 2) & "/" & StringLeft($dtmDate, 4) _
& " " & StringMid($dtmDate, 9, 2) & ":" & StringMid($dtmDate, 11, 2) & ":" & StringMid($dtmDate,13, 2))
EndFunc[/Codebox]

Bu örnek normal windowsta sorunsuz çalışıp, winpe ortamında çalışmayabilir!
Kısaca senin yaşadığın sorun, programı kodlayan arkadaşın kodlama hatası nedeniyle yaşanıyor gibi!

Bu arada PantherXP projesini kullanabildin mi, çalışmalar nasıl gidiyor?

Link to comment
Share on other sites

blue_life üstadım;
Söylediğiniz gibi WMI servisinin DiskDrive gibi bir bileşenini kullandığından kaynaklanıyor sorun sanırım.Herneyse zaten
PantherXP üzerinde çalışıyorum öneriniz üzerine. Şu an bir sıkıntı yok gibi. Dün, sysprep ile kapatılmış bir Xp'yi Wim
olarak aldım. Bugünde inşallah testini yapıcam.

PantherXp'nin türkçeleştirmesinide yaptım.
[attachment=727:p1.JPG]
[attachment=728:p3.JPG]

Link to comment
Share on other sites

  • 1 ay sonra...

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...