Witam
Jestem początkującym programistą i bawię się programem Sharpdevelop
Chciałem prosić o pomoc zaawansowanych programistów, wiem że być może jest gdzieś na forum w jakimś poście odpowiedź na moje pytanie ale ja jej nie znalazłem... więc pytam :)
Utworzyłem nowy projekt w sharpdevelop w języku c++ --> Aplikacje Windows --> Formatka Aplikacje Windows
W tą formatkę wrzuciłem jeden przycisk dajmy na to że tekst tego przycisku to "Uruchom" a nazwa "start"
i teraz wygląda to tak:
void StartClick(object sender, EventArgs e)
{
//jaką komendę i co muszę tu wpisać aby uruchomić zewnętrzny program np. Notepad.exe
//który wiadomo gdzie się znajduje... c:\Windows\Notepad.exe
}
Wcześniej kombinowałem z Application.Run();
Ale to nie wypaliło, a w necie znalazłem różne rozwiązania ale jak do tej pory żadne nie zadziałało... ](*,)
Błagam pomocy...
Odpowiedzi: 20
A znasz może sposób na pobieranie kolorów z dowolnego miejsca na pulpicie i z dowolnego okna?
Zaraz looknę... :mryellow:
[quote]A wiesz może w jaki sposób przypisać przyciski myszy do klawiszy NumPad 1 oraz 2? [/quote]
IHNFI - to z angielskiego :P
odnośnie kodu -
Zamiast richtextboxa spróbuj zwykłego textboxa z tym co napisałem post wcześniej.
Udało mi się obejść to, teraz wygląda to tak...
public partial class MainForm : Form
{
string tmp = "";
public MainForm()
{
InitializeComponent();
}
void Timer1Tick(object sender, EventArgs e)
{
if (tmp != Clipboard.GetText())
{
richTextBox1.Text += "\n" + "\n" + Clipboard.GetText();
tmp = Clipboard.GetText();
}
}
void CmdCopyClick(object sender, EventArgs e)
{
string copy = richTextBox1.SelectedText;
Clipboard.SetText(copy);
}
I działa jak by nie było...
A wiesz może w jaki sposób przypisać przyciski myszy do klawiszy NumPad 1 oraz 2?
OK zrobiłem to. Sprawdziłem w trakcie działania programu jakie znaki w nowej linii ma textbox.
Tutaj masz już gotowe rozwiązanie jeżeli nie wpadłeś na to na co miałeś wpaść wcześniej :)
[code]
textBox1.Text = Clipboard.GetText() + '\r' + '\n' + textBox1.Text;
[/code]
Na textBox-ie to nie działa... za to doskonale działa na richTextBox-ie...
Problem w tym że nie można przekopiować tekstu tak jak to można było robić w textboxie.
Wystarczy pomyśleć...
Operator += w tym przypadku jest równoznaczny z:
[code]
textBox1.Text = textBox1.Text + Clipboard.GetText(); //tutaj celowo pominąłem znak nowej linii żeby to lepiej zobrazować
[/code]
Więc co musisz zrobić żeby działało odwrotnie? :)
btw textbox z jakiegoś powodu ignoruje '\n' chociaż nie powinien, nie mam pojęcia dlaczego tak jest
Właśnie udało mi się zanim to przeczytałem :mryellow:
Jest tylko problem z tym kodem... Znacznik '\n' zamiast opuścić tekst do następnej linijki wyświetla tylko mały kwadracik i zaraz po nim wkleja tekst ze schowka :/
Musi działać...
[URL=http://img15.imageshack.us/i/capturenq.png/][IMG]http://img15.imageshack.us/img15/3531/capturenq.png[/IMG][/URL]
Faktycznie dałem to do TimerTick
Ale nigdzie indziej nie chciało to działać :/
Ale gdzie wstawiłeś tą zmienną? Bo to ma duże znaczenie....wstaw ją bezpośrednio do klasy formy bo skoro to nie działa to chyba dałeś ją do timera i przy każdym 'tyknięciu' zawartość tej zmiennej jest ustawiana na "tmp" i porównywana ze schowkiem co potem niszczy resztę kodu.
No dobra wszystko wiem jak i co po za...
zmienną globalną bo gdy robię coś takiego:
string tmp = "tmp";
if (tmp != Clipboard.GetText())
{
textBox1.Text += '\n' + Clipboard.GetText();
tmp = Clipboard.GetText();
}
To cały czas wkleja mi w textbox-a wpis ze schowka #-o
1.tmp jest zmienną globalną typu string, zadeklaruj coś takiego
2. do formy dodaj timer i ustaw jego właściwość Enabled na true
3. do eventu Tick tego timera możesz wkleić ten kod który wcześniej podałem.
W sumie tyle.
Jakiś czas wcześniej pisałeś mi o metodzie dopisywania wpisów ze schowka do textBox-a...
Możesz mi to tak rozpisać żeby to działało?
if (tmp != Clipboard.GetText())
{
textBox1.Text += '\n' + Clipboard.GetText();
tmp = Clipboard.GetText();
}
Bo mnie nie wychodzi :/
Dzięki, dzięki... :mryellow:
Robię teraz taki projekcik... nie wiem czy wyjdzie :-k
[code]void MainFormKeyDown (object sender, KeyEventArgs e)
{
int speed = trackBar1.Value;
switch (e.KeyCode)
{
case Keys.NumPad8: //Góra
Point pt0 = Cursor.Position;
pt0.Y -= speed;
Cursor.Position = pt0;
break;
case Keys.NumPad5: //Dół
Point pt1 = Cursor.Position;
pt1.Y += speed;
Cursor.Position = pt1;
break;
case Keys.NumPad4: //Lewo
Point pt2 = Cursor.Position;
pt2.X -= speed;
Cursor.Position = pt2;
break;
case Keys.NumPad6: //Prawo
Point pt3 = Cursor.Position;
pt3.X += speed;
Cursor.Position = pt3;
break;
case Keys.NumPad1: //Lewy Przycisk Myszy
break;
case Keys.NumPad2: //Prawy Przycisk Myszy
break;
[/code]
Z kodem na poruszanie sobie poradziłem... jednak nie jest on doskonały :neutral:
Pracuję teraz nad akceleracją aby się zwiększała z czasem...
ale nie potrafię sprawić aby NumPad 1 oraz 2 były przyciskami myszy... Pomoże ktoś? [-o<
A wie ktoś może w jaki sposób wykonywać proste obliczenia za pomocą textbox-ów
np. (liczba)textbox1.text (liczba)textbox2.text (suma)textbox3.text
Chodzi mi o wyliczenie czasu potrzebnego na ściągnięcie pliku w oparciu o wielkość pliku oraz prędkość łącza...
Da radę to zrobić w miarę prosto?
Dzięki... Już i tak prawie do tego doszedłem... :mryellow:
A znasz może sposób na wyświetlenie ProgressBar-a z kopiowania pliku?
Bo podczas operacji zrzutu i kopiowania pliku do katalogu, okno się zawiesza i nie można nic zrobić, a gdybym chciał np. 4GB pliku kopiować no to nie wiadomo kiedy by się kopiowanie skończyło...
Masz rację... teraz działa jak należy :mryellow:
Dla chętnych oto całość kodu na strefę zrzutu:
[code]void MainFormDragEnter(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(DataFormats.FileDrop))
{
e.Effect = DragDropEffects.Move;
}
else e.Effect = DragDropEffects.None;
}
void MainFormDragDrop(object sender, DragEventArgs e)
{
FolderBrowserEdit = new System.Windows.Forms.FolderBrowserDialog();
if ( FolderBrowserEdit.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
string[] pliki = (string[])e.Data.GetData(DataFormats.FileDrop);
System.IO.File.Copy(pliki[0], FolderBrowserEdit.SelectedPath + "\\plik.exe");
}
}[/code]
Zauważyłem że ostatnio ruszyło się towarzystwo na forum... :-k
Twoja pomoc dla mnie bardzo ożywiła ruch na forum...
Do tego całego projektu zrzutu dla plików
Próbowałem dzisiaj cały dzień zrobić tak, aby przed wysyłaniem pobierał format pliku i nazwę i z taką ją wysyłał...
Ale zamiast tego wychodzą mi Hieroglify w nazwie :-k #-o
Już wiem jak to zrobić, do DragEnter wpisujesz coś takiego:
[code]
if (e.Data.GetDataPresent(DataFormats.FileDrop))
{
e.Effect = DragDropEffects.Move;
}
else e.Effect = DragDropEffects.None;
[/code]
i dzieki temu w DragDrop powinno działać jak należy :)
Pliku nie kopiuje bo w FolderBrowserEdit.SelectedPath masz tylko ścieżkę do katalogu ale bez nazwy pliku więc możesz np dokleić nazwę:
[code]
FolderBrowserEdit.SelectedPath + "\\plik.exe";
[/code]
albo jakimś automatem, który ze źródła wyciągnie samą nazwę. Masz pełną dowolność :)