Laden...
D
der-Webdesigner
myCSharp.de - Member
10
Themen
54
Beiträge
Letzte Aktivität
vor 3 Jahren
Dabei seit
14.05.2008
Website
Erstellt vor 16 Jahren

Danke für die Links! Habs mir mal angeschaut und es wäre jetzt natürlich schon nochmals ein großer Aufwand sich in diese "Scriptsprache" einzulesen...es wundert mich nur, dass es scheinbar mit dem Setup-Projekt von VS einfach nicht machbar ist...oder sehe ich das falsch?

Lg,
Manuel

Erstellt vor 16 Jahren

Hallo!

Leider funktioniert auch das nicht, so dass der Ordner noch immer bleibt. Nach dem Aufruf von Msiexec rufe ich sofort Application.Exit() auf, so dass mein Programm (der Uninstaller) noch vor der Installationsroutine beendet ist.

Gibt es noch andere Möglichkeiten?

Vielen Dank für die Hilfe!
Manuel

Erstellt vor 16 Jahren

Aber die mit dem Uninstaller-Tool dürften doch dann das gleiche Problem wie ich haben, so dass der Ordner nicht mitgelöscht wird weil das Tool in dem Ordner ja noch ausgeführt wird.

Erstellt vor 16 Jahren

Hi du!

Das ist auf jeden Fall eine gute Idee mit der es gehen könnte. Aber wie machen es denn andere Programme? Sonst müsste ich irgendwann ja mein Temp-Verzeichnis voll von Deinstallern haben oder nicht?
Interessant finde ich jedenfalls, dass sich der Deinstaller selbst löschen kann während er läuft, der Ordner bleibt aber. Das finde ich irgendwie merkwürdig 😉

Danke auf jeden Fall für deine Hilfe! 😃
Manuel

Erstellt vor 16 Jahren

Hallo!

Danke für deine schnelle Antwort.
Das mit der Batch-Datei hatte ich eben mal ausprobiert und das scheint auch soweit zu funktionieren, aber ich würde gerne noch zusätzlich ein paar Dinge ausführen bzw. löschen, die das Setup nicht kennt.
Also habe ich mir gerade mal zum testen ein eigenes Programm geschrieben und aus dem Programm raus führe ich dann Msiexec aus. Dann schmiert er aber am Schluss der Deinstallation immer ab und sagt, dass der Prozess noch ausgeführt wird. Er kann dann den Ordner meines Programms nicht löschen. Alle Dateien sind weg, nur der Ordner bleibt jedes Mal.

Hier der Code den ich für meinen Uninstaller verwende:

static void Main()
{
    string productCode = "{...}";
    string path = Environment.GetFolderPath(Environment.SpecialFolder.System);
    Process proc = new Process();
    proc.StartInfo.FileName = string.Concat(path, "\\msiexec.exe");
    proc.StartInfo.Arguments = string.Concat(" /x ", productCode);
    proc.Start();
    proc.WaitForExit();

    string applicationPath = Environment.CurrentDirectory.ToString();
    // hier soll der Ordner gelöscht werden, weil der irgendwie noch da ist, warum auch immer
    Directory.Delete(applicationPath,true);
}

Vielen Dank für jegliche Hilfe!
Manuel

Erstellt vor 16 Jahren

Hallo zusammen!

Ich hätte gerne im Startmenü zusätzlich zu meiner eigenen Programmverlinkung einen Deinstaller, heißt bei der Installation soll die Verlinkung erzeugt werden plus ein Uninstaller. Gibt es die Möglichkeit, sowas direkt über VS2005 zu erzeugen? Denn bei einem Rechtsklick auf das Projekt kann ich mein Programm direkt deinstallieren, wobei er dabei das normale Setup nimmt. Das Setup ist nach der Installation aber für gewöhnlich nicht mehr verfügbar, da das Programm ja dann fertig installiert ist. Als einzige Möglichkeit bleibt daher momentan die Deinstallation über die Systemsteuerung. Ich hätte aber gerne einen eigenen Deinstaller, mit dem die Deinstallation ohne den "Umweg" über die Systemsteuerung möglich ist.

Kann man sowas einfach selbst entwickeln oder gibt es da etwas "Vordefiniertes", was ich direkt aus VS2005 erzeugen könnte?

Lg und vielen Dank,
Manuel 😃

Erstellt vor 16 Jahren

Wow genial, ich bin begeistert!

Vielen lieben Dank für deine Hilfe! Würdest du mir als "Anfänger" auch noch sagen woran es denn nun lag? Was genau ist anders, dass es jetzt geht?

Liebe Grüße,
Manuel

Erstellt vor 16 Jahren

Dankeschön, dass du auch 10 Monate nach deinem eigentlichen Thread noch darauf antwortest! 🙂

Das Problem ist übrigens unabhängig von der Komponente auf der man die Zeilen zieht. Ich ziehe die Zeilen auf einen Button. Ich kann danach machen was ich will, das Dgv muss jedes Mal wieder 2 Mal angeklickt werden. Ein focus() hilft ebenfalls nicht...ich dachte vielleicht würde das Dgv den Fokus verlieren, aber das tuts doch nicht. Der Grund dafür ist ja scheinbar die oben genannte Zeile im Quellcode. Ich verstehe nur nicht den Unterschied warum der Aufruf abhängig von der Methode ist, denn beim MouseMove wird exakt das gleiche gemacht, doch da tritt dieser "Fehler" so nicht auf. Sogar im Microsoft-Forum wurde es bei Multi-Drag so empfohlen. Doch wenn der Fehler sogar bei deinem Minimalbeispiel auftritt kann es ja "glücklicherweise" nicht an meinem Gesamtcode liegen g

Also falls jemand Ideen hat...

Vielen Dank,
Manuel

Erstellt vor 16 Jahren

Hallo rokohl!

Ich habe zur Zeit leider genau das gleiche Problem und bin nach viel Suche im Forum auf deinen Thread gestoßen. Hast du mittlerweile eine Lösung für dein Problem gefunden oder weiss jemand anders rat?
Bei mir taucht dieses Problem nur beim Multiselect auf wenn ich folgendes in der MouseDown-Methode verwende:
DragDropEffects dropEffect = dgv.DoDragDrop(dgv.SelectedRows, DragDropEffects.Move);

Gleiches schreibe ich in der MouseMove-Methode, aber da macht es keine Probleme. Doch sobald ich das in der MouseDown verwende, muss ich anschließend 2 Mal aufs DGV klicken damit es reagiert. Verwende ich die Zeile nicht, sind alle Zeilen vom Multiselekt deselektiert wenn ich die Zeilen rüberziehen möchte. Ein manuelles Selektieren beim DragAndDrop war mehr oder weniger unschön, daher wüsste ich gerne ob es irgendeine Möglichkeit gibt dieses Problem zu lösen.

Vielen lieben Dank,
Manuel

Erstellt vor 16 Jahren

Ja ich weiss, es tut mir auch leid, dass ich sowas immer wieder frage... manchmal nicht ganz einfach ist da er nicht so schnell aufgibt

Könnte man denn dann einfach die Datei öffnen und anschließend wieder schließen, ohne dass das zu viele Resourcen verbrauchen würde? Denn wenn ich die Daten ja nicht auslese müsste die Open-Methode doch eine gar nicht so schlechte Lösung sein...

Lg,
Manuel