############################################################### # PowerShell Alarm - Anıl ERDURAN - www.anilerduran.com # # GUI Tabanlı PowerShell scripti ile istediğiniz mp3 dosyasını# # alarm müziğiniz olarak kullanıp geri sayımı # # başlatabilirsiniz. # # # ############################################################### #GUI tabanlı formumuzu oluşturalım# function GenerateForm { [reflection.assembly]::loadwithpartialname("System.Windows.Forms") | Out-Null [reflection.assembly]::loadwithpartialname("System.Drawing") | Out-Null $form1 = New-Object System.Windows.Forms.Form $baslat_button = New-Object System.Windows.Forms.Button $Muzik_Desc_Label = New-Object System.Windows.Forms.Label $gerisayim_buton = New-Object System.Windows.Forms.Button $numericUpDown1 = New-Object System.Windows.Forms.NumericUpDown $sarkisec_button = New-Object System.Windows.Forms.Button $kalanlabel = New-Object System.Windows.Forms.Label $kalanlabel2 = New-Object System.Windows.Forms.Label $kalanlabel3 = New-Object System.Windows.Forms.Label $kalan_buton = New-Object System.Windows.Forms.Button $timer1 = New-Object System.Windows.Forms.Timer $progressBar1 = New-Object System.Windows.Forms.ProgressBar $InitialFormWindowState = New-Object System.Windows.Forms.FormWindowState #Mp3 dosyası seçebilmek için gerekli olan Dialog fonksiyonunu oluşturalım# function Select-FileDialog { param([string]$Title,[string]$Directory,[string]$Filter="All Files (*.*)|*.*") [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms") | Out-Null $objForm = New-Object System.Windows.Forms.OpenFileDialog $objForm.InitialDirectory = $Directory $objForm.Filter = $Filter $objForm.Title = $Title $objForm.showhelp = $true $Show = $objForm.ShowDialog() If ($Show -eq "OK") { Return $objForm.FileName } Else { #Dosya seçilmez ise bir uyarı verelim# [system.Windows.Forms.MessageBox]::show('Sessiz alarm biraz garip olur değil mi?') } } #Seçim işlemi C:\ dizini altından başlasın# $sarkisec_button_OnClick= { $file = Select-FileDialog -Title "Dosya Seçin" -Directory "c:\" $kalanlabel.Text = "Seçilen Şarkı : $file" } $baslat_button_OnClick= { #Geri sayım için StopWatch Net objesini kullanıyoruz# $ElapsedTime = [System.Diagnostics.Stopwatch]::StartNew() $a = $numericUpDown1.text $b = $a * 1 $kalanlabel2.Text = "Geri Sayım : $a dakikadan geri sayılmaya başlandı" for ($i=1; $i -gt 1; $i++) { } function CountDown($waitMinutes) { $startTime = get-date $endTime = $startTime.addminutes($waitMinutes) $timeSpan = new-timespan $startTime $endTime while ($timeSpan -gt 0) { $timeSpan = new-timespan $(get-date) $endTime sleep 1 } write-host "" } Countdown $b Invoke-Item $file } $OnLoadForm_StateCorrection= { $form1.WindowState = $InitialFormWindowState } #region Generated Form Code $System_Drawing_Size = New-Object System.Drawing.Size $System_Drawing_Size.Height = 192 $System_Drawing_Size.Width = 461 $form1.ClientSize = $System_Drawing_Size $form1.DataBindings.DefaultDataSourceUpdateMode = 0 $form1.Name = "form1" $form1.Text = "PowerShell Alarm" $baslat_button.DataBindings.DefaultDataSourceUpdateMode = 0 $System_Drawing_Point = New-Object System.Drawing.Point $System_Drawing_Point.X = 312 $System_Drawing_Point.Y = 140 $baslat_button.Location = $System_Drawing_Point $baslat_button.Name = "baslat_button" $System_Drawing_Size = New-Object System.Drawing.Size $System_Drawing_Size.Height = 40 $System_Drawing_Size.Width = 137 $baslat_button.Size = $System_Drawing_Size $baslat_button.TabIndex = 5 $baslat_button.Text = "BAŞLAT" $baslat_button.UseVisualStyleBackColor = $True $baslat_button.add_Click($baslat_button_OnClick) $form1.Controls.Add($baslat_button) $Muzik_Desc_Label.DataBindings.DefaultDataSourceUpdateMode = 0 $System_Drawing_Point = New-Object System.Drawing.Point $System_Drawing_Point.X = 178 $System_Drawing_Point.Y = 13 $Muzik_Desc_Label.Location = $System_Drawing_Point $Muzik_Desc_Label.Name = "Muzik_Desc_Label" $System_Drawing_Size = New-Object System.Drawing.Size $System_Drawing_Size.Height = 34 $System_Drawing_Size.Width = 210 $Muzik_Desc_Label.Size = $System_Drawing_Size $Muzik_Desc_Label.TabIndex = 4 $Muzik_Desc_Label.Text = "Örn: Bilgisayarınızda yüklü bir Mp3 Dosyası seçebilirsiniz." $Muzik_Desc_Label.add_Click($handler_Muzik_Desc_Label_Click) $form1.Controls.Add($Muzik_Desc_Label) $gerisayim_buton.DataBindings.DefaultDataSourceUpdateMode = 0 $System_Drawing_Point = New-Object System.Drawing.Point $System_Drawing_Point.X = 12 $System_Drawing_Point.Y = 64 $gerisayim_buton.Location = $System_Drawing_Point $gerisayim_buton.Name = "gerisayim_buton" $System_Drawing_Size = New-Object System.Drawing.Size $System_Drawing_Size.Height = 38 $System_Drawing_Size.Width = 147 $gerisayim_buton.Size = $System_Drawing_Size $gerisayim_buton.TabIndex = 3 $gerisayim_buton.Text = "Geri Sayım Dakikası Belirleyin" $gerisayim_buton.UseVisualStyleBackColor = $True $gerisayim_buton.add_Click($gerisayim_buton_OnClick) $form1.Controls.Add($gerisayim_buton) $numericUpDown1.DataBindings.DefaultDataSourceUpdateMode = 0 $System_Drawing_Point = New-Object System.Drawing.Point $System_Drawing_Point.X = 178 $System_Drawing_Point.Y = 74 $numericUpDown1.Location = $System_Drawing_Point $numericUpDown1.Name = "numericUpDown1" $System_Drawing_Size = New-Object System.Drawing.Size $System_Drawing_Size.Height = 20 $System_Drawing_Size.Width = 120 $numericUpDown1.Size = $System_Drawing_Size $numericUpDown1.TabIndex = 2 $form1.Controls.Add($numericUpDown1) $sarkisec_button.DataBindings.DefaultDataSourceUpdateMode = 0 $System_Drawing_Point = New-Object System.Drawing.Point $System_Drawing_Point.X = 12 $System_Drawing_Point.Y = 12 $sarkisec_button.Location = $System_Drawing_Point $sarkisec_button.Name = "sarkisec_button" $System_Drawing_Size = New-Object System.Drawing.Size $System_Drawing_Size.Height = 35 $System_Drawing_Size.Width = 147 $sarkisec_button.Size = $System_Drawing_Size $sarkisec_button.TabIndex = 1 $sarkisec_button.Text = "Alarm Dosyası Seçin" $sarkisec_button.UseVisualStyleBackColor = $True $sarkisec_button.add_Click($sarkisec_button_OnClick) $form1.Controls.Add($sarkisec_button) $kalanlabel.DataBindings.DefaultDataSourceUpdateMode = 0 $System_Drawing_Point = New-Object System.Drawing.Point $System_Drawing_Point.X = 12 $System_Drawing_Point.Y = 125 $kalanlabel.Location = $System_Drawing_Point $kalanlabel.Name = "kalanlabel" $System_Drawing_Size = New-Object System.Drawing.Size $System_Drawing_Size.Height = 52 $System_Drawing_Size.Width = 256 $kalanlabel.Size = $System_Drawing_Size $kalanlabel.TabIndex = 0 $kalanlabel.Text = "Seçilen Dosya : $file" $form1.Controls.Add($kalanlabel) $sarkisec_button.DataBindings.DefaultDataSourceUpdateMode = 0 $InitialFormWindowState = $form1.WindowState $form1.add_Load($OnLoadForm_StateCorrection) $form1.ShowDialog()| Out-Null } GenerateForm