- 
                    Üyelik
                    20.03.2017
                
- 
                    Yaş/Cinsiyet
                    33 / E
                
- 
                    Meslek
                    Ögrencisi
                
- 
                    Konum
                    Afyon
                
                - 
                    Ad Soyad
                    K** Y**
                
- 
                    Mesajlar
                    68
                
- 
                    Beğeniler
                    26 / 3
                
- 
                    Ticaret
                    0, (%0)
                
 
                Bir metinden istediğim alanları seçip sırası hafızaya alıp sonra onları istediğim yere yapıştırmak istiyorum, mesela "bugün hava çok güzel" cümlesinde "bugün" kelimesini seçip klavyeden c+1 ve "güzel" kelimesini seçip c+2 yaparak kopyalayın istediğim tabloya gidip gerekli sütuna y+1 yaparak c+1 hafızasına aldığım veriyi y+2 yaparak c+2 hafızasına aldığım veriyi yapıştırmak istiuirum.
Sizce nasıl bir yol izlemeliyim ?
                        
     
                 
                                            
        
        
        
            
            
                - 
                    Üyelik
                    20.07.2014
                
- 
                    Yaş/Cinsiyet
                    29 / E
                
- 
                    Meslek
                    Webmaster
                
- 
                    Konum
                    Ankara
                
                - 
                    Ad Soyad
                    M** K**
                
- 
                    Mesajlar
                    2074
                
- 
                    Beğeniler
                    60 / 532
                
- 
                    Ticaret
                    10, (%100)
                
 
                Kopyalanacak kelimeler için dinamik olarak değişken oluşturabilir veya sırasıyla kopyalananları biz dizi içerisine aktarabilirsiniz. c+1 veya c+2 de bulunan 1 ve 2 gibi tanımlayıcılara göre dizi içerisinden gerekli index numarasına göre kopyalamış olduğun veriyi çekebilirsin.Birçok farklı şekilde yapabilirsin
                        
     
                    
                            Fizello - Inspired by Colors
                    
                         
                                                                                                                
        
        
        
            
            
                - 
                    Üyelik
                    20.03.2017
                
- 
                    Yaş/Cinsiyet
                    33 / E
                
- 
                    Meslek
                    Ögrencisi
                
- 
                    Konum
                    Afyon
                
                - 
                    Ad Soyad
                    K** Y**
                
- 
                    Mesajlar
                    68
                
- 
                    Beğeniler
                    26 / 3
                
- 
                    Ticaret
                    0, (%0)
                
 
                Bunları bir web sayfasından sırası ile kopyalayıp  baska bir sayfadaki tabloya yapıştırmam gerekiyor. Aynı uygulama için kullanmayacağım yani verileri
                        
     
                 
                                                                                                                
        
        
        
            
            
                - 
                    Üyelik
                    20.07.2014
                
- 
                    Yaş/Cinsiyet
                    29 / E
                
- 
                    Meslek
                    Webmaster
                
- 
                    Konum
                    Ankara
                
                - 
                    Ad Soyad
                    M** K**
                
- 
                    Mesajlar
                    2074
                
- 
                    Beğeniler
                    60 / 532
                
- 
                    Ticaret
                    10, (%100)
                
 
                Tamam kopyalacağın verleri alır diziye atarsın daha sonra diziyi querystring olarak diğer sayfaya gönderir diğer sayfada üzerinde işlem yapıp tabloya atarsın
                        
     
                    
                            Fizello - Inspired by Colors
                    
                         
                                                        
        
        
        
            
            
                - 
                    Üyelik
                    10.11.2013
                
- 
                    Yaş/Cinsiyet
                    28 / E
                
- 
                    Meslek
                    Front-End Developer
                
- 
                    Konum
                    Adana
                
                - 
                    Ad Soyad
                    S** D**
                
- 
                    Mesajlar
                    1345
                
- 
                    Beğeniler
                    234 / 472
                
- 
                    Ticaret
                    12, (%100)
                
 
                System.Windows.Forms.Clipboard.SetText("yazı");
Bu şekilde clipboarda veri atabilirsiniz. Ama sanırım sizin istediğiniz farklı bir şey.
Dolayısıyla:
string[] copies = new String[11];
şeklinde 11 verilik (istediğiniz sayıda) bir array oluşturun.
Daha sonra anasınıfınızın içerisine şunları tanımlayın:
 [System.Runtime.InteropServices.DllImport("user32.dll")]
        private static extern bool RegisterHotKey(IntPtr hWnd, int id, int fsModifiers, int vk);
        [System.Runtime.InteropServices.DllImport("user32.dll")]
        private static extern bool UnregisterHotKey(IntPtr hWnd, int id);
Ve bu fonkisyonu ekleyin:
 enum KeyModifier
        {
            None = 0,
            Alt = 1,
            Control = 2,
            Shift = 4,
            WinKey = 8
        }
Class içerisinde formuzun adında bir fonksiyon olacak içerisin de InitializeComponent(); fonksiyonunun bulunduğu başlangıç fonksiyonu bunun içerisine aşağıdakileri ekleyin:
 int y1_id = 0;     //  y + 1 tuşumuzun id değeri.
int y2_id = 1;     //  y + 1 tuşumuzun id değeri.
            
RegisterHotKey(this.Handle, id, Keys.Y.GetHashCode(), Keys.1.GetHashCode());  // y + 1 kısayolumuzun kaydı.
RegisterHotKey(this.Handle, id, Keys.Y.GetHashCode(), Keys.2.GetHashCode());  // y + 2 kısayolumuzun kaydı.
Ve şu fonksiyonu her hangi bir yere ekleyiniz:
protected override void WndProc(ref Message m)
        {
            base.WndProc(ref m);
 
            if (m.Msg == 0x0312)
            {
                Keys key = (Keys)(((int)m.LParam >> 16) & 0xFFFF);              
                KeyModifier modifier = (KeyModifier)((int)m.LParam & 0xFFFF);    
                int hotkey = m.WParam.ToInt32(); 
     
                  if (hotkey == y1_id){ 
                // Kısayol y + 1 ise seçilen metni kopyalıyoruz.
                     copies[0] = GetSelectedText();
                 }  
                 else if (hotkey == y2_id{ 
/* Kısayol y + 2 ise değişkendeki veriyi clipboarda yapıştırıp sisteme CTRL+V kombinasyonunu yollyuoruz. Yani değişkendeki veriyi yapıştırıyor. */
                     Clipboard.SetText(copies[0]);
                     SendKeys.Send("^{v}");
                 }     
 
            }
        }
Ve form dışında seçilen metni alacağımız fonksiyonu ve referansları ekliyoruz:
 [DllImport("user32.dll")]
        static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
        [DllImport("user32.dll")]
        static extern IntPtr GetForegroundWindow();
        [DllImport("user32.dll", SetLastError = true)]
        static extern uint GetWindowThreadProcessId(IntPtr hWnd, out uint lpdwProcessId);
        [DllImport("kernel32.dll")]
        static extern uint GetCurrentThreadId();
        [DllImport("user32.dll")]
        static extern bool AttachThreadInput(uint idAttach, uint idAttachTo,bool fAttach);
        [DllImport("user32.dll")]
        static extern IntPtr GetFocus();
        [DllImport("user32.dll")]
        static extern int SendMessage(IntPtr hWnd, uint Msg, int wParam, StringBuilder lParam);
        // second overload of SendMessage
        [DllImport("user32.dll")]
        static extern int SendMessage(IntPtr hWnd, uint Msg, out int wParam, out int lParam);
        
        const uint WM_GETTEXT = 0x0D;
        const uint WM_GETTEXTLENGTH = 0x0E;
        const uint EM_GETSEL = 0xB0;
        function string GetSelectedText()
        {
               IntPtr hWnd = GetForegroundWindow();
                uint processId;
                uint activeThreadId = GetWindowThreadProcessId(hWnd, out processId);
                uint currentThreadId = GetCurrentThreadId();
                AttachThreadInput(activeThreadId, currentThreadId, true);
                IntPtr focusedHandle = GetFocus();
                AttachThreadInput(activeThreadId, currentThreadId, true);
                StringBuilder sb1 = new StringBuilder();
                int len = SendMessage(focusedHandle, WM_GETTEXTLENGTH, 0,sb1);
                StringBuilder sb = new StringBuilder(len);
                int numChars = SendMessage(focusedHandle, WM_GETTEXT, len + 1, sb);
                int start, next;
                SendMessage(focusedHandle, EM_GETSEL, out start, out next);
                string selectedText = "";
                if (sb.ToString() != "")
                    selectedText = sb.ToString().Substring(start, next - start);
                return selectedText;
           }
Son olarak formun kapandığında kaydedilen kısayolları kaldırıyoruz (Formun Closing Eventına yazınız):
 UnregisterHotKey(this.Handle, 0); 
Biraz hiyerarşi bakımından karışık oldu kodlar düzenleyemedim. Fakat bu şekilde istediğinizi yapabilirsiniz.
Her hangi bir sıkıntı yaşarsanız yardımcı olurum.
                        
     
                    
                            sefacandemir.com.tr