cannot open clipboard

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
samety81
Üye
Mesajlar: 84
Kayıt: 07 Nis 2006 03:53

cannot open clipboard

Mesaj gönderen samety81 »

arkadaşlar ben exe de CTRL+G ye basınca secili text i clipboarda atıyorum fakat cannot open clipboard
gibi bir hata alıyorum.
bu hatayı nasıl engellerim bir türlü basaramadım.bu konu baya asagılara inmişti biras düzenleyip tekar soruyorum yardıma ihtiyacım var :S

Kod: Tümünü seç

procedure TForm1.WMHotKey(var Msg: TWMHotKey);
 var
Post: OleVariant;
Header,abc: OleVariant;
EncodedStr: string;
i: Integer;
geciciclp:string;
 begin
 if Msg.HotKey = id1 then
 begin
 if(durum=0)then
begin
geciciclp:=Clipboard.AsText;
keybd_event(VK_CONTROL, 0, 0, 0);
keybd_event(ord('C'), 0, 0, 0);
keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP, 0);
keybd_event(ord('C'), 0, KEYEVENTF_KEYUP, 0);
if(Clipboard.HasFormat(CF_TEXT))    then
begin
edit1.Text:=Clipboard.AsText;
EncodedStr := 'Name='+edit1.Text+
              '&Sifre=********;
Post := VarArrayCreate([0, Length(EncodedStr) - 1], varByte);
for I := 1 to Length(EncodedStr) do
  Post[I - 1] := Ord(EncodedStr[I]);
Header := 'Content-Type: application/x-www-form-urlencoded' + #10#13;
abc := navNoHistory or navNoReadFromCache or navNoWriteToCache;
WebBrowser2.Navigate('http://********, abc,
                      EmptyParam, Post, Header);

                      end;
                      end;
 form1.Show;
 Application.BringToFront;
end;
end;
Yardıma İhtiyacım var galiba TAM burda :)
samety81
Üye
Mesajlar: 84
Kayıt: 07 Nis 2006 03:53

Mesaj gönderen samety81 »

"arkadaslar pls yardım"
sorum kaybolmus hala bi çözüm bulamadım bir fikri olan yokmu arkadaslar :S
Yardıma İhtiyacım var galiba TAM burda :)
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

- Hocam fikrimiz var ama hazır kod kopyala yapıştır ile olmaz ki bu işler. Yani bu kodun neresi hatalı ? demekten ziyade uygulaman hakkında fikir ver ki insanlar denemeye, tecrübelerini paylaşmaya zaman ayırma inceliğini sana layık görsünler. :idea:

- Yani biraz çabalaman lazım... Şimdi burada kod yazıcam ama seni ödüllendimiş olmak da istemiyorum, ama diğer yandan da bu başlığı okuyup benzer sorunlarda çözüm arayanlar olabilir... Arada bırakıyorsun bizleri...

- Cevabın anahtar teslimi aşağıda ama bu kimseye bişey ifade etmez... Çünkü verdiğin kod parçası ne yapıyor, ya da ne yapamıyoru anlatmamışsın. Sadece ip ucu vermişsin ama söylediğin işlem şu kadar basit iken verdiğin kod karmaşası bize denemek adına isteksizik uyandırıyor. Sonra da yardım istedim cevap alamadım oluyor... :cry:

- İstediğin işlem şu...

Kod: Tümünü seç

  private
    Procedure WMHotkey( Var msg: TWMHotkey ); message WM_HOTKEY;
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  id1  : Integer = 1;

implementation

{$R *.dfm}

Kod: Tümünü seç

// Uses Clipbrd
procedure TForm1.WMHotKey(var Msg: TWMHotKey);
begin
  if (Msg.HotKey = id1) AND Clipboard.HasFormat(CF_TEXT) then
  begin
    Form1.Show;
    Application.BringToFront;
    ShowMessage('Kopyalanan text = '+Clipboard.AsText);
  end;
end;

Kod: Tümünü seç

procedure TForm1.FormCreate(Sender: TObject);
begin
  If not RegisterHotkey
    (Handle, id1, MOD_CONTROL, ORD('G')) then
     ShowMessage('CTRL+G kısayolu atanamadı !!!') ;
end;

Kod: Tümünü seç

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  UnRegisterHotkey( Handle, id1 ) ;
end;
Resim
Resim ....Resim
samety81
Üye
Mesajlar: 84
Kayıt: 07 Nis 2006 03:53

Mesaj gönderen samety81 »

yok hocam gerçekten öyle değil araştırdım baya bi araştırdım hemde :)
kitap okumadım veya bi tanımını okumadım ama örnekleri inceleyerek yapmıştım.
yapamadığım yerde ctrl + g ye basıldıgını anlamak değildi
clipboard a kopyalama işlemi yaparken hta ile karsılasıyordum.
kopyalama işlemlerini.edit2.text:=clipboard.astext; veya ters bi şekilde yaparak saglıyordum.
buda her zaman olmasada "cannot open clipboard" hatası veriyordu.
neden bunun hata verdiğini anlamasamda delphi about sitesinde bu sorunla karsılasan bir kişi
atama işlemini bu şekilde değilde
copytoclipboard veya pastetoclipboard şeklinde yaparak soruna bi çözüm olabilir demişler.
bu şekilde yapmam hatayı engelledi.
Cevabın anahtar teslimi aşağıda ama bu kimseye bişey ifade etmez... Çünkü verdiğin kod parçası ne yapıyor, ya da ne yapamıyoru anlatmamışsın. Sadece ip ucu vermişsin ama söylediğin işlem şu kadar basit iken verdiğin kod karmaşası bize denemek adına isteksizik uyandırıyor. Sonra da yardım istedim cevap alamadım oluyor...
hocam sizlerin agzınızdan veya elimizden cıkan her kelime bile benim için altın değerinde.
sizin verdiğiniz kodları ben direk uygulamıyorum zaten öğrenmek için niye oldugunuda düşünüyorum herzaman niye? sorusuna cevap bulamasamda bu soru ya cevap aramaktayım.
Yani biraz çabalaman lazım... Şimdi burada kod yazıcam ama seni ödüllendimiş olmak da istemiyorum, ama diğer yandan da bu başlığı okuyup benzer sorunlarda çözüm arayanlar olabilir... Arada bırakıyorsun bizleri...
inanın çabalamadan hiç birşeyin olmayacağını biliyorum.olanlarında geçici süre ile olduğunun farkındayım.bildiğin şey için bile çabalarsın yoksa yürümeden yol alınmaz.
Hocam fikrimiz var ama hazır kod kopyala yapıştır ile olmaz ki bu işler. Yani bu kodun neresi hatalı ? demekten ziyade uygulaman hakkında fikir ver ki insanlar denemeye, tecrübelerini paylaşmaya zaman ayırma inceliğini sana layık görsünler.
hazır kod diyorsunuz
küçücük bir örnek
pastetoclipboard (konumuzda geçtiği için bu ornek verdim) bunun neişe yaradığını ne iş yaptığını biliyorsan bunun gidip fonksiyonunu bulup onla calısırmısın biras acemice bir örnek oldu fakat eminimki ne demek istediğimi anlamıştırsınız.
ben hazır bir yerden örnekte bulsam o kodun ne iş yaptıgını arastırıyorum.
biras uzun bir yazı oldu :roll:
Yardıma İhtiyacım var galiba TAM burda :)
Cevapla