Válí se ti projekty v šuplíku? Dostaň je mezi lidi a získej cool tričko a body na profi IT kurzy v soutěži ITnetwork summer 2017!
Přidej si svou IT školu do profilu a najdi spolužáky zde na síti :)

Diskuze: C# Stejný kód, který na jednom PC funguje a na druhém ne. Kde by mohla být chyba?

Windows Windows C# Stejný kód, který na jednom PC funguje a na druhém ne. Kde by mohla být chyba?

Aktivity (1)
Avatar
David Hanč
Člen
Avatar
David Hanč:23.11.2016 23:26

Vůbec netuším, kde by mohla být chyba. Mám kód, který na mém počítači nejde, ale na jiném ano. Kód sem dám, ale v něm by chyba být neměla. Po zapnutí by se hráč (kulička) měla po stisknutí klávesy T (žádná klávesa nejde) pohybovat, ale nepohybuje. Na jiném PC ano. Stalo se to někdy někomu nebo tuší, v čem by to mohlo být ?
http://paste.ofcode.org/…XGMvfj85Uj7X

 
Odpovědět 23.11.2016 23:26
Avatar
Ilidanek33
Člen
Avatar
Ilidanek33:24.11.2016 0:04

Podle mě bude problém při detekci toho stisknutí.. Tento problém bych asi řešil tím, že bych to zkusil přes win api.. Koukni sem http://www.codeproject.com/…Hooks-in-NET

 
Nahoru Odpovědět 24.11.2016 0:04
Avatar
ostrozan
Redaktor
Avatar
Odpovídá na David Hanč
ostrozan:24.11.2016 10:04

Když tak mně oprav - vypadá to, že spouštíš projekt ve VS a ten projekt byl stvořen někým jiným na jiném počítači.
Pak budeš muset v okně properties v událostech nastavit znova u KeyPress, nebo KeyDown nebo nevím kterou používáš handler na tu metodu "metoda"

 
Nahoru Odpovědět 24.11.2016 10:04
Avatar
David Hanč
Člen
Avatar
Odpovídá na ostrozan
David Hanč:24.11.2016 18:35

Nene, napsal jsem to sám na svém PC, ale nešlo mi to, tak jsem to poslal kamarádovi, který žádnou chybu nenašel a normálně mu to šlo spustit.

 
Nahoru Odpovědět 24.11.2016 18:35
Avatar
Adam Ježek
Tým ITnetwork
Avatar
Adam Ježek:24.11.2016 19:07

V první řádě bych zjistil, jestli Keydown event funguje. uprav metoda na následující:

private void metoda(object sender, EventArgs e) {
    MessageBox.Show("Stisknuta klávesa!");
    ...

a spust to. Pokud při mačkání kláves nevyskočí okno, máme problém.

Nahoru Odpovědět 24.11.2016 19:07
Pokud chceš odpovědět, klikni na odpovědět. Pokud chceš vložit zdroják, klikni na vložit zdroják (</>)
Avatar
Adam Ježek
Tým ITnetwork
Avatar
Odpovídá na Adam Ježek
Adam Ježek:24.11.2016 19:10

Ježiši. Teď na to koukam, ty to kontroluješ timerem? Na tohle je eventHandler, který zavolá funkci pokaždé, když zmáčkneš klávesu.
Ve WPF:

this.KeyDown += MainWindow_KeyDown;
//a následná funkce volaná při stisku
 private void MainWindow_KeyDown(object sender, KeyEventArgs e) {
            posX += 40;
            pictureBox1.Refresh();
        }

Teď si z hlavy nepamatuju, jak to přesně je, ale ze sender objectu se dá zjistit, která klávesa to byla. Nicméně tohle je dobrý start, ten Timer z toho vyhoď.

Jestli to děláš ve WF, tak pokud mi paměť slouží dobře, tak je to tam stejně, jen se to možná jmenuje KeyPressed. Ale google vždy poslouží.

Editováno 24.11.2016 19:12
Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
Nahoru Odpovědět  +1 24.11.2016 19:10
Pokud chceš odpovědět, klikni na odpovědět. Pokud chceš vložit zdroják, klikni na vložit zdroják (</>)
Avatar
David Hanč
Člen
Avatar
Odpovídá na Adam Ježek
David Hanč:29.11.2016 19:49

Děkuji za tuto i předešlou radu. Pomohla :)

 
Nahoru Odpovědět 29.11.2016 19:49
Avatar
David Hanč
Člen
Avatar
Odpovídá na Adam Ježek
David Hanč:29.11.2016 20:15

Nejspíš sem to správně nepochopil. Kde ten tvůj kód má být teda napsaný ? V metodě ?

 
Nahoru Odpovědět 29.11.2016 20:15
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 8 zpráv z 8.